0

我在 3d 空间中的 2d 平面上有两个坐标,我试图旋转一个坐标(一个向量)以面对另一个坐标。我的垂直轴是 y 轴,因此如果两个坐标都位于 2d 平面上,它们的 y 轴都将为 0,并且它们的 x 和 z 坐标在飞机。现在,我正在计算这样的角度(与语言无关):

angle = atan2(z2-z1,x2-x1);

并在空间中旋转/平移,如下所示:

pushMatrix();
rotateY(angle);
popMatrix();

这似乎不起作用。我的计算/过程是否正确?

4

1 回答 1

0

我不太了解您的问题(请参阅我的评论),但如果您正在寻找两个向量之间弧度的角度差,请取其点积的弧 cos。点积中的向量必须进行归一化。

您正在使用 tan,要么我不明白您要做什么,要么使用 tan 是错误的。

于 2010-02-07T01:27:42.460 回答