这是我迄今为止所做的工作。我正在使用 Three.js 动画,我想在其中创建一个太阳系。我想让行星绕着太阳转。我已经完成了创建绕太阳轨道的工作。但我不知道如何让行星在特定的轨道上旋转。我创造了一个这样的轨道和行星。
var material = new THREE.LineBasicMaterial({color: 'aqua'});
var geometry = new THREE.CircleGeometry(3.2, 1000);
geometry.vertices.shift();
var line = new THREE.Line(geometry, material);
line.position.set(0.5, 5, 6);
line.rotation.x = 2;`
geometry = new THREE.SphereGeometry(0.5, 32, 32);
material = new THREE.MeshBasicMaterial({color: 'yellow'});
p1 = new THREE.Mesh(geometry, material);
p1.position.set(3, 3.8, -1);'
Run Code Online (Sandbox Code Playgroud)
所以,我想让地球绕特定的圆旋转。
你知道太阳到行星的距离(半径),然后你就可以使用Math.sin()和Math.cos()函数来实现你想要的。
var orbitRadius = 10; // for example
var date;
Run Code Online (Sandbox Code Playgroud)
在动画循环中你可以这样做:
date = Date.now() * 0.0001;
p1.position.set(
Math.cos(date) * orbitRadius,
0,
Math.sin(date) * orbitRadius
);
Run Code Online (Sandbox Code Playgroud)
jsfiddle示例
| 归档时间: |
|
| 查看次数: |
8390 次 |
| 最近记录: |