问题描述
我有三个非共线 3D 点,比如说 pt1
、pt2
、pt3
。我已经使用 sympy.Plane
计算了平面 P
。我怎样才能找到这个平面的方向(P
),即 RPY(欧拉角)或四元数?
解决方法
我从未使用过 sympy,但您应该能够找到一个函数来获取 2 个向量(您的法线向量和世界 Y 轴)之间的角度。
theta = yaxis.angle_between(P.normal_vector)
然后得到旋转轴,它是那些相同向量的归一化叉积。
axis = yaxis.cross(P.normal_vector).normal()
然后从轴和角度构造一个四元数
q = Quaternion.from_axis_angle(axis,theta)