Python 计算-从旋转角度计算方向值
不确定我是应该在这里问还是在Stackexchange的数学部分问 我有一个3个旋转角度的向量(即关于x,y,z轴) 并希望创建一个对象需要的方向向量,如果 应用了3个旋转角度,即dir(a、b、c) 我想使用PythonOCC创建一个对象Python 计算-从旋转角度计算方向值,python,geometry,cad,Python,Geometry,Cad,不确定我是应该在这里问还是在Stackexchange的数学部分问 我有一个3个旋转角度的向量(即关于x,y,z轴) 并希望创建一个对象需要的方向向量,如果 应用了3个旋转角度,即dir(a、b、c) 我想使用PythonOCC创建一个对象 BRepPrimAPI_MakeBox(gp_Ax2(gp_Pnt(0,0,0), gp_Dir(0, 0, 1)), \ 10,10,10).Shape() 这就是我想计算的gp_Dir()的正确值,如
BRepPrimAPI_MakeBox(gp_Ax2(gp_Pnt(0,0,0), gp_Dir(0, 0, 1)), \
10,10,10).Shape()
这就是我想计算的gp_Dir()的正确值,如果
对象将按3个旋转角度的矢量旋转。您需要按所需顺序乘以所有值(注意顺序很重要)
然后将初始方向(
(0,0,1)
向量乘以该结果rotmtrx
,以获得最终方向。您可以增量应用多个旋转角度(请参见gp\u Trsf::SetRotation(gp\u Ax1 theAxis,Standard\u Real theAngle)
获取轴和角度)或者在开放式级联技术中使用以下工具:
对不起,我不明白,我没有旋转矩阵。我有一个三个旋转角度的向量,即物体与x,y,z轴的夹角。我想计算gp_Dir(向量)应该是什么,你说的“三个旋转角度的向量”到底是什么意思?我添加了链接。谢谢你尝试一下,不过可能需要几天时间。假设它检查出来,我会给它打勾等。
ResultingRotMtrx = RotX * RotY * RotZ
gp_Quaternion aRotQ;
aRotQ.SetEulerAngles (gp_EulerAngles, 0.1 * M_PI, M_PI, 0.5 * M_PI);
gp_Trsf aTrsf;
aTrsf.SetRotation (aRotQ);
gp_Ax2 anAx2 (gp_Pnt(0, 0, 0), gp_Dir(0, 0, 1));
anAx2.Transform (aTrsf);
TopoDS_Shape aBox = BRepPrimAPI_MakeBox(anAx2, 10, 10, 10);