解决关于任意轴的旋转角度

时间:2016-03-12 22:43:40

标签: optimization 3d embedded

我正在研究一个有问题的嵌入式系统。它知道球体上三个点的初始位置。球体旋转后,它知道这些点的变化距离。这应该可以解决两个解决方案,我有一个方法,以消除其中一个。由此我一直致力于解决球体的当前方向。

我做了足够的分析,知道理论上可以解决这个问题,但我不知道是否有一种既定方法可以解析这一点。

1 个答案:

答案 0 :(得分:0)

您可以解决表格(轴,角度)的旋转问题。要旋转点p,将其拆分为

p|| = axis·(axis·p)
p⊥ = p-p||

并在其平面中仅旋转p⊥。使用余弦定律,你可以得到p和p.rotated之间的距离

distance^2 =|p⊥|^2 * 2(1-cos(angle))
where |p⊥| = |axis x p|

这给出了3个涉及axis.x,axis.y,axis.z和1-cos(角度)的多项式方程(请注意,您不必明确求解角度)。由于轴的长度必须为1,因此您需要另一个等式

axis.x^2 + axis.y^2 + axis.z^2 = 1

我无法直接分辨它是否可以解析(因为多项式只能在解析上解决到4度)。您可以将其插入Wolfram Alpha并检查。