我在网上看了300多页,我没有得到我想要的结果,或者它没有工作,所以我希望人们可以帮助我在这里。你可以使用伪代码和数学来解释。 :)从已知XYZ角度,半径和原点的点寻找3D坐标?
所以,我们有点(这是起源)。点A有一个半径,一个XYZ位置和XYZ旋转(我知道它可以用2个角度完成,但我真的需要它有3个角度)。 B点的位置不明。
有了这些信息,我的问题是:我将如何找到点B的位置? (或者,我的问题可以改写为:“如何在球体上找到3D点?”)
我已经在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环境。它只有2个角度成功旋转。但我仍然不确定是否应该使用XY或ZX等? – Arundel 2012-08-06 11:33:15
有约定。你可以使用你想要的约定,但记住要与它一致(如果可以的话,总是使用相同的约定)。如果您不知道这一点,请使用ZYX约定。 – Jepessen 2012-08-18 06:58:25