Pergunta

I have a cylinder of 2f length, and the data for RotX and RotZ, given by user. I also know that the "bottom" of my cylinder is at (0,0,0) (the center of the circle forming the "bottom")

What I need is to calculate the "top" point (the center of the circle at the other end) having the data exposed in the upper lines.

In my second image, the A point is calculated as follows (sin(zAngle),cos(zAngle),sin(xAngle) with zAngle=PI/4 (alpha angle) and xAngle=0.
Point B is calculated as (sin(xAngle),cos(xAngle),sin(zAngle)) with xAngle=PI/4 (beta angle) and zAngle=0;
C point is the "top" of a cylinder with xAngle=PI/4 and zAngle=PI/4.
I need to find an algorithm to determine the "top" point for any given xAngle and zAngle.

I'd be extremly thankful if anyone could help me.

RotZ and RotX explained Example

Foi útil?

Solução

Before your rotations, the top is at 2f*(0,1,0).

After you rotate the cylinder around the z axis by angle alpha, the top is at 2f*(sin alpha, cos alpha, 0).

If you now rotate the cylinder by angle beta around the x axis, the top goes to 2f*(sin alpha, cos alpha*cos beta, cos alpha*sin beta).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top