Three.js中对象之间的倾斜旋转

时间:2012-11-30 07:02:09

标签: javascript 3d webgl three.js orbital-mechanics

我正在尝试重现像Three.js这样的太阳系,但我无法让行星绕着恒星倾斜旋转:

Rotating angle

这是一个小提琴样本,但轮换错误: http://goo.gl/MzcwI

我试过这个解决方案: How to rotate a 3D object on axis three.js?没有成功。

如果有人有线索要帮助我, 感谢

3 个答案:

答案 0 :(得分:1)

我必须在枢轴的根位置添加一个元素,它会创建一种可以旋转的新计划。

解决方案here

jsfiddle

答案 1 :(得分:0)

你试过吗?

function animate() {

  pivot.rotation.y += 0.01;
  pivot.rotation.x += 0.01;
  requestAnimationFrame(animate);
  render();

}

答案 2 :(得分:0)

如果您只想使用网格的位置矢量进行旋转,您可以执行类似

的操作
theta = 0;/* Global variable */
function render(){ 

    orbiter = /* Get the planet you want to rotate*/;

    orbiter.mesh.position.x = Math.cos( theta ) *100;
    orbiter.mesh.position.z =  Math.sin( theta ) *25;
    orbiter.mesh.position.y  =  Math.cos( theta ) * -60;
    theta +=.02; 

    renderer.render( scene, camera );
}

function animate(){ animation_id = requestAnimationFrame( animate ); render(); }
animate();

您必须使用这些值来获得所需的旋转角度 - 尤其是position.y值。增加theta应该会提高速度。