PDA

View Full Version : question about yaw, pitch, roll


TunTun
05-23-2007, 10:23 AM
Hello

I have a question about the command <viewpoint>.rotate(x,y,z,angle). It's said x specifies yaw, y specifies pitch, and z specifies roll. Also viz.get(viz.HEAD_EULER) returns the same order.

my code is:
view = viz.get(viz.MAIN_VIEWPOINT)
view.rotate(1,0,0, 90)
pe = viz.get(viz.HEAD_EULER)
print 'orientation of viewpoint is at: ', pe[0], ', ', pe[1], ', ', pe[2]

It's supposed to change orientation in yaw (vertical axis), and get result (90.0, 0.0, 0.0). But my result is (0.0, 90.0, 0.0).

Then I tried other two directions:

If: view.rotate(0,1,0, 90)
then result is: (90.0, 0.0, 0.0)

If: view.rotate(0,0,1 90)
then result is: (0.0, 0.0, 90.0)

It seems the yaw and pitch values somehow switch each other. Only roll value is what I expected. Can anybody tell me what happened?

Thanks a lot.

farshizzo
05-23-2007, 10:30 AM
Those values are correct. The command view.rotate(1,0,0, 90) will rotate the view 90 degrees along the x-axis, which represents the pitch in euler angles.

Jerry
05-23-2007, 12:46 PM
That's always bothered me too. Yaw is rotation about the y axis.

If you do it this way:

view.rotate(1,0,0,90)

the Eulers come back 0,90,0

but if you do it this way:

view.rotate(90,0,0)

the Eulers are 90,0,0