NX二次开发UF_MTX(矩阵运算)常用函数

目录

一、概述

二、函数的介绍

2.1 UF_MTX3_copy(复制原来矩阵)

2.2 UF_MTX3_determinant(计算矩阵的行列式)

2.3 UF_MTX3_identity(单位矩阵)

 2.4 UF_MTX3_initialize(可以根据X、Y方向向量获得Z方向向量)

2.5 UF_MTX3_initialize_x(可以根据X方向向量获得Y、Z方向向量)

 2.6 UF_MTX3_initialize_z(可以根据Z方向向量获得X、Y方向向量)

 2.7 UF_MTX3_mtx4 (3D转4D)

  2.8 UF_MTX3_multiply (点乘)

 2.9 UF_MTX3_multiply_t (mtx_product = trns(mtx1) X mtx2)

  2.10 UF_MTX3_ortho_normalize (正交标准化矩阵)

  2.11 UF_MTX3_rotate_about_axis(指定轴旋转一个角度后的旋转矩阵) 

  2.12 UF_MTX3_transpose (矩阵的转置transpose_mtx = trns(mtx))

  2.13 UF_MTX3_vec_multiply(vec_product = vec X mtx)

   2.14 UF_MTX3_vec_multiply_t (vec_product = vec X trns(mtx))

   2.15 UF_MTX3_x_vec (获得x方向向量)

  2.16 UF_MTX3_y_vec (获得y方向向量)

  2.15 UF_MTX3_z_vec (获得z方向向量)

三、总结


一、概述

        在NX二次开发中矩阵运算用处很大,例如坐标转化等常常会用到,现在学习记录一下常用到的矩阵运算函数。主要记录矩阵的复制、加、减、乘矩阵、行列式、单位矩阵,以及转置矩阵等。矩阵运算函数的帮助文档在uf_mtx.h头文件中。(主要介绍三维,个人感觉会三维矩阵运算就很容易推广到二维)。

二、函数的介绍

2.1 UF_MTX3_copy(复制原来矩阵)

(1)概述

        将矩阵元素从原3x3矩阵复制到目标3x3矩阵矩阵。

(2)用法说明

const double	mtx_src[9]	    Input(输入)	原矩阵
double (实数型)	mtx_dst[9]	    Output(输出)	目标矩阵
2.2 UF_MTX3_determinant(计算矩阵的行列式)

 (1)概述

        计算一个3 × 3矩阵的行列式。

(2)用法说明

const double	mtx[9]	        Input(输入)	要计算行列式的矩阵
double (实数型)	mtx_dst[9]	    Output(输出)	矩阵的行列式
2.3 UF_MTX3_identity(单位矩阵)

 1)概述

        返回一个单位矩阵。

(2)用法说明

double (实数型)	identity_mtx [ 9 ]	Output(输出)	输出一个单位矩阵
 2.4 UF_MTX3_initialize(可以根据X、Y方向向量获得Z方向向量)

 1)概述

        返回由一个3x3矩阵,输入由两个3D向量组成的。大概意思通过x方向向量与y方向向量叉乘生成z方向向量,把三个方向向量存到一个3x3矩阵中。

(2)用法说明

const double	x_vec[3]	    Input(输入)	X方向的方向向量
const double	y_vec[3]	    Input(输入)	Y方向的方向向量
double (实数型)	mtx[9]	        Output(输出)	包含X、Y、Z方向向量的3x3矩阵
2.5 UF_MTX3_initialize_x(可以根据X方向向量获得Y、Z方向向量)

 1)概述

        给定X方向向量,获得任意的Y和Z方向向量。

(2)用法说明

const double	x_vec[3]	    Input(输入)	X方向的方向向量
double (实数型)	mtx[9]	        Output(输出)	包含X、Y、Z方向向量的3x3矩阵
 2.6 UF_MTX3_initialize_z(可以根据Z方向向量获得X、Y方向向量)

 1)概述

        给定Z方向向量,获得任意的X和Y方向向量。

(2)用法说明

const double	z_vec[3]	    Input(输入)	Z方向的方向向量
double (实数型)	mtx[9]	        Output(输出)	包含X、Y、Z方向向量的3x3矩阵
 2.7 UF_MTX3_mtx4 (3D转4D)

 1)概述

        将3D矩阵转换为4D矩阵,比例为1.0,平移向量为零,即将三维坐标转化为四位坐标。

(2)用法说明

const double	mtx_3D [9]	Input(输入)	3D 矩阵
double (实数型)	mtx_4D [16]	Output(输出)	4D 矩阵
  2.8 UF_MTX3_multiply (点乘)

 1)概述

        从两个输入矩阵返回一个3x3矩阵乘积(点乘)。

(2)用法说明

const double	mtx1[9]	        Input(输入)	矩阵1
const double	mtx2[9]	        Input(输入)	矩阵2
double (实数型)	mtx_product[9]	Output(输出)	新矩阵  新矩阵=矩阵1x矩阵2
 2.9 UF_MTX3_multiply_t (mtx_product = trns(mtx1) X mtx2)

 1)概述

        对前面的第一个矩阵进行转置,返回一个3x3矩阵乘积执行乘法运算。

(2)用法说明

const double	mtx1[9]	        Input(输入)	矩阵1
const double	mtx2[9]	        Input(输入)	矩阵2
double (实数型)	mtx_product[9]	Output(输出)	新矩阵  mtx_product = trns(mtx1) X mtx2
  2.10 UF_MTX3_ortho_normalize (正交标准化矩阵)

 1)概述

        返回一个3 × 3矩阵,其方向向量是正交的单位长度(将3 × 3矩阵修正为正交且长度为单位长度的矩阵)。

(2)用法说明

double (实数型)	mtx[9]	    Input / Output	输入一个矩阵,输出一个正交标准化的矩阵
  2.11 UF_MTX3_rotate_about_axis(指定轴旋转一个角度后的旋转矩阵) 

 1)概述

      返回一个3x3旋转矩阵,围绕一个轴并通过一个指定的旋转角度。

(2)用法说明

const double	rotation_axis [3]	Input(输入)	旋转轴的向量
double (实数型)	rotation_angle	    Input(输入)	旋转角度(弧度单位)
double (实数型)	mtx[9]	            Output(输出)	旋转矩阵
  2.12 UF_MTX3_transpose (矩阵的转置transpose_mtx = trns(mtx))

 1)概述

      返回一个3x3矩阵的转置。

(2)用法说明

const double	mtx[9]	            Input(输入)	要转置的矩阵
double (实数型)	transpose_mtx[9]	Output(输出)	转置后的矩阵transpose_mtx = trns(mtx)
  2.13 UF_MTX3_vec_multiply(vec_product = vec X mtx)

 1)概述

      返回一个向量,它是一个3D向量并且是一个3x3的矩阵。

(2)用法说明

const double	vec [3]	        Input(输入)	要相乘的向量
const double	mtx [9]	        Input(输入)	要相乘的矩阵
double (实数型)	vec_product[3]	Output(输出)	Product (a vector) vec_product = vec X mtx
   2.14 UF_MTX3_vec_multiply_t (vec_product = vec X trns(mtx))

 1)概述

      返回一个向量,它是一个3D向量并且是一个转置的乘积3 x3矩阵。

(2)用法说明

const double	vec[3]	            Input(输入)	要相乘的向量
const double	mtx[9]	            Input(输入)	要转置的矩阵
double (实数型)	vec_product[3]	    Output(输出)	Product (a vector) vec_product = vec X trns(mtx)
   2.15 UF_MTX3_x_vec (获得x方向向量)

 1)概述

         返回矩阵的x方向向量。

(2)用法说明

const double	mtx[9]	    Input(输入)	3x3 的矩阵
double (实数型)	x_vec[3]	Output(输出)	X方向的向量
  2.16 UF_MTX3_y_vec (获得y方向向量)

 1)概述

         返回矩阵的y方向向量。

(2)用法说明

const double	mtx[9]	    Input(输入)	3x3 的矩阵
double (实数型)	y_vec[3]	Output(输出)	y方向的向量
  2.15 UF_MTX3_z_vec (获得z方向向量)

 1)概述

         返回矩阵的x方向向量。

(2)用法说明

const double	mtx[9]	    Input(输入)	3x3 的矩阵
double (实数型)	y_vec[3]	Output(输出)	y方向的向量

三、总结

        以上是3x3矩阵的运算,同理有关2x2、4x4矩阵的运算同理这里就不进行说明了,具体查看开发文档就行可,我们要知道的是是否有这个函数以及会用即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/826854.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

R: 阿尔法α多样性计算和箱图制作,以及差异分析

# install.packages("vegan") library(vegan) library(ggplot2) library(ggpubr)setwd("xxx") # 使用read.table()函数读取数据 df <- read.table("xxx", header TRUE, row.names 1)# 转置数据框 df <- t(df)# 计算每个样品的香农多样性…

【Linux】虚拟机与Xshell及VS Code的连接

一、基础环境 虚拟机&#xff1a;VMware Workstation Pro 虚拟机镜像&#xff1a;ubuntu-18.04.5-desktop-amd64.iso 其他&#xff1a;Xshell 6、Xftp 6、Visual Studio Code 上述软件的安装操作不再赘述&#xff0c;CSDN上有大量的优秀博文&#xff0c;可参考&#xff1a;详细…

SpringBoot---------Lombook

Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具&#xff0c;通过使用对应的注解&#xff0c;可以在编译源码的时候生成对应的方法&#xff0c;也就是简化咱们之前pojo&#xff0c;实体类里面臃肿的get/set有参无参。 首先查看一…

学习51单片机 C语言知识

一、数据类型 C 语言包含的数据类型如下图所示 C51 的数据类型分为基本数据类型和组合数据类型&#xff0c;情况与标准 C 中的数据类型基本相同&#xff0c;但其中 char 型与 short 型相同&#xff0c;float 型与 double 型相同&#xff0c;另外&#xff0c;C51 中还有专门针…

免费一年期ssl证书怎么申请?看这里!(教育版、政务版)

自从去年年底开始&#xff0c;各大公有云陆续下架一年期的免费ssl证书&#xff0c;且申请数量都做了限制调整&#xff0c;那么现在去哪里申请免费一年期的ssl证书呢&#xff1f; 一、短期ssl证书 首先了解一下短期免费证书的平台&#xff0c;一般免费证书都为90天有效期&…

创新案例|Amazon.com 2023 年营销策略:电子商务零售巨头商业案例研究

2022 年最后一个季度&#xff0c;亚马逊报告净销售额超过 1,492 亿美元。这种季节性峰值是亚马逊季度报告的典型特征&#xff0c;但增长是不可否认的&#xff0c;因为这是该公司有史以来最高的季度。毫无疑问&#xff0c;这家电商零售巨头继续引领电商增长。本文将介绍我们今天…

木马——文件上传

目录 1、WebShell 2.一句话木马 靶场训练 3.蚁剑 虚拟终端 文件管理 ​编辑 数据操作 4.404.php 5.文件上传漏洞 客户端JS检测 右键查看元素&#xff0c;删除检测代码 BP拦截JPG修改为php 服务端检测 1.MIME类型检测 2.文件幻数检测 3.后缀名检测 1、WebShell W…

充气膜体育馆:为学校带来的健康运动环境

充气膜体育馆作为一种先进的建筑结构&#xff0c;配备先进的空气净化系统&#xff0c;为学校带来了重要的意义和价值。 充气膜体育馆不仅提供了室内运动场地&#xff0c;还通过先进的空气净化系统保障了学生在任何天气条件下都能进行健康的体育活动。尤其是在雾霾天气频繁的地区…

使用docker打包当前服务器的neo4j环境

Docker 是一个开源的应用容器引擎,它允许开发者将应用程序及其依赖打包到一个可移植的容器中,这样应用程序就可以在任何支持Docker的平台上运行,而无需担心环境差异。 当运行一个Docker容器时,它会加载一个镜像并运行它。Docker在容器内部创建一个隔离的环境,这个环境被称…

使用spring boot集成shardingsphere分库分表简易测试

根据如下pom整上一个spring-boot项目&#xff0c;spring-boot版本用2.3.5&#xff0c;shardingsphere用5.1.1。 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://ww…

7-25 念数字

题目链接&#xff1a;7-25 念数字 一. 题目 1. 题目 2. 输入输出格式 3. 输入输出样例 4. 限制 二、代码 1. 代码实现 #include <iostream> #include <string> using namespace std;const string pinyin[] { // 每个数字对应的拼音"ling","yi&…

【Hadoop】- YARN架构[7]

前言 Yarn架构是一个用于管理和调度Hadoop集群资源的系统。它是Hadoop生态系统的一部分&#xff0c;主要用于解决Hadoop中的资源管理问题。 通过使用Yarn架构&#xff0c;Hadoop集群中的不同应用程序可以共享集群资源&#xff0c;并根据需要动态分配和回收资源。这种灵活的资…

验证线缆(汽车线束、网线、多芯线)破损或断开与正常线缆的区别在哪里?依AEM CV-100 k50测试仪

工厂产线生产的线缆&#xff08;汽车线束、网线、多芯线&#xff09;做成成品&#xff0c;即2端都安装好了模块。在这种情况下如何快速的判定此条线缆是合格的呢&#xff0c;此处的合格为物理层面上的合格&#xff08;不会出现开路、短路&#xff09;&#xff0c;也就是最基本保…

client-go源码结构及客户端对象

一、基础知识介绍 1、GVR 和 GVK G Goup资源组&#xff0c;包含一组资源操作的集合VVersion资源版本&#xff0c;用于区分不同API的稳定程度及兼容性RResource资源信息&#xff0c;用于区分不同的资源APIKKind资源对象类型&#xff0c;每个资源对象都需要Kind来区分它自身代表…

冒泡排序c++

题目描述 编程输入n(1≤n≤20)个小于1000非负整数&#xff0c;然后自动按从大到小的顺序输出。&#xff08;冒泡排序&#xff09; 输入 第一行&#xff0c;数的个数n; 第二行&#xff0c;n个非负整数。 输出 由大到小的n个非负整数&#xff0c;每个数占一行。 样例输入 …

restful请求风格的增删改查-----修改and删除

一、修改&#xff08;和添加类似&#xff09; 前端&#xff1a; <script type"text/javascript">function update(){//创建user对象var user {id:$("#id").val(),username:$("#username").val(),password:$("#password").val…

探索VR数字展厅,对企业未来展示新模式

在数字化浪潮的推动下&#xff0c;企业展示也在经历着一场革命&#xff0c;VR数字展厅正在以一种全新的方式重塑我们的生活和工作空间&#xff0c;不仅重塑了客户的观展体验&#xff0c;也为企业营销打开了新的渠道。 VR数字展厅作为实体展厅的数字化延伸&#xff0c;正以其沉浸…

【论文笔记】基于预训练模型的持续学习(Continual Learning)(增量学习,Incremental Learning)

论文链接&#xff1a;Continual Learning with Pre-Trained Models: A Survey 代码链接&#xff1a;Github: LAMDA-PILOT 持续学习&#xff08;Continual Learning, CL&#xff09;旨在使模型在学习新知识的同时能够保留原来的知识信息了&#xff0c;然而现实任务中&#xff…

数据结构––kmp算法(串)

kmp算法作为串的一个重要内容&#xff0c;必然有一定的难度&#xff0c;而在看到各类教辅书里的概念与解释后&#xff0c;其晦涩难懂的内容直接劝退一部分人&#xff0c;现在&#xff0c;让我们来看看吧 KMP解决的问题类型 KMP算法的作用就是在一个已知的字符串中查找子串的位…

hive中建立MySQL表格时有乱码

我们启动hive 建立一个学生students表格 使用desc students查看表格结构时 发现有出现乱码的情况 遇到这种问题 我们可以修改一下 打开MySQL mysql -u root -p123456; 切换数据库 use hive; 执行 修改字段注释字符集 alter table COLUMNS_V2 modify column COMMENT varchar…