Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Python_超人
宇宙模拟器
提交
d781ef11
宇宙模拟器
项目概览
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看板
提交
d781ef11
编写于
11月 27, 2023
作者:
三月三net
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Python超人-宇宙模拟器
上级
d312a416
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
12 addition
and
9 deletion
+12
-9
common/func.py
common/func.py
+2
-1
sim_scenes/fiction/earth_orbit_stopped.py
sim_scenes/fiction/earth_orbit_stopped.py
+10
-8
未找到文件。
common/func.py
浏览文件 @
d781ef11
...
@@ -146,7 +146,7 @@ def get_acceleration_info(acceleration):
...
@@ -146,7 +146,7 @@ def get_acceleration_info(acceleration):
acc_value
=
acceleration
acc_value
=
acceleration
acc_m
=
acc_value
*
1000
# 加速度的值(m/s²)
acc_m
=
acc_value
*
1000
# 加速度的值(m/s²)
# "\n\n当前速度:%s km/s" % "{:.3f}".format(velocity).rjust(6, "0")
if
acc_m
>=
0.01
:
if
acc_m
>=
0.01
:
acc_info
=
"%.2f m/s²"
%
(
acc_m
)
acc_info
=
"%.2f m/s²"
%
(
acc_m
)
elif
acc_m
>=
0.00001
:
elif
acc_m
>=
0.00001
:
...
@@ -155,6 +155,7 @@ def get_acceleration_info(acceleration):
...
@@ -155,6 +155,7 @@ def get_acceleration_info(acceleration):
# acc_info = "%.2fμm/s²" % (acc_m * 1000 * 1000)
# acc_info = "%.2fμm/s²" % (acc_m * 1000 * 1000)
else
:
else
:
acc_info
=
"0 m/s²"
acc_info
=
"0 m/s²"
return
acc_info
return
acc_info
...
...
sim_scenes/fiction/earth_orbit_stopped.py
浏览文件 @
d781ef11
...
@@ -92,8 +92,8 @@ class EarthOrbitStoppedSim(UniverseSimScenes):
...
@@ -92,8 +92,8 @@ class EarthOrbitStoppedSim(UniverseSimScenes):
replace
(
"${velocity}"
,
"0"
).
\
replace
(
"${velocity}"
,
"0"
).
\
replace
(
"${acceleration}"
,
"0"
)
replace
(
"${acceleration}"
,
"0"
)
sky
=
create_sphere_sky
(
scale
=
10000
)
s
elf
.
s
ky
=
create_sphere_sky
(
scale
=
10000
)
sky
.
rotation_y
=
180
s
elf
.
s
ky
.
rotation_y
=
180
# sky.rotation_x = 20
# sky.rotation_x = 20
# sky.rotation_z = -65
# sky.rotation_z = -65
...
@@ -103,9 +103,10 @@ class EarthOrbitStoppedSim(UniverseSimScenes):
...
@@ -103,9 +103,10 @@ class EarthOrbitStoppedSim(UniverseSimScenes):
self
.
venus_orbit_line
=
create_orbit_line
(
self
.
sun
,
self
.
venus
,
thickness
=
3
,
alpha
=
0.3
)
self
.
venus_orbit_line
=
create_orbit_line
(
self
.
sun
,
self
.
venus
,
thickness
=
3
,
alpha
=
0.3
)
def
show_message
(
self
,
msg
):
def
show_message
(
self
,
msg
):
ControlUI
.
current_ui
.
show_message
(
msg
,
font
=
"fonts/DroidSansFallback.ttf"
,
close_time
=
-
1
)
ControlUI
.
current_ui
.
show_message
(
msg
,
font
=
"fonts/DroidSansFallback.ttf"
,
close_time
=
6
)
def
on_timer_changed
(
self
,
time_data
:
TimeData
):
def
on_timer_changed
(
self
,
time_data
:
TimeData
):
self
.
sky
.
rotation_z
+=
0.005
# 摄像机时时刻刻看向地球
# 摄像机时时刻刻看向地球
camera_look_at
(
self
.
earth
,
rotation_z
=
0
)
camera_look_at
(
self
.
earth
,
rotation_z
=
0
)
# 获取地球当前的位置,让摄像机跟随地球
# 获取地球当前的位置,让摄像机跟随地球
...
@@ -121,13 +122,13 @@ class EarthOrbitStoppedSim(UniverseSimScenes):
...
@@ -121,13 +122,13 @@ class EarthOrbitStoppedSim(UniverseSimScenes):
distance
=
distance
-
self
.
sun
.
radius
-
self
.
earth
.
radius
distance
=
distance
-
self
.
sun
.
radius
-
self
.
earth
.
radius
if
distance
>
100000000
:
if
distance
>
100000000
:
distance_str
=
"%
s
亿"
%
round
(
distance
/
100000000.0
,
2
)
distance_str
=
"%
.2f
亿"
%
round
(
distance
/
100000000.0
,
2
)
# elif distance > 10000000:
# elif distance > 10000000:
# distance_str = "%s千万" % round(distance / 10000000.0, 2)
# distance_str = "%s千万" % round(distance / 10000000.0, 2)
# elif distance > 1000000:
# elif distance > 1000000:
# distance_str = "%s百万" % round(distance / 1000000.0, 2)
# distance_str = "%s百万" % round(distance / 1000000.0, 2)
elif
distance
>
10000
:
elif
distance
>
10000
:
distance_str
=
"%
s
万"
%
round
(
distance
/
10000.0
,
2
)
distance_str
=
"%
.2f
万"
%
round
(
distance
/
10000.0
,
2
)
else
:
else
:
distance_str
=
round
(
distance
,
2
)
distance_str
=
round
(
distance
,
2
)
...
@@ -138,7 +139,7 @@ class EarthOrbitStoppedSim(UniverseSimScenes):
...
@@ -138,7 +139,7 @@ class EarthOrbitStoppedSim(UniverseSimScenes):
self
.
text_panel
.
text
=
self
.
arrived_info
.
\
self
.
text_panel
.
text
=
self
.
arrived_info
.
\
replace
(
"${distance}"
,
"0 km"
).
\
replace
(
"${distance}"
,
"0 km"
).
\
replace
(
"${acceleration}"
,
"%s"
%
acceleration_info
).
\
replace
(
"${acceleration}"
,
"%s"
%
acceleration_info
).
\
replace
(
"${velocity}"
,
"%
s
km/s"
%
round
(
velocity
,
2
))
\
replace
(
"${velocity}"
,
"%
.2f
km/s"
%
round
(
velocity
,
2
))
\
+
"
\n\n
"
+
msg
+
"
\n\n
"
+
msg
self
.
show_message
(
msg
)
self
.
show_message
(
msg
)
application
.
pause
()
application
.
pause
()
...
@@ -216,7 +217,7 @@ class EarthOrbitStoppedSim(UniverseSimScenes):
...
@@ -216,7 +217,7 @@ class EarthOrbitStoppedSim(UniverseSimScenes):
self
.
text_panel
.
text
=
self
.
arrived_info
.
\
self
.
text_panel
.
text
=
self
.
arrived_info
.
\
replace
(
"${distance}"
,
"%s km"
%
distance_str
).
\
replace
(
"${distance}"
,
"%s km"
%
distance_str
).
\
replace
(
"${acceleration}"
,
"%s"
%
acceleration_info
).
\
replace
(
"${acceleration}"
,
"%s"
%
acceleration_info
).
\
replace
(
"${velocity}"
,
"%
s
km/s"
%
round
(
velocity
,
2
))
replace
(
"${velocity}"
,
"%
.2f
km/s"
%
round
(
velocity
,
2
))
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
...
@@ -248,7 +249,8 @@ if __name__ == '__main__':
...
@@ -248,7 +249,8 @@ if __name__ == '__main__':
# 订阅事件后,上面的函数功能才会起作用
# 订阅事件后,上面的函数功能才会起作用
# 运行中,每时每刻都会触发 on_timer_changed
# 运行中,每时每刻都会触发 on_timer_changed
UrsinaEvent
.
on_timer_changed_subscription
(
sim
.
on_timer_changed
)
UrsinaEvent
.
on_timer_changed_subscription
(
sim
.
on_timer_changed
)
UniverseSimScenes
.
set_window_size
((
1400
,
700
))
# UniverseSimScenes.set_window_size((1400, 700))
UniverseSimScenes
.
set_window_size
((
1920
,
1079
),
False
)
# 使用 ursina 查看的运行效果
# 使用 ursina 查看的运行效果
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# position = 左-右+、上+下-、前+后-
# position = 左-右+、上+下-、前+后-
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录