最近在学习threejs,觉得非常有趣。于是决定用这个来模拟太阳系各行星的运行轨迹。
关于threejs的基础知识就不再赘述了,大家可以查看官网:threejs官方网站
本文的demo可以从下面下载:threejs模拟太阳系八大行星公转及自转三维模型
大家也可以通过以下地址观看效果:threejs模拟太阳系八大行星公转及自转三维模型效果
(可以通过鼠标和滚轴,切换视角和视野缩放)
下面介绍我的实现思路:
(1)设置太阳及八大行星参数
先查询太阳及八大行星的半径、自转周期、公转周期,各行星绕太阳公转椭圆轨道的近日点和远日点。并设置如下数组:
//行星参数
const stars = [
{ name: '太阳', radius: 69.550, textureImg: 'Sun.png', centerPosition: { x: 0, y: 0, z: 0 }, rotationSpeed: Math.PI / 100 / 25.5/*自转速度*/, },
{ name: '水星', radius: 2.440, textureImg: 'Mercury.png', centerPosition: { x: 0, y: 0, z: 57909 / 500 }, rotationSpeed: Math.PI / 100 / 58/*自转速度*/, revolutionRadiusX: 69816.9 / 500, revolutionRadiusY: 46001.2 / 500, revolutionDiviseLength: 87.9/365*revolutionSpeedRatio/*公转速度有关,越大,转速越慢*/, revolutionDiviseInd: 0 },
{ name: '金星', radius: 6.051, textureImg: 'Venus.png', centerPosition: { x: 0, y: 0, z: 108200 / 500 }, rotationSpeed: Math.PI / 100 / 243/*