Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/stellardx/cspaceengine-project

A C++ static library for astronomic calculation and modding SpaceEngine
https://github.com/stellardx/cspaceengine-project

astronomy astrophysics cpp library parser spaceengine

Last synced: 1 day ago
JSON representation

A C++ static library for astronomic calculation and modding SpaceEngine

Awesome Lists containing this project

README

        


CSpaceEngine·聚力新生


开源的SpaceEngine静态库,适配SE0.990


许可证:GPL-3.0



功能



  • GLSL数据类型和内置函数

  • 日期,时间及儒略日

  • 高等数学

  • 类似Python的随机数生成器

  • SpaceEngine SC文件读写

  • 剩下的功能还在重构中...


来自GLSL的数据类型和函数



  • n维向量模板,2-4维是独立数据类型,4维以上为std::array的增强

  • 矩阵,理论上不限大小,支持线性代数计算,可以当容器使用

  • 一些来自GLSL的函数,支持vec2-4以及std::array


日期时间


这个功能的使用方法和Qt的日期和时间类型相似,但是比Qt的简单


高等数学



  • 直角坐标和极坐标之间的转换

  • 导数,积分,微分方程

  • 反函数


类似Python的随机数生成器


基本就是让C++的随机生成更好用些而已,顺便加了个自定义分布


SpaceEngine SC文件读写



  • 一个经历了至少3次的更新换代的,基于LR(1)算法的sc文件读取

  • SC文件输出流


功能很基础物理引擎(可选组件)



  • 轨道跟踪器,用于轨道根数和状态向量的转换,可以实时跟踪(目前只支持椭圆轨道,Bug多慎用)

  • 一些很基础的转换,比如双星轨道转开普勒轨道根数

  • 行星轨道分布模型

  • 卫星TLE工具

  • 洛希极限,希尔球和拉格朗日点,用于多体问题

  • IAU自转模型实时跟踪工具 (未来可能添加IAU和标准自转模型互转,高难)

  • 自带了多个状态方程模板已经状态方程,尽管它们绝大多数是不精确的 (将改为材料实体类,封装基本属性,状态方程及熔化曲线)

  • 基于流体静力平衡的行星物理模型(搁置了两年多的“世纪难题”在此宣告破解!) (将引入温度影响,向气态行星兼容)

  • (未实现)基于恒星结构方程的恒星物理模型 (新的高难世纪难题待破解)

  • 星等-光度计算

  • (未完全实现)光谱分析

  • (未实现)基本热力学 (又是世纪难题)


编译


此版本已经放弃VS2022并迁移到CMake平台,编译就正常使用CMake即可。


注:由于此版本的一些功能会大量使用format函数,而一些编译器在开启了C++20之下仍未支持此功能,所以这里给出了一个备用解决方案,此方案需安装fmtlib


编译选项详见Building the library(还未上传)


遇到问题或想要新功能?


如果发现无法解决的问题或者bug,在issues告诉我。