【问题标题】:3D Vector defined by 2 angles由 2 个角度定义的 3D 矢量
【发布时间】:2015-07-12 18:04:47
【问题描述】:

所以基本上我正在寻找一种方法来计算使用 2 个角度的向量的 x、y 和 z 分量,如图所示: 其中 alpha 是 2D 角度,而 beta 是 y 角度。 到目前为止,我一直在使用的二维向量是:

x = Math.sin(alpha);
z = Math.cos(alpha);

在搜索 stackexchange 数学后,我发现这个论坛并不能正常工作:

 x = Math.sin(alpha)*Math.cos(beta);
 z = Math.sin(alpha)*Math.sin(beta);
 y = Math.cos(beta);

注意:当 β 角接近 90 度时,x 和 z 分量应接近零。 我们将不胜感激。

【问题讨论】:

    标签: math vector 3d


    【解决方案1】:

    正确的公式是

    x = Math.cos(alpha) * Math.cos(beta);
    z = Math.sin(alpha) * Math.cos(beta);
    y = Math.sin(beta);
    

    【讨论】:

    • 谢谢,这很有效,而且更有意义。 (我不得不切换 x 和 z 但这就是我的环境设置方式)
    • @MoffKalast 垂直平面上的两个角度足以定义 3D 空间中的矢量。您可以使用前两个角度计算第三个平面(在本例中为 XY)上的投影角度。
    • 如果使用的 x、y、z 方向是相对于模型的平面,而不是相对于模型所在的坐标系,您知道如何计算它吗?
    • 我尝试在 4D 中这样做,我想出了:a = Math.cos(gamma); x = Math.cos(alpha)*Math.cos(beta)*a; z = Math.sin(alpha)*Math.cos(beta)*a; y = Math.sin(beta)*a; w = Math.sin(伽玛);我有多接近?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-23
    • 2019-02-03
    • 2021-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多