Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

3D Vector defined by 2 angles

Tags:

math

vector

3d

So basically 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'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.

like image 657
Moff Kalast Avatar asked May 03 '15 08:05

Moff Kalast


People also ask

What is the angle of a 3D vector?

The angle of a 3D vector is the angle from the vector directly to each of the 3 positive axes. The angles are named alpha (x-axis), beta(y-axis) and gamma(z-axis). They are always positive and between 0 and 180 inclusive. They are called direction angles.

How do you define 3D vectors?

A 3D vector is a line segment in three-dimensional space running from point A (tail) to point B (head). Each vector has a magnitude (or length) and direction. Remember, the fundamentals will not change because we are just adding another dimension here.


1 Answers

The proper formulas would be

x = Math.cos(alpha) * Math.cos(beta);
z = Math.sin(alpha) * Math.cos(beta);
y = Math.sin(beta);
like image 108
Tagir Valeev Avatar answered Oct 01 '22 15:10

Tagir Valeev