Math 由2个角度定义的三维矢量

Math 由2个角度定义的三维矢量,math,vector,3d,Math,Vector,3d,基本上,我在寻找一种方法,用2个角度计算向量的x,y和z分量,如图所示: 其中alpha是2D角度,beta是y角度。 我现在对2D向量使用的uptill是: x = Math.sin(alpha); z = Math.cos(alpha); 在搜索stackexchange math后,我发现此forumula实际上无法正常工作: x = Math.sin(alpha)*Math.cos(beta); z = Math.sin(alpha)*Math.sin(beta); y = Ma

基本上,我在寻找一种方法,用2个角度计算向量的x,y和z分量,如图所示: 其中alpha是2D角度,beta是y角度。 我现在对2D向量使用的uptill是:

x = Math.sin(alpha);
z = Math.cos(alpha);
在搜索stackexchange math后,我发现此forumula实际上无法正常工作:

 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);

谢谢,这很有效,而且更有意义。(我必须切换x和z,但我的环境就是这样设置的)@MoffKalast垂直平面上的两个角度足以定义3D空间中的向量。您可以使用前两个角度计算第三个平面(在本例中为XY)上的投影角度。如果使用的x、y、z方向是相对于模型的平面,而不是相对于模型所在的坐标系,您知道如何计算吗?我尝试在4D中这样做,我得出了:a=Math.cos(gamma);x=数学cos(α)*数学cos(β)*a;z=数学sin(alpha)*数学cos(beta)*a;y=数学sin(β)*a;w=数学sin(伽马);我离得有多近?