math - 由2个角度定义的3D矢量

标签 math vector 3d

因此,基本上,我正在寻找一种使用2个角度来计算向量的x,y和z分量的方法,如下所示:

其中alpha是2D角,beta是y角。
我一直在使用uptill进行2D向量的是:

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分量应接近零。
所有帮助将不胜感激。

最佳答案

正确的公式是

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

关于math - 由2个角度定义的3D矢量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30011741/

相关文章:

c# - 如何检查(通用)数字类型是 C# 中的整数类型还是非整数类型?

algorithm - 如何以最佳方式更改 item.OrderNum 字段以匹配列表顺序

c++ - 没有默认构造函数的类 vector

c++ - 以相反的顺序将元素从 vector A 移动到 vector B(非空)

math - 如何在3D空间中找到移动目标的交点坐标?

javascript - Three.js 使用正交相机将 2D 映射到 3D

在许多段中找到最接近点的算法(反向地理编码)

.net - 为什么 ULong > 16 位的数学会变得不稳定?

python - 3D矢量的旋转?

c# - 从 3D 到 2D 的平滑过渡