Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Python_超人
太阳系三体模拟器
提交
2a9b4b79
太阳系三体模拟器
项目概览
Python_超人
/
太阳系三体模拟器
通知
1076
Star
131
Fork
128
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
太阳系三体模拟器
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
2a9b4b79
编写于
3月 12, 2023
作者:
三月三net
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
太阳系三体模拟器
上级
08c58515
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
22 addition
and
19 deletion
+22
-19
bodies/moon.py
bodies/moon.py
+11
-11
scenes/sun_earth_moon.py
scenes/sun_earth_moon.py
+11
-8
未找到文件。
bodies/moon.py
浏览文件 @
2a9b4b79
...
@@ -41,17 +41,17 @@ class Moon(Body):
...
@@ -41,17 +41,17 @@ class Moon(Body):
}
}
super
().
__init__
(
**
params
)
super
().
__init__
(
**
params
)
def
ignore_gravity
(
self
,
body
):
#
def ignore_gravity(self, body):
"""
#
"""
是否忽略引力
#
是否忽略引力
:param body:
#
:param body:
:return:
#
:return:
"""
#
"""
# 月球只对地球有引力,忽略其他的引力
#
# 月球只对地球有引力,忽略其他的引力
if
isinstance
(
body
,
Earth
):
#
if isinstance(body, Earth):
return
False
#
return False
#
return
True
#
return True
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
...
...
scenes/sun_earth_moon.py
浏览文件 @
2a9b4b79
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
# python_version :3.8
# python_version :3.8
# ==============================================================================
# ==============================================================================
from
bodies
import
Sun
,
Earth
,
Moon
from
bodies
import
Sun
,
Earth
,
Moon
from
common.consts
import
SECONDS_PER_HOUR
,
SECONDS_PER_HALF_DAY
,
SECONDS_PER_DAY
,
SECONDS_PER_WEEK
from
common.consts
import
SECONDS_PER_HOUR
,
SECONDS_PER_HALF_DAY
,
SECONDS_PER_DAY
,
SECONDS_PER_WEEK
,
SECONDS_PER_MONTH
from
scenes.func
import
mayavi_run
,
ursina_run
from
scenes.func
import
mayavi_run
,
ursina_run
from
bodies.body
import
AU
from
bodies.body
import
AU
...
@@ -16,17 +16,20 @@ if __name__ == '__main__':
...
@@ -16,17 +16,20 @@ if __name__ == '__main__':
地球、月球
地球、月球
"""
"""
# 地球的Y方向初始速度
# 地球的Y方向初始速度
EARTH_INIT_VELOCITY
=
29.79
# 200m/s
EARTH_INIT_VELOCITY
=
0
# 0km/s
sun
=
Sun
(
init_position
=
[
0
,
AU
,
0
],
init_velocity
=
[
0
,
0
,
0
],
size_scale
=
1e1
)
sun
=
Sun
(
init_position
=
[
AU
,
0
,
0
],
size_scale
=
2e1
)
# 太阳放大 20 倍
# sun.ignore_mass = True
# 忽略质量的引力
sun
.
ignore_mass
=
True
bodies
=
[
bodies
=
[
sun
,
sun
,
Earth
(
init_position
=
[
0
,
0
,
0
],
Earth
(
init_position
=
[
0
,
0
,
0
],
init_velocity
=
[
0
,
EARTH_INIT_VELOCITY
,
0
],
size_scale
=
1e1
),
# 地球放大 10 倍,距离保持不变
init_velocity
=
[
0
,
EARTH_INIT_VELOCITY
,
0
],
Moon
(
init_position
=
[
363104
,
0
,
0
],
# 距地距离约: 363104 至 405696 km
size_scale
=
1e1
),
# 地球放大 10 倍,距离保持不变
init_velocity
=
[
0
,
EARTH_INIT_VELOCITY
+
1.023
,
0
],
size_scale
=
1e1
)
# 月球放大 10 倍,距离保持不变
Moon
(
init_position
=
[
0
,
384400
,
0
],
# 距地距离约: 363104 至 405696 km
init_velocity
=
[
-
1.023
,
EARTH_INIT_VELOCITY
,
0
],
size_scale
=
2e1
)
# 月球放大 20 倍,距离保持不变
]
]
# mayavi_run(bodies, SECONDS_PER_HALF_DAY / 2, view_azimuth=-45)
# mayavi_run(bodies, SECONDS_PER_HALF_DAY / 2, view_azimuth=-45)
# 使用 ursina 查看的运行效果
# 使用 ursina 查看的运行效果
ursina_run
(
bodies
,
SECONDS_PER_DAY
,
position
=
(
0
,
0
,
0
))
ursina_run
(
bodies
,
SECONDS_PER_DAY
,
position
=
(
AU
,
0
,
0
))
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录