NX二次开发-NX中向量的坐标系变换说明


NX 中存在两个函数用于向量与矩阵相乘达到向量坐标系变换的目的;

UF_MTX3_vec_multiply()函数表示向量(vec) X 矩阵(mtx)。

UF_MTX3_vec_multiply_t()函数表示向量(vec) X 矩阵的转置(trns(mtx))。

在这里说一下两个函数使用方法;

1.已知向量在绝对坐标系下的坐标求向量在工作坐标系下的坐标;

此是可以使用UF_MTX3_vec_multiply(),

double douVecX[3] = { 1.0,0.0,0.0 };
double douCsys[9] = { 0.866025,-0.500000,0.0,0.500000,0.866025,0.0,0.0,0.0,1.0 };
double douVec[3];
UF_MTX3_vec_multiply(douVecX, douCsys, douVec);

douVecX表示向量下绝对坐标系下的X轴坐标;

douCsys表示工作坐标系的坐标系矩阵;

得到的结果douVec就是向量douVecX在坐标系douCsys下的坐标。

2.已知向量在工作坐标系下的坐标求向量在绝对坐标系下的坐标;

此是可以使用UF_MTX3_vec_multiply_t(),

double douVecX[3] = { 1.0,0.0,0.0 };
double douCsys[9] = { 0.866025,-0.500000,0.0,0.500000,0.866025,0.0,0.0,0.0,1.0 };
double douVec[3];
UF_MTX3_vec_multiply(douVecX, douCsys, douVec);

douVecX表示向量下工作坐标系douCsys下的X轴坐标;

douCsys表示工作坐标系的坐标系矩阵;

得到的结果douVec就是向量douVecX在绝对坐标系下的坐标。