Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 添加或组合矩阵x3d_Actionscript 3_Matrix Multiplication_Stage3d - Fatal编程技术网

Actionscript 3 添加或组合矩阵x3d

Actionscript 3 添加或组合矩阵x3d,actionscript-3,matrix-multiplication,stage3d,Actionscript 3,Matrix Multiplication,Stage3d,我一直在做一个3D太空游戏(这里有一个早期的演示…www.sugarspook.com/darkmatters/demo.html),我正在添加代码,以允许太空站由多个网格组成。我已经包括了网格并正在工作。现在,我希望能够相对于中央空间站对象(轨道类)定位每个网格部分。 每个轨道部分都有一个_matrixOffset:Matrix3D,我通过它来确定它的位置。在3D绘图阶段,OrbitalSection复制其“父”轨道矩阵3D原始数据,然后附加其自身的_matrixOffset: transfo

我一直在做一个3D太空游戏(这里有一个早期的演示…www.sugarspook.com/darkmatters/demo.html),我正在添加代码,以允许太空站由多个网格组成。我已经包括了网格并正在工作。现在,我希望能够相对于中央空间站对象(轨道类)定位每个网格部分。
每个轨道部分都有一个_matrixOffset:Matrix3D,我通过它来确定它的位置。在3D绘图阶段,OrbitalSection复制其“父”轨道矩阵3D原始数据,然后附加其自身的_matrixOffset:

transform.matrix3D.copyFrom(_orbitalMatrix);
transform.matrix3D.append(_matrixOffset);
如果轨道部分的_matrixOffset只有一个位置平移,那么这一切都可以正常工作,例如:

_matrixOffset.appendTranslation(0, 0.1, 0);
但是,一旦我将旋转包含到_matrixOffset中,游戏中的定位就混乱了。
我要做的就是将_matrixOffset添加到父轨道的transform.matrix3D的副本中。翻译前后,我都尝试过prependRotation和appendRotation。
有人知道怎么加两个矩阵吗?
谢谢。

将“添加”矩阵偏移量添加到父矩阵副本的确切含义是什么


我建议你多读一些关于“同质变换”的内容。

显然,你希望你的
轨道截面
位于相对于其主基底的某个位置。这意味着,您必须首先填充矩阵,然后附加父矩阵

transform.matrix3D.copyFrom(_matrixOffset);
transform.matrix3D.append(_orbitalMatrix);

如果你的
Orbital
实例决定以某种方式旋转,这也可以保护你的皮肤。

我希望_matrixOffset对轨道的变换产生一次性的累积效应。Matrix3D对象,相对于轨道的位置和旋转来定位和旋转它。当_matrixOffset只有一个翻译时,它似乎起作用;当_matrixOffset包含旋转时,它会变得混乱。顺便说一句,它是“同质的”。好吧,所以我用错误的顺序做这些操作。。。我不记得我是否按照你的建议试过;我试过很多选择。但我稍后会试一试,让你知道它是否有效。谢谢