iCAx开思工具箱

标题: 因为变数看不懂!所以??? 语言的写法对于刚进门的我(超级菜鸟)太难了! [打印本页]

作者: vvg87    时间: 2005-12-4 17:16
标题: 因为变数看不懂!所以??? 语言的写法对于刚进门的我(超级菜鸟)太难了!
因为变数看不懂!所以??? 语言的写法对于刚进门的我(超级菜鸟)太难了!

------------------------------------------------------------------------------------------------------------------------
tatic int init_proc(
                                          UF_UI_selection_p_t select,
                                          void* user_data
                                        )
{
        int num_triples = 1;
        UF_UI_mask_t mask_triples[] = {        UF_point_type, 0, 0 };

                /* enable only points */
        if((UF_UI_set_sel_mask(select,
                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,
                num_triples, mask_triples) ) ==0)
        {
                return (UF_UI_SEL_SUCCESS);
        }
        else
        {
                return (UF_UI_SEL_FAILURE);
        }
}

static void move(void)
{
        int i = 0, j = 0;
        double cor[3] = {0,0,0}, cen1[3] = {0,0,0}, cen2[3] = {0,0,0}, vec[3] = {0,0,0};  //这个是3个点的归零动作(初时值)吗?        /* Evaluate center of the first points set */
        for(i = 0; i < num_point1; i++)  // num_point1 这是第一组的代数吗?
        {
                UF_CURVE_ask_point_data(pt_set1, cor);
                for(j = 0; j < 3; j++)
                {
                        cen1[j] += cor[j]; //这是什么动作呢?                }
        }

        for(j = 0; j < 3; j++)
                cen1[j] /= num_point1;

        /* Evaluate center of the second points set */

        //.....

    /* Evaluate the translate distance */
        UF_VEC3_sub(cen1, cen2, vec); //这是什么动作呢?

        /* Translate */

        {
                int status = 0, copyTag = 1; /* move */
                int layer = 0, trace = 2;
                double matrix[16]={0.0};
                tag_t out1 = NULL_TAG, out2 = NULL_TAG;
                char msg[133] = "";


                FTN(uf5943)(vec, matrix);
                FTN(uf5947)(matrix, pt_set2, &num_point2, &copyTag, &layer, &trace,
                        &out1, &out2, &status);

                if( status )
                        UF_get_fail_message( status, msg );
        }

        return;
-----------------------------------------------------------
执行移动后.没有对到中心位置..跟哪里 有关呢!
--------------------------------------------------------------------------------
  每次指导老师都说的简单!
但是实际上真是天地之差! 他说 3点加起来的面积除与??=中心位置..那种与世无争的态度真是!!!
对于程序语言只懂一点!时间都不够用! 光收集资料就占掉3分之2了!
且 UG二次开发的资料 台湾都没有!..只有贵站可以参考!
且又很复杂!....真后悔选这个专题!
但是只有往前走完才能毕业!...虽然别的同学都是做实体的东西!
但是我们做的程序是虚拟的!..每次都被盯的满头包!
实际上二次开发是经验及技术的积累才做的出来!
但是我们没经验! 已经花很多时间收集资料.从不知道二次开发是什么! 到有东西出来(ZZZ前辈帮了大忙)..
但是利用不到5个月的时间哪够! 就像刚出生的鸟要它飞上天..都很难吧!...而且课业报告实习一大堆!
除了这个.还有 知识融合  .共2个!
  又听到我们会被专题的评审 盯的很惨!
学生真是难做阿!
..................................以上是不成才的心得~~~..希望各个专题评审不要只看 实体东西  而藐视我们用手也摸不到的程序!


作者: awakechen    时间: 2005-12-4 22:58
做这个有点难度哦,不过要敖过去能学到不少东西,耐心做下去吧!
作者: zzz    时间: 2005-12-5 15:28
上面不是有注释吗?
我只写了求第一个点集的中心,第二个点集的中心,你要自己抄一下我的代码。
这个没有做,当然不对了。

求点集的中心原理很简单:一个点集的中心坐标等于各个点坐标的和除以点的个数。
作者: zzz    时间: 2005-12-5 15:30
/* Evaluate the translate distance */
        UF_VEC3_sub(cen1, cen2, vec); //这是什么动作呢?

两个矢量相减可以得到两个点的相对距离
作者: pzytony    时间: 2005-12-5 20:19
耐不下心来,就不要做软件!
作者: vvg87    时间: 2005-12-5 21:38
标题: 原来前辈指的是 "/* */"里的说明!
原来前辈指的是 "/*   */"里的说明!
还以为是 UG内建的注解!  ...不好意思!
  我以为会是  "//---" 后的方式呈现!...
因为英文不好!所以用翻译软件辅助!.....感恩指点! 赶快做完! ..希望星期4赶的上 专题初审!
作者: vvg87    时间: 2005-12-6 09:46
标题: 摸不着 头绪! ...前辈可以讲明朗一点吗?
摸不着 头绪! ...前辈可以讲明朗一点吗?
  我有看到求第一个点集的中心,第二个点集的中心 的地方!
但是 "[你要自己抄一下我的代码。这个没有做,当然不对了]"  我不知道前辈指的是拿里!
.....可能很简单..但是刚接触的我还是不知道在何处!  感恩大大们!
--------------------------------------------------------------------------------------------
/* The following definition defines the number of callback entries */
/* in the callback structure:                                      */
/* UF_STYLER_callback_info_t CHANGE_cbs */
#define CHANGE_CB_COUNT ( 5 + 1 ) /* Add 1 for the terminator */


static int num_point1 = 0;
static int num_point2 = 0;
static tag_t *pt_set1 = NULL;
static tag_t *pt_set2 = NULL;

static int init_proc(
                                          UF_UI_selection_p_t select,
                                          void* user_data
                                        )
{
        int num_triples = 1;
        UF_UI_mask_t mask_triples[] = {        UF_point_type, 0, 0 };

                /*使能够只有一点* /
        if(UF_UI_set_sel_mask(select,
                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,
                num_triples, mask_triples)) == 0)
        {
                return (UF_UI_SEL_SUCCESS);
        }
        else
        {
                return (UF_UI_SEL_FAILURE);
        }
}

static void move(void)
{
        int i = 0, j = 0;
        double cor[3] = {0,0,0}, cen1[3] = {0,0,0}, cen2[3] = {0,0,0}, vec[3] = {0,0,0};

        /*求中心第一个点集* /
        for(i = 0; i < num_point1; i++)
        {
                UF_CURVE_ask_point_data(pt_set1[i], cor);
                for(j = 0; j < 3; j++)
                {
                        cen1[j] += cor[j];
                }
        }

        for(j = 0; j < 3; j++)
                cen1[j] /= num_point1;

        /*求中心 2 点集的值* /

        //.....

    /*求转换距离的值* /
        UF_VEC3_sub(cen1, cen2, vec); /*两个矢量相减可以得到两个点的相对距离*/

        /*转换* /

        {
                int status = 0, copyTag = 1; /*移动* /
                int layer = 0, trace = 2;
                double matrix[16]={0.0};
                tag_t out1 = NULL_TAG, out2 = NULL_TAG;
                char msg[133] = "";


                FTN(uf5943)(vec, matrix); /*得转换矩阵* /
                FTN(uf5947)(matrix, pt_set2, &num_point2, &copyTag, &layer, &trace,
                        &out1, &out2, &status);

                if( status )
                        UF_get_fail_message( status, msg );
        }

        return;
}
作者: zzz    时间: 2005-12-6 15:52
/*求中心 2 点集的值* /

        //.....

这里,我用...省略了,和第一个点集一样处理,这个你可以做吧。
作者: vvg87    时间: 2005-12-7 23:19
标题: 是这样吗?.......但是还是不准喔!
是这样吗?.......但是还是不准喔!
-------------------------------------------------------------
tatic void move(void)
{
        int i = 0, j = 0;
        double cor[3] = {0,0,0}, cen1[3] = {0,0,0}, cen2[3] = {0,0,0}, vec[3] = {0,0,0};

        /* Evaluate center of the first points set */
        for(i = 0; i < num_point1; i++)
        {
                UF_CURVE_ask_point_data(pt_set1[i], cor);
                for(j = 0; j < 3; j++)
                {
                        cen1[j] += cor[j];
                }
        }

        for(j = 0; j < 3; j++)

    cen1[j] /= num_point1;
        /* Evaluate center of the second points set */

        {
                UF_CURVE_ask_point_data(pt_set1[i], cor);
                for(j = 0; j < 3; j++)
                {
                                cen1[j] += cor[j];
                }
        }

    /* Evaluate the translate distance */
        UF_VEC3_sub(cen1, cen2, vec);

        /* Translate */

        {
                int status = 0, copyTag = 1; /* move */
                int layer = 0, trace = 2;
                double matrix[16]={0.0};
                tag_t out1 = NULL_TAG, out2 = NULL_TAG;
                char msg[133] = "";


                FTN(uf5943)(vec, matrix); /* get translate matrix */
                FTN(uf5947)(matrix, pt_set2, &num_point2, &copyTag, &layer, &trace,
                        &out1, &out2, &status);

                if( status )
                        UF_get_fail_message( status, msg );
        }

        return;
}




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3