vec = XSIMath.CreateVector3(0, 1, 0)
#rot = XSIMath.CreateRotation(XSIMath.DegreesToRadians( -90 ),
# XSIMath.DegreesToRadians( 0 ),
# XSIMath.DegreesToRadians( 0 ))
rot = XSIMath.CreateRotation()
rot.SetFromAxisAngle( XSIMath.CreateVector3(1.0, 0.0, 0.0),
XSIMath.DegreesToRadians( -90 ) )
vec.MulByRotationInPlace( rot)
print vec.X, vec.Y, vec.Z
# 0.0 6.12323399574e-17 -1.0
On 21/02/2013 9:21 AM, Peter Agg wrote:
(and yes, rotating [0, 1, 0] by [-90, 0, 0] should actually make make
[0, 0, -1]) :)
On 21 February 2013 14:15, Peter Agg <[email protected]
<mailto:[email protected]>> wrote:
Hey all,
I'm trying to rotate a vector in a Python Script and seem to be
running into an odd block. For example: I want to rotate the
vector [0, 1, 0] by [-90, 0, 0], which should make [-1, 0, 0] (and
does so if I test in ICE using a Rotate Vector node) but I can't
seem to work out how to do this via scripting.
What I tried:
vec = XSIMath.CreateVector3(0, 1, 0)
rot = XSIMath.CreateRotation(XSIMath.DegreesToRadians( -90 ),
XSIMath.DegreesToRadians( 0 ),
XSIMath.DegreesToRadians( 0 ))
vec.MulByRotationInPlace( rot)
print vec.X, vec.Y, vec.Z
# 0.0 6.12323399574e-17 -1.0
...which makes me think that I've misunderstood what MulByRotation
does!
Any ideas?