THREE.js:你能为three.js强制执行不同的操作顺序吗?

时间:2016-10-19 13:55:31

标签: javascript node.js three.js physics

请参阅此问题:Threejs Transform Matrix ordering

我正在绘制行星的轨道,并且在更改惯性参考系时遇到问题(我选择将三个世界坐标与观察到的行星的惯性参考系对齐)。但我需要强制three.js按照下面显示的顺序应用操作,以便正确显示轨道(目前轨道停留在世界(0,0,0)并疯狂旋转)。

执行此操作的正常(物理)方法是按顺序执行以下操作: 1.椭圆的零位和旋转。

ellipse.position.set(0,0,0);
ellipse.rotation.set(0,0,0);

2。应用方向余弦矩阵(更改参考系的矩阵)。

ellipse.applyMatrix(DCM);

3。将轨道转换为以轨道物体为中心,其中r是行星的半径矢量。

ellipse.translateX(r.x);
ellipse.translateY(r.y);
ellipse.translateZ(r.z);

4。旋转椭圆。

ellipse.rotateZ(RAAN); // RAAN : right angle of ascending node
ellipse.rotateX(inc);  // inc  : orbit inclination
ellipse.rotateZ(ArgP); // ArgP : Argument of Periapsis.

5。调整中心点和焦点之间的差异。

ellipse.translateX(-c);

6。利润。

所以我不确定在我不熟悉的three.js中是否存在某种命令流,或者node.js是否导致异步问题。

1 个答案:

答案 0 :(得分:0)

好。我刚发布了这个,但为将来遇到同样问题的人找到了解决方案。如果你想以不同于三个.js想要的操作顺序应用事物(如本文所示:Threejs Transform Matrix ordering)。 然后,您必须在要按特定顺序执行的每个操作之间使用applyMatrix函数。

以上述为例:

MATCH_RECOGNIZE