NX中3*3坐标系矩阵的存储形式,第一行是X坐标还是第一列是X坐标
在NX中向量乘矩阵会用到的两个函数UF_MTX3_multiply 和UF_MTX3_multiply_t
向量乘矩阵是如何计算;
行向量乘以矩阵的话用行向量乘以矩阵的每一列,矩阵乘以列向量的话用矩阵的每一行乘以列向量
公式一
所以代表坐标系的矩阵在NX中的存储形式是还是(其中{x1,y1,z1}表示坐标系的X轴坐标)对于向量X矩阵是非常重要的。
所以用代码验证了一下代码如下;
UF_initialize(); //---------------------------------------------------- double douVecX[3] = { 1.0,0.0,0.0 }; double douMtx[9] = { 1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0 };//矩阵 double douVec[3]; UF_MTX3_vec_multiply(douVecX, douMtx, douVec); char msg[256]; sprintf_s(msg, "douVec = %f %f %f\n", douVec[0], douVec[1], douVec[2]); UF_UI_open_listing_window(); UF_UI_write_listing_window(msg); //---------------------------------------------------- UF_terminate();
输出结果为1,4,7。
结合公式一,将公式一中的a=1,b=0,c=0。则结果为{x1,x2,x3};
所以矩阵douMtx在NX中的存储形式应为;
同理若将douMtx换成一个坐标系矩阵,则可证明
NX中3*3矩阵的第一列存储的是坐标系的X轴。