3 angles to 1 vector....

Well, well, well, hi everybody !!

Given 3 angles (ax, ay, az) how can i get the vector representing the direction…
Without matrices and quaternions !!

I have the feeling that sin and cos are involved but i don’t know how :frowning:

thanks for the help…

um… not 1 vector but two!

yes, sin and cos are involved… remember parametric equations back in trig/calc class?

given 2 angles you can have a vector from the origin to a point on the unit sphere! Just like if given 1 angle you can have a point on the unit circle (x=cos xa, y=sin ya) from 0-2pi, you could switch the sin and cos around, it’ll still be a circle… just have different parts drawn first… hopefully I’ve sparked enough so you can figure out the rest…

Cheers
Navreet

The fastest way to do this is with matrixs but if you’re not comfortable with them here is the next best way. (at least in my opinion)

Just draw a triangle for each of these angles you have on a piece of paper. Then it will be easy to see the trig needed to get each hypotonus. Each one these hypotonuses is the vector associated with a single angle. Then you’ll want to normalize this vector. Do this for all 3 angles. Add these 3 vectors. Then normalize again.

Sorry to insist but,

a camera can have ONE direction/orientation vector so i maintain that it is possible to pack 3 angles into ONE normalized vector…
(You know like in quake 3 source)

still without matrices/quaternions

thanks.

Actually the solution you are looking for is the final result of a multiplication of three 3x3 rotation matrices applied to a (x,y,z) vector.

For the correct answer you have to specify in which order you want to apply the rotation.

In the Redbook V1.1 Appendix F you find the matrices for the standard axis rotations.
Take the upper 3x3 and calculate
v’ = Rz * Ry * Rx * v
(if that is your desired order!) giving three formulae with lots of sin and cos.

Depending on which vector you want to rotate (unit vector in z is a common case), you won’t have to calculate the whole matrix, but just the third column.

Sorry, that’s the way to do it. It’s simple, but tedious.