Reputation: 1043
So basically I'm looking for a way to calculate the x, y and z component of a vector using 2 angles as shown: Where alpha is the 2D angle and beta is the y angle. What I've been using uptill now for 2D vectors was:
x = Math.sin(alpha);
z = Math.cos(alpha);
After searching on stackexchange math I've found this forumula doesn't really work 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 the beta angle the x and z components should approach zero. All help would be appreciated.
Upvotes: 29
Views: 30491
Reputation: 11
That formula just come from the transformation of Spherical coordinates (r, theta, phi) -> (x, y, z) to Cartesian coordinates.
Upvotes: -1
Reputation: 100139
The proper formulas would be
x = Math.cos(alpha) * Math.cos(beta);
z = Math.sin(alpha) * Math.cos(beta);
y = Math.sin(beta);
Upvotes: 39