Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Python_超人
宇宙模拟器
提交
dbc2fd47
宇宙模拟器
项目概览
Python_超人
/
宇宙模拟器
通知
19
Star
2
Fork
0
代码
文件
提交
分支
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看板
提交
dbc2fd47
编写于
6月 30, 2023
作者:
三月三net
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Python超人-宇宙模拟器
上级
298ed28a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
13 addition
and
12 deletion
+13
-12
bodies/habitable_zone.py
bodies/habitable_zone.py
+2
-2
sim_scenes/solar_system/solar_system_habitable_zone.py
sim_scenes/solar_system/solar_system_habitable_zone.py
+11
-10
未找到文件。
bodies/habitable_zone.py
浏览文件 @
dbc2fd47
...
@@ -37,8 +37,8 @@ class HabitableZone(Body):
...
@@ -37,8 +37,8 @@ class HabitableZone(Body):
"parent"
:
parent
"parent"
:
parent
}
}
super
().
__init__
(
**
params
)
super
().
__init__
(
**
params
)
# 环状带(inner_radius, outer_radius, subdivisions)
# 环状
宜居
带(inner_radius, outer_radius, subdivisions)
self
.
torus_zone
=
0.95
,
2.4
,
64
self
.
torus_zone
=
0.95
,
1.67
,
64
def
ignore_gravity_with
(
self
,
body
):
def
ignore_gravity_with
(
self
,
body
):
"""
"""
...
...
sim_scenes/solar_system/solar_system_habitable_zone.py
浏览文件 @
dbc2fd47
...
@@ -21,9 +21,9 @@ if __name__ == '__main__':
...
@@ -21,9 +21,9 @@ if __name__ == '__main__':
# 目前认为 太阳系 的宜居带范围是从距离太阳0.95个天文单位 (约1.42亿千米)到 2.4个天文单位(约3.59亿千米)的范围为宜居带,
# 目前认为 太阳系 的宜居带范围是从距离太阳0.95个天文单位 (约1.42亿千米)到 2.4个天文单位(约3.59亿千米)的范围为宜居带,
# 其宽度约为2.17亿千米, 按照这个标准,太阳系的宜居带中只有三个大型天体,分别是地球、 月球 以及火星(1.52天文单位)。
# 其宽度约为2.17亿千米, 按照这个标准,太阳系的宜居带中只有三个大型天体,分别是地球、 月球 以及火星(1.52天文单位)。
sun
=
Sun
(
name
=
"太阳"
,
size_scale
=
0.5e2
)
# 太阳放大 50 倍,距离保持不变
sun
=
Sun
(
name
=
"太阳"
,
size_scale
=
0.5e2
)
# 太阳放大 50 倍,距离保持不变
earth
=
Earth
(
name
=
"地球"
,
size_scale
=
1.
5e3
)
# 地球放大 15
00 倍,距离保持不变
earth
=
Earth
(
name
=
"地球"
,
size_scale
=
1.
2e3
)
# 地球放大 12
00 倍,距离保持不变
earth_moon_d
=
20000000
# 因为地球放大 1500 倍
,为了较好的效果,地月距离要比实际大才行
earth_moon_d
=
13000000
# 因为地球放大 1200 倍,已经占据了月球的轨道
,为了较好的效果,地月距离要比实际大才行
moon
=
Moon
(
name
=
"月球"
,
size_scale
=
1.
5
e3
,
moon
=
Moon
(
name
=
"月球"
,
size_scale
=
1.
3
e3
,
init_position
=
[
earth_moon_d
,
0
,
AU
],
init_position
=
[
earth_moon_d
,
0
,
AU
],
init_velocity
=
[
0
,
0
,
0
],
init_velocity
=
[
0
,
0
,
0
],
ignore_mass
=
True
,
ignore_mass
=
True
,
...
@@ -31,12 +31,12 @@ if __name__ == '__main__':
...
@@ -31,12 +31,12 @@ if __name__ == '__main__':
)
)
bodies
=
[
bodies
=
[
sun
,
sun
,
Venus
(
name
=
"金星"
,
size_scale
=
1.
5e3
),
# 金星放大 15
00 倍,距离保持不变
Venus
(
name
=
"金星"
,
size_scale
=
1.
2e3
),
# 金星放大 12
00 倍,距离保持不变
earth
,
moon
,
earth
,
moon
,
Mars
(
name
=
"火星"
,
size_scale
=
2e3
),
# 火星放大 20
00 倍,距离保持不变
Mars
(
name
=
"火星"
,
size_scale
=
1.2e3
),
# 火星放大 12
00 倍,距离保持不变
Asteroids
(
name
=
"小行星群"
,
size_scale
=
3.2e2
,
Asteroids
(
name
=
"小行星群"
,
size_scale
=
3.2e2
,
parent
=
sun
),
# 小行星群模拟(仅 ursina 模拟器支持)
parent
=
sun
),
# 小行星群模拟(仅 ursina 模拟器支持)
HabitableZone
(
name
=
"宜居带"
,
size_scale
=
0.9
e2
,
HabitableZone
(
name
=
"宜居带"
,
size_scale
=
1
e2
,
parent
=
sun
),
# 宜居带模拟(仅 ursina 模拟器支持)
parent
=
sun
),
# 宜居带模拟(仅 ursina 模拟器支持)
Jupiter
(
name
=
"木星"
,
size_scale
=
2e2
),
# 木星放大 200 倍,距离保持不变
Jupiter
(
name
=
"木星"
,
size_scale
=
2e2
),
# 木星放大 200 倍,距离保持不变
]
]
...
@@ -48,14 +48,15 @@ if __name__ == '__main__':
...
@@ -48,14 +48,15 @@ if __name__ == '__main__':
def
on_timer_changed
(
time_data
:
TimeData
):
def
on_timer_changed
(
time_data
:
TimeData
):
# 1个月有
多少
天
# 1个月有
29.5
天
days_per_month
=
2
7.323
days_per_month
=
2
9.5
# 1天多少角度
# 1天多少角度
angle_per_day
=
360
/
days_per_month
angle_per_day
=
360
/
days_per_month
# 当前的角度(度)
# 当前
天数
的角度(度)
angle
=
time_data
.
total_days
*
angle_per_day
angle
=
time_data
.
total_days
*
angle_per_day
# 当前的角度(弧度)
# 当前
天数
的角度(弧度)
angle
=
angle
*
np
.
pi
/
180
angle
=
angle
*
np
.
pi
/
180
# 计算月亮的坐标(这里没有用到万有引力)
px
=
earth_moon_d
*
np
.
cos
(
angle
)
px
=
earth_moon_d
*
np
.
cos
(
angle
)
pz
=
earth_moon_d
*
np
.
sin
(
angle
)
pz
=
earth_moon_d
*
np
.
sin
(
angle
)
moon
.
position
=
[
earth
.
position
[
0
]
+
px
,
0
,
earth
.
position
[
2
]
+
pz
]
moon
.
position
=
[
earth
.
position
[
0
]
+
px
,
0
,
earth
.
position
[
2
]
+
pz
]
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录