Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Python_超人
宇宙模拟器
提交
38029311
宇宙模拟器
项目概览
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看板
提交
38029311
编写于
4月 05, 2023
作者:
三月三net
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Python超人-宇宙模拟器
上级
c973384b
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
48 addition
and
49 deletion
+48
-49
sim_scenes/fiction/fixed_stars_1.py
sim_scenes/fiction/fixed_stars_1.py
+23
-20
sim_scenes/fiction/fixed_stars_2.py
sim_scenes/fiction/fixed_stars_2.py
+21
-22
sim_scenes/fiction/sun_dysen_sphere.py
sim_scenes/fiction/sun_dysen_sphere.py
+4
-7
未找到文件。
sim_scenes/fiction/fixed_stars_1.py
浏览文件 @
38029311
...
...
@@ -9,16 +9,16 @@
from
bodies
import
Sun
,
Earth
,
Sirius
,
Rigel
,
Bellatrix
,
Alcyone
,
Antares
,
Arcturus
,
Aldebaran
,
Betelgeuse
from
bodies
import
EtaCarinae
,
YCanumVenaticorum
,
VYCanisMajoris
,
UYScuti
,
CarinaeV382
,
Stephenson_2_18
from
common.consts
import
SECONDS_PER_WEEK
,
SECONDS_PER_MONTH
,
SECONDS_PER_YEAR
,
SECONDS_PER_DAY
from
sim_scenes.func
import
mayavi_run
,
mpl_run
,
ursina_run
from
sim_scenes.func
import
ursina_run
from
bodies.body
import
Body
,
AU
if
__name__
==
'__main__'
:
"""
恒星演示
"""
# 构建
两个天体对象(太阳、地球)
D
=
5e5
SIZE_SCALE
=
0.5
# 构建
恒星天体对象
D
=
5e5
# 基本距离单位:km(随意赋值)
SIZE_SCALE
=
0.5
# 所有天体尺寸缩放保持一致
bodies
=
[
Earth
(
size_scale
=
SIZE_SCALE
,
ignore_mass
=
True
),
Sun
(
size_scale
=
SIZE_SCALE
,
ignore_mass
=
True
),
# 太阳
...
...
@@ -38,21 +38,24 @@ if __name__ == '__main__':
Stephenson_2_18
(
size_scale
=
SIZE_SCALE
,
ignore_mass
=
True
)
# 史蒂文森2-18 质量倍数 40.0 半径倍数 2150
]
distance_sum
=
0
# 循环为每个恒星的初始位置进行赋值,方便演示
for
idx
,
body
in
enumerate
(
bodies
):
body
.
rotation_speed
/=
10
body
.
rotation_speed
/=
10
# 恒星的旋转速度减小10倍
if
body
.
is_fixed_star
:
body
.
light_on
=
False
# 关闭灯光效果
,只有太阳对地球有灯光效果
if
idx
==
0
:
body
.
light_on
=
False
# 关闭灯光效果
if
idx
==
0
:
# 这是地球
d
=
0
else
:
d
=
pow
((
body
.
raduis
+
bodies
[
idx
-
1
].
raduis
)
*
SIZE_SCALE
,
1.0
)
*
1.1
#
d = (body.diameter + bodies[idx - 1].diameter) * SIZE_SCALE * 1.1 + D
#
所有天体的初始速度为 0
body
.
init_velocity
=
[
0
,
0
,
0
]
# 所有天体的初始位置进行赋值
body
.
init_position
=
[
-
(
distance_sum
+
d
),
AU
,
body
.
raduis
*
SIZE_SCALE
]
distance_sum
+=
d
# 使用 ursina 查看的运行效果
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# position = 左-右+、上+下-、前+后-
ursina_run
(
bodies
,
SECONDS_PER_WEEK
,
position
=
(
0
,
AU
,
-
AU
/
500
),
# position = (左-右+、上+下-、前+后-)
ursina_run
(
bodies
,
SECONDS_PER_WEEK
,
position
=
(
0
,
AU
,
-
AU
/
500
),
show_name
=
True
,
bg_music
=
"sounds/universe_03.mp3"
)
sim_scenes/fiction/fixed_stars_2.py
浏览文件 @
38029311
...
...
@@ -9,16 +9,16 @@
from
bodies
import
Sun
,
Earth
,
Sirius
,
Rigel
,
Bellatrix
,
Alcyone
,
Antares
,
Arcturus
,
Aldebaran
,
Betelgeuse
from
bodies
import
EtaCarinae
,
YCanumVenaticorum
,
VYCanisMajoris
,
UYScuti
,
CarinaeV382
,
Stephenson_2_18
from
common.consts
import
SECONDS_PER_WEEK
,
SECONDS_PER_MONTH
,
SECONDS_PER_YEAR
,
SECONDS_PER_DAY
from
sim_scenes.func
import
mayavi_run
,
mpl_run
,
ursina_run
from
sim_scenes.func
import
ursina_run
from
bodies.body
import
Body
,
AU
if
__name__
==
'__main__'
:
"""
恒星演示
"""
# 构建
两个天体对象(太阳、地球)
D
=
5e5
SIZE_SCALE
=
0.5
# 构建
恒星天体对象
D
=
5e5
# 基本距离单位:km(随意赋值)
SIZE_SCALE
=
0.5
# 所有天体尺寸缩放保持一致
bodies
=
[
Earth
(
size_scale
=
SIZE_SCALE
,
ignore_mass
=
True
),
Sun
(
size_scale
=
SIZE_SCALE
,
ignore_mass
=
True
),
# 太阳
...
...
@@ -38,25 +38,24 @@ if __name__ == '__main__':
Stephenson_2_18
(
size_scale
=
SIZE_SCALE
,
ignore_mass
=
True
)
# 史蒂文森2-18 质量倍数 40.0 半径倍数 2150
]
distance_sum
=
0
# 循环为每个恒星的初始位置进行赋值,方便演示
for
idx
,
body
in
enumerate
(
bodies
):
body
.
rotation_speed
/=
10
body
.
rotation_speed
/=
10
# 恒星的旋转速度减小10倍
if
body
.
is_fixed_star
:
body
.
light_on
=
False
# 关闭灯光效果
,只有太阳对地球有灯光效果
if
idx
==
0
:
body
.
light_on
=
False
# 关闭灯光效果
if
idx
==
0
:
# 这是地球
d
=
0
else
:
# d = (body.raduis + bodies[idx - 1].raduis) * SIZE_SCALE
d
=
pow
((
body
.
raduis
+
bodies
[
idx
-
1
].
raduis
)
*
SIZE_SCALE
,
1.0
)
*
1.1
# d = body.raduis * SIZE_SCALE
# d = (body.diameter + bodies[idx - 1].diameter) * SIZE_SCALE * 1.1 + D
# 所有天体的初始速度为 0
body
.
init_velocity
=
[
0
,
0
,
0
]
# body.init_position = [-(distance_sum + d), AU, body.raduis * SIZE_SCALE]
# d = (distance_sum + d)
body
.
init_position
=
[
-
body
.
raduis
*
SIZE_SCALE
/
1.1
,
body
.
raduis
*
SIZE_SCALE
/
1.1
,
d
]
# 所有天体的初始位置进行赋值
body
.
init_position
=
[
-
body
.
raduis
*
SIZE_SCALE
/
1.1
,
body
.
raduis
*
SIZE_SCALE
/
1.1
,
d
]
distance_sum
+=
d
# 使用 ursina 查看的运行效果
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# position = 左-右+、上+下-、前+后-
ursina_run
(
bodies
,
SECONDS_PER_WEEK
,
position
=
(
0
,
100000
,
-
AU
/
500
),
# position = (左-右+、上+下-、前+后-)
ursina_run
(
bodies
,
SECONDS_PER_WEEK
,
position
=
(
0
,
100000
,
-
AU
/
500
),
show_name
=
True
,
bg_music
=
"sounds/universe_03.mp3"
)
sim_scenes/fiction/sun_dysen_sphere.py
浏览文件 @
38029311
# -*- coding:utf-8 -*-
# title :太阳、
地
球场景模拟
# description :太阳、
地
球场景模拟
# title :太阳、
戴森
球场景模拟
# description :太阳、
戴森
球场景模拟
# author :Python超人
# date :2023-02-11
# link :https://gitcode.net/pythoncr/
...
...
@@ -8,7 +8,7 @@
# ==============================================================================
from
bodies
import
Sun
,
DysenSphere
from
common.consts
import
SECONDS_PER_WEEK
,
SECONDS_PER_DAY
,
AU
from
sim_scenes.func
import
mayavi_run
,
ursina_run
from
sim_scenes.func
import
ursina_run
if
__name__
==
'__main__'
:
"""
...
...
@@ -21,11 +21,8 @@ if __name__ == '__main__':
DysenSphere
(
size_scale
=
5e1
,
parent
=
sun
),
# 戴森球放大 50 倍
]
# 使用 mayavi 查看的运行效果
# mayavi_run(bodies, SECONDS_PER_WEEK, view_azimuth=-45)
# 使用 ursina 查看的运行效果
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# position =
左-右+、上+下-、前+后-
# position =
(左-右+, 上+下-, 前+后-)
ursina_run
(
bodies
,
SECONDS_PER_WEEK
,
position
=
(
0
,
AU
/
4
,
-
3
*
AU
),
bg_music
=
"sounds/interstellar.mp3"
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录