|
|
I want to use matrix to express the transformtion of the lingo 3D, But I find
something strange and cannot find any way to adjust the matrix to match it.
Just like the code bellow, I new two groups:group1 and group2 ,group1 is a
member of group("world"), and contain the member group2. group2 contain a
member pModel. i set the pModel's position as vector(1.0,0.0,0.0), give the
group1a rotation of vector(0.0,45.0,0.0) and a scale of vector(2.0,1.0,1.0).
When I use pModel.getworldtransform() to get the pModel's transform in world
space, I find the result like bellow:
scales:vector( 1.6720, 1.0000, 1.1961 )
position:vector( 0.6136, 0.0000, -1.5339 )
rotation:vector( 0.0000, 72.9868, 0.0000 )
axisAngle:[vector( 0.0000, -1.0000, 0.0000 ), -72.9868]
I don't know why. if someone can give me a explanation or give me some
document about the transformation.
on beginSprite
clearglobals()
_movie.member(2).resetWorld()
pModelResource=sprite(1).member.newmodelResource("modelResource",#plane,#back)
Group1=_movie.member(2).newgroup("group1")
Group1.transform.position=vector(0.0,0.0,0.0)
Group1.transform.rotation=vector(0.0,45.0,0.0)
Group1.transform.scale=vector(2.0,1.0,1.0)
Group2=_movie.member(2).newgroup("group2")
Group1.addChild(Group2,#preserveWorld)
Group2.transform.position=vector(0.0,0.0,0.0)
Group2.transform.rotation=vector(0.0,0.0,0.0)
Group2.transform.scale=vector(1.0,1.0,1.0)
pModel=_movie.member(2).newModel("model1",pModelResource)
Group2.addChild(pModel,#preserveWorld)
pModel.transform.position=vector(1.0,0.0,0.0)
pModel.transform.rotation=vector(0.0,0.0,0.0)
pModel.transform.scale=vector(1.0,1.0,1.0)
a=pModel.getworldtransform()
end
|
|