【问题标题】:Find a new 3D position from a known point of origin, based on distance and angle根据距离和角度,从已知原点查找新的 3D 位置
【发布时间】:2015-09-13 16:34:09
【问题描述】:

我的数学很生疏,而且我从来都不擅长想象二维空间之外的事物。

我的问题是这样的。给定一个原点 (p1),我如何计算一个新点 (p2),它是基于两个角度(Yaw 和 Pitch)的已知距离(100 个单位)。

我所知道的是虚拟房间的 3D 尺寸、该房间内的原点以及偏航和俯仰角(我称之为水平角和垂直角)。用英语来说,我想根据它的 Yaw 和 Pitch 值在这个房间内从那个原点发射一条 100 个单位的线,并得到该线末端的点。

我想要这个空间点,因为我想使用 p1 和 p2 定义我的线。我想最终继续在线/平面相交测试中使用这条线。这些飞机在虚拟房间内也是已知的。我只提到这一点是因为我缺乏数学知识,有人可能会建议我看看其他方法。

【问题讨论】:

    标签: math 3d line


    【解决方案1】:

    如果你只想定义一条线,你不需要第二个点。直线的方向向量可以直接计算为:

          / cos pitch * sin yaw \
    dir = | sin pitch           |
          \ cos pitch * cos yaw /
    

    这假设 y 轴指向上方。零偏航点位于正 z 轴。增加偏航将使方向转向正 x 轴。这些定义都是可以互换的。

    那一行是:

    x = startPoint + t * dir  |  t \in R
    

    如果你真的想要第二点,只需使用 100 作为t 并计算x。

    【讨论】:

      猜你喜欢
      • 2012-08-02
      • 1970-01-01
      • 1970-01-01
      • 2010-10-16
      • 1970-01-01
      • 2014-03-12
      • 1970-01-01
      • 2013-04-29
      • 1970-01-01
      相关资源
      最近更新 更多