函数: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 }

NX二次开发-向量乘矩阵的几何意义的更多相关文章

  1. NX二次开发-通过3x3矩阵获取XYZ轴矢量

    函数:UF_CSYS_ask_wcs() 函数说明:通过3x3矩阵获取XYZ轴矢量 用法: 1 #include <uf.h> 2 #include <uf_mtx.h> 3 ...

  2. NX二次开发-UFUN圆弧矩阵标记、起始角和结束角(弧度测量)、圆弧中心坐标和圆弧半径UF_CURVE_ask_arc_data(边可以用)

    1 NX11+VS2013 2 3 #include <uf.h> 4 #include <uf_ui.h> 5 #include <uf_modl.h> 6 #i ...

  3. NX二次开发-将3X3矩阵修正为正交且长度为单位长度的矩阵

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

  4. NX二次开发-获取WCS坐标系的原点坐标和矩阵标识

    函数:UF_CSYS_ask_csys_info() 函数说明:获取工作坐标系对象的标识符. 用法: #include <uf.h> #include <uf_csys.h> ...

  5. 【NX二次开发】获取指定矩阵标识的矩阵值

    函数:UF_CSYS_ask_matrix_values () 函数说明:获取指定矩阵标识的矩阵值. 用法: #include <uf.h> #include <uf_csys.h& ...

  6. NX二次开发-获取WCS标识

    函数:UF_CSYS_ask_wcs() 函数说明:获取工作坐标系对象的标识. 用法: 1 #include <uf.h> 2 #include <uf_csys.h> 3 e ...

  7. 【NX二次开发】移动WCS坐标系

    说明:移动WCS坐标系 用法: #include <uf.h> #include <uf_csys.h> extern DllExport void ufusr(char *p ...

  8. NX二次开发-创建(临时)坐标系

    函数:UF_CSYS_create_csys() . UF_CSYS_create_temp_csys() 函数说明:创建坐标系 .创建临时坐标系 用法: #include <uf.h> ...

  9. 【NX二次开发】根据视图名称旋转视图,在布局中替换视图uc6464

    uc6464("布局名","旧视图名","新视图名");输入布局名.旧视图名.新视图名.如果布局名为空则更新当前布局.如果旧视图名为空,则工 ...

随机推荐

  1. 简单写个logictic回归

    最近做华为软件精英挑战赛热身赛,给出的demo是使用logistic做的金融风控,比赛要求很严格,如果使用Python 进行训练那么不能使用任何第三方机器学习库,只能使用Python和原生numpy1 ...

  2. 虚拟机之 Parallels Desktop

    去官网看看 在 Mac 虚拟机中跨多个操作系统开发和测试 访问 Microsoft Office for Windows 和 Internet Explorer 快速运行 Windows 应用不会减慢 ...

  3. 【Linux】在centos中使用命令安装redis

    1.前提centos能够上网 测试方式输入命令,有数据返回即可.如果则先配置centos网络连接. ping www.baidu.com 2.安装gcc 输入命令进行安装 yum install gc ...

  4. 不想用teamviewer和向日葵远程 试试frp吧

    前言 最近发现teamview越来越不稳定了,总连接不上,对向日葵也是无感,倒不是说这两个产品不好,毕竟也是陪伴过我很长一段时间的软件了,于是上网找寻到了一个反向代理神器--FRP 介绍 frp是一个 ...

  5. ==与equals比较

    提到==与equals的区别,这就必须先回顾一下jvm内存的分配机制 ==和equals无非比较两个基本数据类型或者对象类型 八种基本类型: 基本类型 大小 默认值 封装类 byte 1 0 Byte ...

  6. [刷题] 279 Perfect Squares

    要求 给出一个正整数n,寻找最少的完全平方数,使他们的和为n 示例 n = 12 12 = 4 + 4 + 4 输出:3 边界 是否可能无解 思路 贪心:12=9+1+1+1,无法得到最优解 图论:从 ...

  7. CentOS、RHEL、Asianux、Neokylin、湖南麒麟、BC Linux、普华、EulerOS请参考“1.1 CentOS本地源配置”;

      本文档适用于CentOS.RHEL.Asianux.Neokylin.湖南麒麟.BC Linux.普华.EulerOS.SLES.Ubuntu.Deepin.银河麒麟. CentOS.RHEL.A ...

  8. 012.Ansible高级特性

    一 本地执行 如果希望在控制主机本地运行一个特定的任务,可以使用local_action语句. 假设我们需要配置的远程主机刚刚启动,如果我们直接运行playbook,可能会因为sshd服务尚未开始监听 ...

  9. Ubuntu 获取升级信息失败。可能网络有问题

    升级Ubuntu系统时遇到的这个问题, 原因是默认的源不是国内的,而且还可能导致下载慢等问题. 1.备份源 cd /etc/apt/ sudo cp sources.list sources.list ...

  10. 049.Python前端javascript

    一 JavaScript概述 1.1 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名Script ...