使用OrbitControls
在three.js中旋转场景,我想要一个planeMesh
对象始终面向相机。我正在尝试以下内容,但它只是疯狂地旋转(似乎处理器密集型),但它看起来像当我用鼠标围绕场景(移动相机)时,它会试图保持前方。我试图让它只在相机移动时慢慢重新定位。我在这里做错了什么?three.js:平滑地旋转与OrbitControls相反的对象camera.rotation.y
下面是相关的JS:
function animate() {
requestAnimationFrame(animate);
planeMesh.rotation.y -= Math.PI /camera.rotation.y;
render();
}
我也试过以下(没有也行):
function animate() {
requestAnimationFrame(animate);
var a = camera.rotation.y;
var b = camera.rotation.y;
if (a == b) {
planeMesh.rotation.y -= Math.PI /camera.rotation.y;
} else {
}
render();
a = camera.rotation.y;
}
**编辑 我想camera
和planeMesh
保持目前的关系。 这里是开始旋转: planeMesh Rotation y = 3.141592653589793
camera Rotation y = -0.06894749489830237
不过,我觉得相机使用THREE.Euler,并planeMesh使用Math.PI旋转,所以......使用不同的系统,这两个旋转测量?
当然,如果我能得到起点的差异,那么只有当差异更大,并且差异比起始差异更大时才更改planeMesh rotation.y
,那么我将完成我的目标。但我该怎么做?我是否必须以某种方式翻译这两种测量系统?当我旋转场景时,相机确实使用了不同的测量比例。
啊!辉煌!很简单。谢谢! –