zoukankan      html  css  js  c++  java
  • NX二次开发-向量乘矩阵的几何意义

    函数:UF_MTX3_vec_multiply_t() 或者UF_MTX3_vec_multiply()。推荐使用UF_MTX3_vec_multiply_t() 

    函数说明:将向量按照矩阵进行变换:绝对坐标系下有向量vec,矩阵tagMatrix直接用WCS坐标系的矩阵。vec与tagMatrix乘积得到vec_product。为了更直观我们使用UF_CURVE_create_line创建一条直线来看一下。

     结果:红色矢量为vec、绿色矢量为vec_product。红色向量与ABS坐标的相对位置 ,和绿色向量与tagMatrix矩阵坐标系(WCS)的位置是一致的。结论:使用UF_MTX3_vec_multiply_t()将矢量乘一个矩阵的几何意义就是将矢量与之前的坐标相对位置,转换为此矩阵坐标系下对应的位置。

     1 #include "Text.h"
     2 extern DllExport void ufsta(char *param, int *returnCode, int rlen)
     3 {
     4     UF_initialize();
     5     
     6     //获取WCS标识
     7     tag_t tagWCS = NULL_TAG;
     8     UF_CSYS_ask_wcs(&tagWCS);
     9 
    10     //获取WCS的原点坐标和矩阵标
    11     tag_t tagCsys;   //原点坐标
    12     tag_t tagMatrix; //矩阵标识
    13     double couCsysOrigin[3];
    14     UF_CSYS_ask_csys_info(tagWCS, &tagMatrix, couCsysOrigin);
    15     
    16     //获取指定矩阵标识的矩阵值
    17     double douMatrixValues[9];
    18     UF_CSYS_ask_matrix_values(tagMatrix, douMatrixValues);
    19 
    20     double vec[3] = { 1,1,1 };
    21     double startPoint[3] = { 0,0,0 };
    22     UF_CURVE_line_t tLin;
    23     tLin.start_point[0] = startPoint[0];
    24     tLin.start_point[1] = startPoint[1];
    25     tLin.start_point[2] = startPoint[2];
    26     tLin.end_point[0] = vec[0];
    27     tLin.end_point[1] = vec[1];
    28     tLin.end_point[2] = vec[2];
    29 
    30     tag_t tagLine;
    31     UF_CURVE_create_line(&tLin, &tagLine);
    32 
    33     double vec_product[3];
    34     UF_MTX3_vec_multiply_t(vec, douMatrixValues, vec_product);//向量乘矩阵
    35 
    36     tLin.end_point[0] = vec_product[0];
    37     tLin.end_point[1] = vec_product[1];
    38     tLin.end_point[2] = vec_product[2];
    39     UF_CURVE_create_line(&tLin, &tagLine);
    40 
    41     UF_terminate();
    42 }
    43 
    44 extern int ufusr_ask_unload(void)
    45 {
    46     return (UF_UNLOAD_IMMEDIATELY);
    47 }
  • 相关阅读:
    docker固定IP地址重启不变
    关于 CentOS 7 里面 普通用户 Ulimit max user processes 值的问题
    CentOS tengine mysql 5.7 php 5.6
    strace 分析 跟踪 进程错误
    WPF中的字体改善
    C#数据类型-string
    WPF中的文字修饰
    Winform与WPF对话框(MessageBox, Dialog)之比较
    WPF中将四个数字字符串值(比如:"10,10,300,300")转为Rect
    WPF中嵌入Flash(ActiveX)
  • 原文地址:https://www.cnblogs.com/KMould/p/12550499.html
Copyright © 2011-2022 走看看