zoukankan      html  css  js  c++  java
  • NX二次开发-将3X3矩阵修正为正交且长度为单位长度的矩阵

    函数:UF_MTX3_ortho_normalize()

    函数说明:将矩阵修正为正交且xyz长度为单位长度的矩阵。下图中输入的矩阵为三条线段的端点,经过修正后,生成一个坐标系。

     1 #include "Text.h"
     2 extern DllExport void ufsta(char *param, int *returnCode, int rlen)
     3 {
     4     UF_initialize();
     5 
     6     double douMatrixValues[9] = {1, 1, 1, 1, 0 ,0, 0, 0, 1};
     7     
     8     tag_t tagLine;
     9     UF_CURVE_line_t tLin;
    10     tLin.start_point[0] = 0;
    11     tLin.start_point[1] = 0;
    12     tLin.start_point[2] = 0;
    13     tLin.end_point[0] = douMatrixValues[0];
    14     tLin.end_point[1] = douMatrixValues[1];
    15     tLin.end_point[2] = douMatrixValues[2];
    16     UF_CURVE_create_line(&tLin, &tagLine);
    17     tLin.end_point[0] = douMatrixValues[3];
    18     tLin.end_point[1] = douMatrixValues[4];
    19     tLin.end_point[2] = douMatrixValues[5];
    20     UF_CURVE_create_line(&tLin, &tagLine);
    21     tLin.end_point[0] = douMatrixValues[6];
    22     tLin.end_point[1] = douMatrixValues[7];
    23     tLin.end_point[2] = douMatrixValues[8];
    24     UF_CURVE_create_line(&tLin, &tagLine);
    25 
    26     UF_MTX3_ortho_normalize(douMatrixValues);
    27 
    28     //通过数组创建矩阵
    29     tag_t tagMatrixId = NULL_TAG;
    30     UF_CSYS_create_matrix(douMatrixValues, &tagMatrixId);
    31         
    32     double douCsysOrigin[3] = { 0,0,0 };
    33     //创建坐标系
    34     tag_t tagCSYS = NULL_TAG;
    35     UF_CSYS_create_csys(douCsysOrigin, tagMatrixId, &tagCSYS);
    36     UF_terminate();
    37 }
    38 
    39 extern int ufusr_ask_unload(void)
    40 {
    41     return (UF_UNLOAD_IMMEDIATELY);
    42 }
  • 相关阅读:
    Quartz.net任务调度
    基于Task定时检测网络本地网络状况
    java基于NIO的分散读取文件,然后统一聚合后写入文件
    基于直接缓冲区和非直接缓冲区的javaIO文件操作
    java 读取xml
    WPF 通过线程使用ProcessBar
    NPOI自适应列宽
    C#序列化与反序列化以及深拷贝浅拷贝
    Springboot feign 传递request信息
    apereo cas 小记01--服务器搭建01
  • 原文地址:https://www.cnblogs.com/KMould/p/12550904.html
Copyright © 2011-2022 走看看