3D vector defined by two angles

So I'm looking for a way to calculate the x, y and z component of a vector using 2 angles as shown: enter image description here Where alpha is the 2D angle and beta is the y angle. What I was using uptill now for 2D vectors was:

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

      

After searching through the stackexchange math, I found that this forum is not working correctly:

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

      

Note: When approaching 90 degrees with a beta angle, the x and z components should approach zero. All help would be appreciated.

+8


source to share


2 answers


The correct formulas would be



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

      

+16


source


The above answer is correct ...

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

      



... but only if the angular beta in the figure changes to angular between green and red vector.

0


source







All Articles