Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Python_超人
宇宙模拟器
提交
e77a06ec
宇宙模拟器
项目概览
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看板
提交
e77a06ec
编写于
10月 21, 2023
作者:
三月三net
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Python超人-宇宙模拟器(代码备份,后面进行代码的清理)
上级
519cec69
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
20 addition
and
11 deletion
+20
-11
sim_scenes/tri_bodies/two_way_foil.py
sim_scenes/tri_bodies/two_way_foil.py
+20
-11
未找到文件。
sim_scenes/tri_bodies/two_way_foil.py
浏览文件 @
e77a06ec
...
@@ -82,13 +82,13 @@ class TwoWayFoilSim:
...
@@ -82,13 +82,13 @@ class TwoWayFoilSim:
self
.
sun
,
# 太阳放大 80 倍
self
.
sun
,
# 太阳放大 80 倍
Mercury
(
size_scale
=
4e3
,
distance_scale
=
1.3
),
# 水星放大 4000 倍,距离放大 1.3 倍
Mercury
(
size_scale
=
4e3
,
distance_scale
=
1.3
),
# 水星放大 4000 倍,距离放大 1.3 倍
Venus
(
size_scale
=
4e3
,
distance_scale
=
1.3
),
# 金星放大 4000 倍,距离放大 1.3 倍
Venus
(
size_scale
=
4e3
,
distance_scale
=
1.3
),
# 金星放大 4000 倍,距离放大 1.3 倍
Earth
(
size_scale
=
4e3
,
distance_scale
=
1.3
),
# 地球放大 4000 倍,距离放大 1.3 倍
Earth
(
size_scale
=
4e3
,
distance_scale
=
1.3
,
rotate_angle
=
0
),
# 地球放大 4000 倍,距离放大 1.3 倍
Mars
(
size_scale
=
4e3
,
distance_scale
=
1.2
),
# 火星放大 4000 倍,距离放大 1.2 倍
Mars
(
size_scale
=
4e3
,
distance_scale
=
1.2
),
# 火星放大 4000 倍,距离放大 1.2 倍
# Asteroids(size_scale=1e2, parent=self.sun), # 小行星模拟(仅 ursina 模拟器支持)
# Asteroids(size_scale=1e2, parent=self.sun), # 小行星模拟(仅 ursina 模拟器支持)
Jupiter
(
size_scale
=
0.68e3
,
distance_scale
=
0.72
),
# 木星放大 680 倍,距离缩小到真实距离的 0.72
Jupiter
(
size_scale
=
0.68e3
,
distance_scale
=
0.72
),
# 木星放大 680 倍,距离缩小到真实距离的 0.72
Saturn
(
size_scale
=
0.68e3
,
distance_scale
=
0.52
),
# 土星放大 680 倍,距离缩小到真实距离的 0.52
Saturn
(
size_scale
=
0.68e3
,
distance_scale
=
0.52
),
# 土星放大 680 倍,距离缩小到真实距离的 0.52
Uranus
(
size_scale
=
0.8e3
,
distance_scale
=
0.36
),
# 天王星放大 8
00 倍,距离缩小到真实距离的 0.36
Uranus
(
size_scale
=
1.5e3
,
distance_scale
=
0.36
),
# 天王星放大 15
00 倍,距离缩小到真实距离的 0.36
Neptune
(
size_scale
=
1
e3
,
distance_scale
=
0.27
),
# 海王星放大 10
00 倍,距离缩小到真实距离的 0.27
Neptune
(
size_scale
=
1
.5e3
,
distance_scale
=
0.27
),
# 海王星放大 15
00 倍,距离缩小到真实距离的 0.27
Pluto
(
size_scale
=
10e3
,
distance_scale
=
0.23
),
# 冥王星放大 10000 倍,距离缩小到真实距离的 0.23(从太阳系的行星中排除)
Pluto
(
size_scale
=
10e3
,
distance_scale
=
0.23
),
# 冥王星放大 10000 倍,距离缩小到真实距离的 0.23(从太阳系的行星中排除)
]
]
# endregion
# endregion
...
@@ -169,14 +169,24 @@ class TwoWayFoilSim:
...
@@ -169,14 +169,24 @@ class TwoWayFoilSim:
def
flatten_animation
(
self
,
body
,
flatten_body
):
def
flatten_animation
(
self
,
body
,
flatten_body
):
def
flatten_update
(
planet
,
flatten_planet
):
def
flatten_update
(
planet
,
flatten_planet
):
def
warp
():
def
warp
():
planet
.
scale_y
/=
1.05
planet
.
init_update
()
# time.sleep(0.2)
# time.sleep(0.2)
if
planet
.
scale_y
<
10
:
if
planet
.
scale_y
>
planet
.
init_scale_y
/
20
:
planet
.
enabled
=
False
planet
.
scale_y_v
/=
1.01
flatten_planet
.
enabled
=
True
# planet.enabled = False
# flatten_planet.enabled = True
# planet.update = planet.init_update
# elif planet.scale_y < planet.init_scale_y / 1.01:
# planet.set_light_off(True)
planet
.
set_light_off
(
True
)
planet
.
scale_y
=
planet
.
scale_y_v
return
warp
return
warp
body
.
planet
.
rotation_speed
/=
20
body
.
planet
.
scale_y_v
=
body
.
planet
.
scale_y
body
.
planet
.
init_scale_y
=
body
.
planet
.
scale_y
body
.
planet
.
init_update
=
body
.
planet
.
update
body
.
planet
.
update
=
flatten_update
(
body
.
planet
,
flatten_body
.
planet
)
body
.
planet
.
update
=
flatten_update
(
body
.
planet
,
flatten_body
.
planet
)
# for i in range(10):
# for i in range(10):
...
@@ -236,13 +246,12 @@ class TwoWayFoilSim:
...
@@ -236,13 +246,12 @@ class TwoWayFoilSim:
two_way_delay_times
=
[
0.5
,
# 太阳
two_way_delay_times
=
[
0.5
,
# 太阳
0.5
,
0.8
,
1.0
,
# 水星 金星 地球
0.5
,
0.8
,
1.0
,
# 水星 金星 地球
1.2
,
2.0
,
3.0
,
# 火星 木星 土星
1.2
,
2.0
,
3.0
,
# 火星 木星 土星
4.0
,
5.0
,
6
.5
]
# 天王星 海王星 冥王星
4.0
,
4.5
,
5
.5
]
# 天王星 海王星 冥王星
for
idx
,
b
in
enumerate
(
self
.
three_dim_bodies
):
for
idx
,
b
in
enumerate
(
self
.
three_dim_bodies
):
if
hasattr
(
b
,
"two_way_time"
):
if
hasattr
(
b
,
"two_way_time"
):
if
b
.
two_way_time
is
not
None
:
if
b
.
two_way_time
is
not
None
:
if
time
.
time
()
-
b
.
two_way_time
>
two_way_delay_times
[
idx
]:
if
time
.
time
()
-
b
.
two_way_time
>
two_way_delay_times
[
idx
]:
t
=
threading
.
Thread
(
target
=
self
.
flatten_animation
,
args
=
[
b
,
b
.
two_dim
])
self
.
flatten_animation
(
b
,
b
.
two_dim
)
t
.
start
()
# b.planet.enabled = False
# b.planet.enabled = False
# b.two_dim.planet.enabled = True
# b.two_dim.planet.enabled = True
b
.
two_way_time
=
None
b
.
two_way_time
=
None
...
@@ -257,7 +266,7 @@ class TwoWayFoilSim:
...
@@ -257,7 +266,7 @@ class TwoWayFoilSim:
def
on_timer_changed
(
self
,
time_data
):
def
on_timer_changed
(
self
,
time_data
):
self
.
two_way_foil
.
planet
.
rotation_x
+=
0.1
self
.
two_way_foil
.
planet
.
rotation_x
+=
0.1
self
.
two_way_foil
.
planet
.
rotation_y
+=
0.8
self
.
two_way_foil
.
planet
.
rotation_y
+=
1
# self.two_way_foil.planet.rotation_z += 10
# self.two_way_foil.planet.rotation_z += 10
camera_look_at
(
self
.
two_way_foil
)
camera_look_at
(
self
.
two_way_foil
)
self
.
current_stage
()
self
.
current_stage
()
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录