将局部坐标转换为世界坐标的公式

时间:2017-11-11 18:26:17

标签: actionscript-3 stage3d

有人可以给我公式吗? 我有一个vector3d,表示一个顶点在局部坐标中的位置,我有一个Matrix3d,表示该顶点是其几何的一部分的对象的旋转和位置,如何将此顶点的局部位置转换为坐标世界?

1 个答案:

答案 0 :(得分:0)

现在它正在工作,我有一个问题,保持原来的vertex3d,我玩了订单,这是工作,非常感谢,这里是代码,我确实必须使用m2.invert ();这是代码:

var m3d:Matrix3D = new Matrix3D();      
obj.Transform.copyToMatrix3D(m3d);
var m2:Matrix3D = new Matrix3D();
m2.append(m3d);
m2.invert();
m2.prependTranslation(obj.BoundingBox[i].x,obj.BoundingBox[i].y,obj.BoundingBox[i].z);
obj.BoundingBox[i] = new Vector3D(m2.position.x,m2.position.y,m2.position.z);
事实上,正如我在第一时间所做的那样也没关系:

var m3d:Matrix3D = new Matrix3D();      
obj.Transform.copyToMatrix3D(m3d);
m3d.invert();
obj.BoundingBox[i] = m3d.transformVector(obj.BoundingBox[i]);

我唯一缺少的是invert();我希望我知道这是为了什么...... 有些人告诉我,我必须附加(或前置)对象矩阵,然后是世界矩阵,这是有道理的,但添加世界矩阵只会引起我的问​​题,而invert();做得很好,但为什么呢?

Vesper,你是建议的人,谢谢,但为什么?

我知道为什么,有经验的人给了我答案:相机显示所有镜像,当你离开时,世界似乎正在​​向右移动,所以你需要反转。

相关问题