【问题标题】:Rotation towards an object in 3d space向 3d 空间中的对象旋转
【发布时间】:2010-02-07 01:20:30
【问题描述】:

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

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

并且像这样在空间中旋转/平移:

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

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

【问题讨论】:

  • “我在二维平面上有两个坐标”“我试图旋转一个坐标(一个图像)以面对另一个坐标”A)一个坐标怎么可能是一个图像? B) 一个坐标怎么能“面对”任何东西?
  • 对不起,应该是“矢量”而不是“图像”。
  • “二维平面”?你能说得更具体点吗?
  • 正如克里斯所说,你的问题没有意义;坐标没有方向。
  • 撞!!!我也想了解更多关于这方面的信息,维基百科有很多关于这方面的精彩文章,但我没有心情去解读它们的数学符号......认为这是您想要使用的比率。

标签: 3d trigonometry


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-10
    • 2014-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-21
    相关资源
    最近更新 更多