Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Python_超人
宇宙模拟器
提交
cf06389d
宇宙模拟器
项目概览
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看板
提交
cf06389d
编写于
6月 24, 2023
作者:
三月三net
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Python超人-宇宙模拟器
上级
464d2c88
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
35 addition
and
8 deletion
+35
-8
sim_scenes/fiction/earth_orbit_stopped.py
sim_scenes/fiction/earth_orbit_stopped.py
+35
-8
未找到文件。
sim_scenes/fiction/earth_orbit_stopped.py
浏览文件 @
cf06389d
...
@@ -33,7 +33,7 @@ class EarthOrbitStoppedSim:
...
@@ -33,7 +33,7 @@ class EarthOrbitStoppedSim:
def
__init__
(
self
):
def
__init__
(
self
):
self
.
sun
=
Sun
(
init_position
=
[
0
,
0
,
0
],
size_scale
=
1
)
self
.
sun
=
Sun
(
init_position
=
[
0
,
0
,
0
],
size_scale
=
1
)
self
.
earth
=
Earth
(
init_position
=
[
0
,
0
,
-
AU
],
self
.
earth
=
Earth
(
init_position
=
[
0
,
0
,
-
AU
],
texture
=
"earth2.jpg"
,
init_velocity
=
[
0
,
self
.
EARTH_INIT_VELOCITY
,
0
],
init_velocity
=
[
0
,
self
.
EARTH_INIT_VELOCITY
,
0
],
size_scale
=
1
).
set_light_disable
(
True
)
size_scale
=
1
).
set_light_disable
(
True
)
...
@@ -43,7 +43,7 @@ class EarthOrbitStoppedSim:
...
@@ -43,7 +43,7 @@ class EarthOrbitStoppedSim:
self
.
mercury
=
Mercury
(
name
=
"水星"
,
self
.
mercury
=
Mercury
(
name
=
"水星"
,
# init_position=[0, 0, -self.mercury_radius], # 和地球插肩而过的位置,用于找到下面的速度
# init_position=[0, 0, -self.mercury_radius], # 和地球插肩而过的位置,用于找到下面的速度
init_position
=
[
49311300.
,
0
,
28075956.
],
# 设置的初始位置和初始速度使得与地球插肩而过
init_position
=
[
49311300.
,
0
,
28075956.
],
# 设置的初始位置和初始速度使得与地球插肩而过
init_velocity
=
[
-
24.
307
,
0
,
41.9264
],
init_velocity
=
[
-
24.
28
,
0
,
41.91
],
size_scale
=
1
).
set_light_disable
(
True
)
size_scale
=
1
).
set_light_disable
(
True
)
# 金星: [-98608848. 0. -42909512.] [-13.869937 0. 32.247845]
# 金星: [-98608848. 0. -42909512.] [-13.869937 0. 32.247845]
self
.
venus
=
Venus
(
name
=
"金星"
,
self
.
venus
=
Venus
(
name
=
"金星"
,
...
@@ -106,16 +106,43 @@ class EarthOrbitStoppedSim:
...
@@ -106,16 +106,43 @@ class EarthOrbitStoppedSim:
application
.
pause
()
application
.
pause
()
return
return
if
time_data
.
days
in
[
40
,
41
]:
slow_speed_ranges
=
[
self
.
venus_orbit_line
.
enabled
=
True
(
41.2
,
41.35
,
0.01
),
# (40, 41.2, 0.1), (41.2, 42.2, 0.1), (39, 40.2, 0.5), (42, 43, 0.5),
else
:
(
56.85
,
57.05
,
0.01
),
# (55, 56.9, 0.1), (57, 58.05, 0.1), (54, 55.2, 0.5), (58.2, 59, 0.5),
self
.
venus_orbit_line
.
enabled
=
False
(
64.3
,
67
,
0.01
),
# (63, 64.4, 0.1), (64, 64.5, 0.5),
]
venus_range
=
slow_speed_ranges
[
0
]
mercury_range
=
slow_speed_ranges
[
1
]
if
time_data
.
days
in
[
56
,
57
]:
if
mercury_range
[
0
]
-
2
<
time_data
.
total_days
<
mercury_range
[
1
]:
self
.
mercury_orbit_line
.
enabled
=
True
self
.
mercury_orbit_line
.
enabled
=
True
else
:
else
:
self
.
mercury_orbit_line
.
enabled
=
False
self
.
mercury_orbit_line
.
enabled
=
False
if
venus_range
[
0
]
-
2
<
time_data
.
total_days
<
venus_range
[
1
]:
self
.
venus_orbit_line
.
enabled
=
True
else
:
self
.
venus_orbit_line
.
enabled
=
False
run_speed_factor
=
2
for
r
in
slow_speed_ranges
:
if
r
[
0
]
<
time_data
.
total_days
<
r
[
1
]:
run_speed_factor
=
r
[
2
]
elif
(
r
[
0
]
-
2
)
<
time_data
.
total_days
<
(
r
[
1
]
+
5
):
if
time_data
.
total_days
<=
r
[
0
]:
run_speed_factor
=
UrsinaConfig
.
run_speed_factor
-
0.01
if
run_speed_factor
<
0.01
:
run_speed_factor
=
0.01
elif
time_data
.
total_days
>=
r
[
1
]:
run_speed_factor
=
UrsinaConfig
.
run_speed_factor
+
0.05
if
run_speed_factor
>
2
:
run_speed_factor
=
2
break
UrsinaConfig
.
run_speed_factor
=
run_speed_factor
if
abs
(
self
.
earth
.
position
[
2
])
<
0.721
*
AU
and
not
self
.
arrived_venus_orbit_line
:
if
abs
(
self
.
earth
.
position
[
2
])
<
0.721
*
AU
and
not
self
.
arrived_venus_orbit_line
:
self
.
arrived_venus_orbit_line
=
True
self
.
arrived_venus_orbit_line
=
True
msg
=
"地球在[%s]穿过金星轨道"
%
time_data
.
time_text
msg
=
"地球在[%s]穿过金星轨道"
%
time_data
.
time_text
...
@@ -185,6 +212,6 @@ if __name__ == '__main__':
...
@@ -185,6 +212,6 @@ if __name__ == '__main__':
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# position = 左-右+、上+下-、前+后-
# position = 左-右+、上+下-、前+后-
# position=(0, 0, 0) 的位置是站在地球视角,可以观看月相变化的过程
# position=(0, 0, 0) 的位置是站在地球视角,可以观看月相变化的过程
ursina_run
(
sim
.
bodies
,
SECONDS_PER_DAY
,
position
=
(
0
,
0.0001
*
AU
,
-
0.
2
*
AU
),
ursina_run
(
sim
.
bodies
,
SECONDS_PER_DAY
,
position
=
(
0
,
0.0001
*
AU
,
-
0.
8
*
AU
),
show_timer
=
True
,
show_timer
=
True
,
show_grid
=
True
)
show_grid
=
True
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录