1

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

旋转角度

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

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

如果有人有线索可以帮助我,谢谢

4

3 回答 3

1

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

解决方案在这里

jsfiddle
于 2012-11-30T17:17:53.533 回答
0

你有没有尝试过?

function animate() {

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

}
于 2012-11-30T15:55:16.613 回答
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 应该会增加速度。

于 2014-02-19T00:47:28.463 回答