很抱歉张贴可能重复的邮件。

我有两个3D向量:

中心(0,0,0)

宝珠(0,0,100)

我想围绕X和Y轴上的中心矢量旋转球体矢量。
我要实现的目标是,制造商和对象始终在照相机所面对的方向上对其视线。

我已经尝试过了,但是没有运气。

var vector = new THREE.Vector3( 0, 0, 100 );
vector.applyAxisAngle( new THREE.Vector3( 0, 1, 0 ), Math.PI * 0.5 );
vector.applyAxisAngle( new THREE.Vector3( 1, 0, 0 ), Math.PI * 0.5 );
orbBall.position.copy(vector);

最佳答案

“我试图实现的目标是,制造商和目标始终以照相机所面对的方向为视角。”

如果您只是想确保orbBall始终面向相机,并且orbBallcamera都属于三个scene的一部分,则可以像下面这样使用lookAt

orbBall.lookAt(camera.position);


如果需要对齐orbBall的特定一侧,则可以使用空虚拟Object3D来实现,方法是将虚拟节点添加到场景,将orbBall添加到虚拟场景,如下所示:

dummy = new THREE.Object3D();
scene.add(camera); // "camera" is defined however
scene.add(dummy);
dummy.add(orbBall); // "orbBall" is created as usual
// ... not to align dummy+orbBall
dummy.lookAt(camera.position);
// ...and you can just rotate orbBall around "inside" dummy, just once,
///       to face however you like

09-11 18:54