【发布时间】:2012-08-02 22:12:36
【问题描述】:
我已经在互联网上阅读了 300 多页,但我没有得到我想要的结果,或者它不起作用,所以我希望人们能在这里帮助我。您可以使用伪代码和数学来解释。 :)
所以,我们有 A 点(这是原点)。点 A 有一个半径、一个 XYZ 位置和 XYZ 旋转(我知道它可以用 2 个角度完成,但我真的需要它用 3 个角度)。 B点位置未知。
有了这些信息,我的问题是:如何找到 B 点的位置? (或者,我的问题可以改写为:“如何在球体上找到 3D 点?”)
我已经在 2D 中完成了它,它在那里工作。 对于我使用的 2D:
x=pointA.x+radius*cos(angle)
y=pointA.y+radius*sin(angle)
我不使用纯矩阵,但我想使用余弦等。我在伪代码中的尝试(失败得很厉害,我真的不知道如何将 XYZ 旋转与余弦结合起来):
newx=pointA.x+radius*cos(rotationY)*sin(rotationZ+toRadians(90))
newy=pointA.y+radius*cos(rotationZ-toRadians(90))*math.sin(rotationY)*math.cos(rotationX)
newz=pointA.z+radius*math.cos(rotationZ+toRadians(90))*sin(rotationX)
如果有人能帮助我,我将不胜感激。 :)
【问题讨论】:
标签: 3d rotation geometry coordinates trigonometry