请参阅此问题: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是否导致异步问题。
答案 0 :(得分:0)
好。我刚发布了这个,但为将来遇到同样问题的人找到了解决方案。如果你想以不同于三个.js想要的操作顺序应用事物(如本文所示:Threejs Transform Matrix ordering)。 然后,您必须在要按特定顺序执行的每个操作之间使用applyMatrix函数。
以上述为例:
MATCH_RECOGNIZE