Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Python_超人
宇宙模拟器
提交
91524f90
宇宙模拟器
项目概览
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看板
提交
91524f90
编写于
8月 02, 2023
作者:
三月三net
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Python超人-宇宙模拟器
上级
d2f6b61f
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
28 addition
and
15 deletion
+28
-15
sim_scenes/tri_bodies/water_drop_01.py
sim_scenes/tri_bodies/water_drop_01.py
+25
-14
simulators/ursina/entities/video_recorder.py
simulators/ursina/entities/video_recorder.py
+3
-1
未找到文件。
sim_scenes/tri_bodies/water_drop_01.py
浏览文件 @
91524f90
...
...
@@ -26,10 +26,10 @@ if __name__ == '__main__':
WATER_SPEED
=
400
# TODO: 可以抵消月球带动地球的力,保持地球在原地
# OFFSETTING = 0.01265
# sun = Sun(name="太阳", size_scale=6e1, init_position=[0, 0, -
AU]).set_ignore_gravity(True)
sun
=
Sun
(
name
=
"太阳"
,
size_scale
=
6e1
,
init_position
=
[
0
,
0
,
-
3
*
AU
]).
set_ignore_gravity
(
True
)
earth_size_scale
=
2.5e2
earth
=
Earth
(
init_position
=
[
0
,
-
2500000
,
0
],
texture
=
"earth
_hd
.jpg"
,
texture
=
"earth
-huge
.jpg"
,
# rotate_angle=0,
rotation_speed
=
0
,
init_velocity
=
[
OFFSETTING
,
0
,
0
],
size_scale
=
earth_size_scale
).
set_ignore_gravity
(
...
...
@@ -45,37 +45,44 @@ if __name__ == '__main__':
texture
=
"drops_bright.png"
,
# trail_color=[200, 200, 255],
init_velocity
=
[
-
WATER_SPEED
,
0
,
0
],
size_scale
=
4e4
).
set_ignore_gravity
(
True
)
size_scale
=
4e4
).
set_ignore_gravity
(
True
)
.
set_light_disable
(
True
)
# moon = Moon(init_position=[0, 0, 363104], # 距地距离约: 363104 至 405696 km
# init_velocity=[-1.03, 0, 0], size_scale=2e1) # 月球放大 10 倍,距离保持不变
# moon.set_light_disable(True)
d
=
100000
num_x
=
3
num_x
=
10
num_y
=
10
num_z
=
10
num_x
=
4
num_y
=
4
num_z
=
3
x_offset
=
-
(
num_x
-
1
)
/
2
*
d
num_z
=
4
x_offset
=
-
(
num_x
)
/
2
*
d
y_offset
=
-
(
num_y
)
/
2
*
(
d
/
2
)
z_offset
=
-
(
num_z
-
1
)
/
2
*
d
z_offset
=
-
(
num_z
)
/
2
*
d
ship_list
=
[]
for
x
in
range
(
num_x
):
for
y
in
range
(
num_y
):
for
z
in
range
(
num_z
):
core_valaga_clas
=
CoreValagaClas
(
size_scale
=
15
,
init_position
=
[
x_offset
+
x
*
d
,
y_offset
+
(
2
*
y
+
0.5
)
*
(
d
/
2
),
z_offset
+
z
*
d
-
20000
]).
set_ignore_gravity
(
True
)
init_position
=
[
x_offset
+
(
x
+
0.5
)
*
d
,
y_offset
+
(
2
*
y
-
0.5
)
*
(
d
/
2
),
z_offset
+
(
z
+
0.8
)
*
d
-
20000
]).
set_ignore_gravity
(
True
)
ship_list
.
append
(
core_valaga_clas
)
for
x
in
range
(
num_x
):
for
y
in
range
(
num_y
):
for
z
in
range
(
num_z
):
sci_fi_bomber
=
SciFiBomber
(
size_scale
=
3.5
,
init_position
=
[
x_offset
+
x
*
d
,
y_offset
+
(
2
*
y
-
0.5
)
*
(
d
/
2
),
z_offset
+
z
*
d
-
20000
]).
set_ignore_gravity
(
True
)
init_position
=
[
x_offset
+
(
x
+
0.5
)
*
d
,
y_offset
+
(
2
*
y
-
1.5
)
*
(
d
/
2
),
z_offset
+
(
z
+
0.8
)
*
d
-
20000
]).
set_ignore_gravity
(
True
)
ship_list
.
append
(
sci_fi_bomber
)
# earth.rotation_speed /= 6 # 地球的转速降低50倍
bodies
=
[
earth
,
clouds
,
water_drop
]
+
ship_list
bodies
=
[
sun
,
earth
,
clouds
,
water_drop
]
+
ship_list
WATER_RANGE
=
2e6
...
...
@@ -103,6 +110,9 @@ if __name__ == '__main__':
water_drop
.
planet
.
rotation_z
=
90
# water_drop.init_position = (0, 0, 0)
# water_drop.init_velocity = [0, 0, 0]
# 订阅事件后,上面2个函数功能才会起作用
# 运行前会触发 on_ready
...
...
@@ -116,9 +126,10 @@ if __name__ == '__main__':
ursina_run
(
bodies
,
SECONDS_PER_DAY
/
24
,
# SECONDS_PER_WEEK * 4,
position
=
(
0
,
0
,
-
220000
),
# position=(0, 0, -220000),
position
=
(
0
,
0
,
0
),
show_grid
=
False
,
cosmic_bg
=
""
,
#
cosmic_bg="",
# gravity_works=False,
# save_cube_map=True,
timer_enabled
=
True
,
...
...
simulators/ursina/entities/video_recorder.py
浏览文件 @
91524f90
...
...
@@ -12,6 +12,7 @@ class VideoRecorder(Entity):
app.run()
"""
def
__init__
(
self
,
temp_dir
=
"screenshot_tmp"
,
asset_folder
=
None
):
self
.
temp_dir
=
temp_dir
# self.save_as_dir = save_as_dir
...
...
@@ -39,7 +40,8 @@ class VideoRecorder(Entity):
if
self
.
t
>=
1
/
self
.
fps
:
base
.
saveCubeMap
(
namePrefix
=
f
'
\\
{
self
.
temp_dir
}
\\
cmap_'
+
str
(
self
.
i
).
zfill
(
self
.
sd
)
+
'_#.jpg'
,
size
=
2048
# size=8196 # 最大分辨率,用于图片
# size=4096 # 建议动态视频用这个
# namePrefix = 'cube_map_#.png'
)
self
.
t
=
0
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录