Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Python_超人
宇宙模拟器
提交
69a1da53
宇宙模拟器
项目概览
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看板
提交
69a1da53
编写于
8月 02, 2023
作者:
三月三net
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Python超人-宇宙模拟器
上级
a3c65927
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
96 addition
and
0 deletion
+96
-0
objs/__init__.py
objs/__init__.py
+1
-0
sim_scenes/tri_bodies/water_drop_01.py
sim_scenes/tri_bodies/water_drop_01.py
+95
-0
未找到文件。
objs/__init__.py
浏览文件 @
69a1da53
...
...
@@ -8,3 +8,4 @@ from objs.rock_snow import RockSnow
from
objs.rock
import
Rock
,
create_rock
from
objs.core_valaga_clas
import
CoreValagaClas
from
objs.sci_fi_bomber
import
SciFiBomber
from
objs.water_drop
import
WaterDrop
sim_scenes/tri_bodies/water_drop_01.py
0 → 100644
浏览文件 @
69a1da53
# -*- coding:utf-8 -*-
# title :地月场景模拟
# description :地月场景模拟(月球始终一面朝向地球、月球对地球的扰动)
# author :Python超人
# date :2023-05-01
# link :https://gitcode.net/pythoncr/
# python_version :3.8
# ==============================================================================
from
bodies
import
Sun
,
Earth
,
Moon
from
objs
import
CoreValagaClas
,
SciFiBomber
,
WaterDrop
from
common.consts
import
AU
,
SECONDS_PER_DAY
,
SECONDS_PER_WEEK
,
SECONDS_PER_MONTH
from
sim_scenes.func
import
ursina_run
,
camera_look_at
from
simulators.ursina.entities.body_timer
import
TimeData
from
simulators.ursina.entities.entity_utils
import
create_directional_light
from
simulators.ursina.ursina_config
import
UrsinaConfig
from
simulators.ursina.ursina_event
import
UrsinaEvent
if
__name__
==
'__main__'
:
"""
月球始终一面朝向地球
月球对地球的扰动
"""
OFFSETTING
=
0
# TODO: 可以抵消月球带动地球的力,保持地球在原地
# OFFSETTING = 0.01265
# sun = Sun(name="太阳", size_scale=6e1, init_position=[0, 0, -AU]).set_ignore_gravity(True)
earth
=
Earth
(
init_position
=
[
0
,
-
200000
,
-
50000
],
texture
=
"earth_hd.jpg"
,
rotate_angle
=-
23.44
,
init_velocity
=
[
OFFSETTING
,
0
,
0
],
size_scale
=
2.5e1
)
# 地球放大 5 倍,距离保持不变
water_drop
=
WaterDrop
(
init_position
=
[
0
,
0
,
AU
/
40
],
init_velocity
=
[
-
1
,
0
,
0
],
size_scale
=
5e4
)
# 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
x_offset
=
-
2
*
d
ship_list
=
[]
for
x
in
range
(
5
):
for
z
in
range
(
5
):
core_valaga_clas
=
CoreValagaClas
(
size_scale
=
15
,
init_position
=
[
x_offset
+
x
*
d
,
-
30000
,
z
*
d
-
20000
]).
set_ignore_gravity
(
True
)
ship_list
.
append
(
core_valaga_clas
)
for
x
in
range
(
5
):
for
z
in
range
(
5
):
sci_fi_bomber
=
SciFiBomber
(
size_scale
=
3.5
,
init_position
=
[
x_offset
+
x
*
d
,
30000
,
z
*
d
-
20000
]).
set_ignore_gravity
(
True
)
ship_list
.
append
(
sci_fi_bomber
)
earth
.
rotation_speed
/=
6
# 地球的转速降低50倍
bodies
=
[
earth
,
water_drop
]
+
ship_list
def
on_timer_changed
(
time_data
:
TimeData
):
if
time_data
.
total_days
>
27.5
:
exit
(
0
)
def
on_ready
():
for
body
in
bodies
:
if
isinstance
(
body
,
CoreValagaClas
):
body
.
planet
.
rotation_x
=
0
# -10
elif
isinstance
(
body
,
SciFiBomber
):
body
.
planet
.
rotation_x
=
-
90
water_drop
.
planet
.
rotation_z
=
90
# 订阅事件后,上面2个函数功能才会起作用
# 运行前会触发 on_ready
UrsinaEvent
.
on_ready_subscription
(
on_ready
)
# 运行中,每时每刻都会触发 on_timer_changed
UrsinaEvent
.
on_timer_changed_subscription
(
on_timer_changed
)
# 使用 ursina 查看的运行效果
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# position = 左-右+、上+下-、前+后-
ursina_run
(
bodies
,
SECONDS_PER_DAY
/
24
,
# SECONDS_PER_WEEK * 4,
position
=
(
0
,
0
,
-
220000
),
show_grid
=
False
,
# cosmic_bg="",
# save_cube_map=True,
timer_enabled
=
True
,
show_camera_info
=
False
,
show_control_info
=
False
,
view_closely
=
True
# show_trail=True
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录