[20/52] 随机软件项目:太阳系行星

💡 原文英文,约3400词,阅读约需13分钟。
📝

内容提要

文章介绍了如何使用THREE.js和航天知识模拟行星在三维空间中的运动。作者基于Curtis的《工程学生轨道力学》算法,通过计算轨道元素漂移实时确定行星位置。详细描述了计算朱利安日期、插值轨道元素、求解开普勒方程等步骤,并分享了使用Jasmine进行测试和通过yarn管理项目的方法。最终实现了一个用于计算行星位置的自包含JavaScript模块。

🎯

关键要点

  • 文章介绍了如何使用THREE.js和航天知识模拟行星在三维空间中的运动。
  • 作者基于Curtis的《工程学生轨道力学》算法,通过计算轨道元素漂移实时确定行星位置。
  • 详细描述了计算朱利安日期、插值轨道元素、求解开普勒方程等步骤。
  • 分享了使用Jasmine进行测试和通过yarn管理项目的方法。
  • 最终实现了一个用于计算行星位置的自包含JavaScript模块。
  • 项目开始时创建了一个空的yarn项目并初始化git。
  • 使用standish_catalog.json文件存储行星的轨道元素数据。
  • 定义了六个轨道元素的值,包括半长轴、偏心率、倾角等。
  • 构建了一个算法的顶层调用,计算给定时间的行星位置和速度。
  • 实现了计算朱利安日期和朱利安世纪的功能。
  • 通过插值计算轨道元素,并将其转换为SI单位。
  • 使用牛顿-拉夫森方法求解开普勒方程。
  • 计算行星在周边平面的位置和速度向量,并转换为日心惯性坐标系。
  • 实现了一系列实用函数以支持主要算法的实现。
  • 使用Jasmine框架进行单元测试,确保代码的正确性和覆盖率。
  • 添加开发依赖以支持测试、文档和覆盖率的生成。
  • 最终准备发布该包,并可通过yarn命令进行管理和发布。
➡️

继续阅读