在用three.js写地球案例时候,使用了动画,设置了它的自转速度,但是转速却一直在加快
动画这样设置:
function animate( ) {
let elapsed = clock.getElapsedTime();
moon.position.set(Math.sin(elapsed)*4,0,Math.cos(elapsed)*4)
//地球自转
//自转轴
var axis= new THREE.Vector3(0,1,0);
earth.rotateOnAxis(axis,0.005)
renderer.render(scene,camera);
requestAnimationFrame(animate)
}
转速达到一定程度,就开始闪烁,哈哈哈哈
解决办法:动画进入后重置转速,否则数值一直在叠加
function animate( ) {
let elapsed = clock.getElapsedTime();
moon.position.set(Math.sin(elapsed)*4,0,Math.cos(elapsed)*4)
//地球自转
//自转轴
var axis= new THREE.Vector3(0,1,0);
earth.rotateOnAxis(axis,0.0);
earth.rotateOnAxis(axis,0.005);
renderer.render(scene,camera);
requestAnimationFrame(animate)
}