“Rotate the Prop3D in degrees about an arbitrary axis specified by
the last three arguments. The axis is specified in world
coordinates. To rotate an about its model axes, use RotateX,
RotateY, RotateZ.”
Questions are:
- what is the origin of the rotation? We all know a rotation requires a rotation degree around a specific vector, and a vector has two points, how could the last three arguments of (x,y,z) define a rotation axis?
- Does that implies the vector is defined by (x,y,z) and (0,0,0) in world coordinate? this is simple not true if you play around with it. it still rotate around the object origin.
- does the (x,y,z) need to be normalized? In my view (0.3,0.3,0.3) and (1.3,1.3,1.3) is equivalent as to define the vector, but this is again not true.
- if both rotateX and rotateWXYZ are rotations around the object origin, how could we rotate around a specific axis, for example, an axis defined by (-1,-1.-1) and (1,2,3)?
in the picture there are two identical cones placed in the same position to start with. Now I am rotating the grey cone with the following settings
actor.rotateWXYZ(90,0.3,0.3,0.3) ;
actor.rotateWXYZ(90,1.3,1.3,1.3) ;
actor.rotateWXYZ(90,0,0,1) ;
actor.rotateZ(90) ;
that last two pictures just prove my point that the rotateWXYZ rotation is a object local rotation, not a rotation in the world space.
rotateWXYZ(90,1.3,1.3,1.3) is not a rotation, it gives completely distorted object. why is that?