Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Python_超人
宇宙模拟器
提交
9baff751
宇宙模拟器
项目概览
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看板
提交
9baff751
编写于
10月 25, 2023
作者:
三月三net
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Python超人-宇宙模拟器
上级
21977b99
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
39 addition
and
31 deletion
+39
-31
objs/__init__.py
objs/__init__.py
+2
-0
objs/halley_comet.py
objs/halley_comet.py
+13
-12
sim_scenes/solar_system/halley_comet_sim.py
sim_scenes/solar_system/halley_comet_sim.py
+24
-19
未找到文件。
objs/__init__.py
浏览文件 @
9baff751
...
@@ -12,3 +12,5 @@ from objs.core_valaga_clas import CoreValagaClas
...
@@ -12,3 +12,5 @@ from objs.core_valaga_clas import CoreValagaClas
from
objs.sci_fi_bomber
import
SciFiBomber
from
objs.sci_fi_bomber
import
SciFiBomber
from
objs.water_drop
import
WaterDrop
from
objs.water_drop
import
WaterDrop
from
objs.sci_fi_gunship
import
ScifiGunship
from
objs.sci_fi_gunship
import
ScifiGunship
from
objs.halley_comet
import
HalleComet
objs/halley_comet.py
浏览文件 @
9baff751
...
@@ -6,22 +6,28 @@
...
@@ -6,22 +6,28 @@
# link :https://gitcode.net/pythoncr/
# link :https://gitcode.net/pythoncr/
# python_version :3.8
# python_version :3.8
# ==============================================================================
# ==============================================================================
from
objs
.obj
import
Obj
from
objs
import
RockSnow
class
HalleComet
(
Obj
):
class
HalleComet
(
RockSnow
):
"""
"""
哈雷彗星
哈雷彗星
根据最新信息,哈雷彗星的平均运行速度约为每小时 70,000 英里或每小时 126,000 公里 。
该速度表示彗星穿过太阳系的速度。 值得注意的是,截至 2023 年,所提供的信息都是准确的。
质量: 10^15kg
远日点: 35.1 AU(2023年12月9日)
近日点: 0.586 AU 上次通过近日点:1986年2月9日 下次通过近日点:2061年7月28日
平均密度: 0.6(估计的范围在0.2至1.5g/cm)
来源:https://www.cgmodel.com/model/500318.html
来源:https://www.cgmodel.com/model/500318.html
"""
"""
def
__init__
(
self
,
name
=
"哈雷彗星"
,
mass
=
5.97237e24
,
def
__init__
(
self
,
name
=
"哈雷彗星"
,
mass
=
10e15
,
init_position
=
[
0
,
0
,
0
],
init_position
=
[
0
,
0
,
0
],
init_velocity
=
[
0
,
0
,
0
],
init_velocity
=
[
0
,
0
,
0
],
texture
=
"drops.png"
,
size_scale
=
1.0
,
distance_scale
=
1.0
,
size_scale
=
1.0
,
distance_scale
=
1.0
,
ignore_mass
=
False
,
density
=
1e3
,
color
=
(
7
,
0
,
162
),
ignore_mass
=
False
,
density
=
1e3
,
color
=
(
7
,
0
,
162
),
trail_color
=
None
,
show_name
=
False
,
trail_color
=
None
,
show_name
=
False
,
model
=
"drops.obj"
,
rotation
=
(
0
,
0
,
0
),
rotation
=
(
0
,
0
,
0
),
parent
=
None
,
gravity_only_for
=
[]):
parent
=
None
,
gravity_only_for
=
[]):
params
=
{
params
=
{
"name"
:
name
,
"name"
:
name
,
...
@@ -30,7 +36,6 @@ class HalleComet(Obj):
...
@@ -30,7 +36,6 @@ class HalleComet(Obj):
"init_velocity"
:
init_velocity
,
"init_velocity"
:
init_velocity
,
"density"
:
density
,
"density"
:
density
,
"color"
:
color
,
"color"
:
color
,
"texture"
:
texture
,
"size_scale"
:
size_scale
,
"size_scale"
:
size_scale
,
"distance_scale"
:
distance_scale
,
"distance_scale"
:
distance_scale
,
"ignore_mass"
:
ignore_mass
,
"ignore_mass"
:
ignore_mass
,
...
@@ -39,7 +44,6 @@ class HalleComet(Obj):
...
@@ -39,7 +44,6 @@ class HalleComet(Obj):
"parent"
:
parent
,
"parent"
:
parent
,
"rotation"
:
rotation
,
"rotation"
:
rotation
,
"gravity_only_for"
:
gravity_only_for
,
"gravity_only_for"
:
gravity_only_for
,
"model"
:
model
}
}
super
().
__init__
(
**
params
)
super
().
__init__
(
**
params
)
...
@@ -92,11 +96,7 @@ void main() {
...
@@ -92,11 +96,7 @@ void main() {
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
shader
=
matcap_shader
shader
=
matcap_shader
halle_comet
=
HalleComet
(
halle_comet
=
HalleComet
()
# texture="drops_normal.png"
# texture="drops_uvw.png"
texture
=
"drops.png"
)
halle_comet
.
init_velocity
=
[
0
,
0
,
-
10
]
halle_comet
.
init_velocity
=
[
0
,
0
,
-
10
]
print
(
halle_comet
)
print
(
halle_comet
)
...
@@ -107,6 +107,7 @@ if __name__ == '__main__':
...
@@ -107,6 +107,7 @@ if __name__ == '__main__':
halle_comet
.
planet
.
init_scale
=
halle_comet
.
planet
.
scale_x
*
2
halle_comet
.
planet
.
init_scale
=
halle_comet
.
planet
.
scale_x
*
2
# halle_comet.planet.init_update = halle_comet.planet.update
# halle_comet.planet.init_update = halle_comet.planet.update
def
on_timer_changed
(
time_data
):
def
on_timer_changed
(
time_data
):
# halle_comet.planet.init_update = body.planet.update
# halle_comet.planet.init_update = body.planet.update
halle_comet
.
planet
.
scale_z
=
halle_comet
.
planet
.
init_scale
halle_comet
.
planet
.
scale_z
=
halle_comet
.
planet
.
init_scale
...
...
sim_scenes/solar_system/halley_comet_sim.py
浏览文件 @
9baff751
...
@@ -12,8 +12,8 @@ from ursina import camera, application
...
@@ -12,8 +12,8 @@ from ursina import camera, application
from
bodies
import
Sun
,
Mercury
,
Venus
,
Earth
,
Mars
,
Jupiter
,
Saturn
,
Uranus
,
Neptune
,
Pluto
from
bodies
import
Sun
,
Mercury
,
Venus
,
Earth
,
Mars
,
Jupiter
,
Saturn
,
Uranus
,
Neptune
,
Pluto
from
common.celestial_data_service
import
get_init_pos_vels
,
init_bodies_pos_vels
from
common.celestial_data_service
import
get_init_pos_vels
,
init_bodies_pos_vels
from
common.consts
import
SECONDS_PER_
WEEK
,
AU
from
common.consts
import
SECONDS_PER_
YEAR
,
AU
from
objs
import
QuadObj
,
CircleObj
,
Obj
from
objs
import
HalleComet
,
Obj
from
sim_scenes.func
import
camera_look_at
,
two_bodies_colliding
from
sim_scenes.func
import
camera_look_at
,
two_bodies_colliding
from
sim_scenes.func
import
ursina_run
,
create_sphere_sky
from
sim_scenes.func
import
ursina_run
,
create_sphere_sky
from
simulators.ursina.ursina_event
import
UrsinaEvent
from
simulators.ursina.ursina_event
import
UrsinaEvent
...
@@ -32,15 +32,15 @@ class HalleyCometSim:
...
@@ -32,15 +32,15 @@ class HalleyCometSim:
self
.
sun
=
Sun
(
size_scale
=
0.8e2
)
self
.
sun
=
Sun
(
size_scale
=
0.8e2
)
self
.
bodies
=
[
self
.
bodies
=
[
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
,
rotate_angle
=
0
),
# 地球放大 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 倍
Jupiter
(
size_scale
=
0.68e3
,
distance_scale
=
0.72
),
# 木星放大 680 倍,距离缩小到真实距离的 0.72
Jupiter
(
size_scale
=
1.68e3
,
distance_scale
=
1
),
# 木星放大 680 倍,距离缩小到真实距离的 0.72
Saturn
(
size_scale
=
0.68e3
,
distance_scale
=
0.52
),
# 土星放大 680 倍,距离缩小到真实距离的 0.52
Saturn
(
size_scale
=
1.68e3
,
distance_scale
=
1
),
# 土星放大 680 倍,距离缩小到真实距离的 0.52
Uranus
(
size_scale
=
1.5e3
,
distance_scale
=
0.36
),
# 天王星放大 1500 倍,距离缩小到真实距离的 0.36
Uranus
(
size_scale
=
3.5e3
,
distance_scale
=
1
),
# 天王星放大 1500 倍,距离缩小到真实距离的 0.36
Neptune
(
size_scale
=
1.5e3
,
distance_scale
=
0.27
),
# 海王星放大 1500 倍,距离缩小到真实距离的 0.27
Neptune
(
size_scale
=
3.5e3
,
distance_scale
=
1
),
# 海王星放大 1500 倍,距离缩小到真实距离的 0.27
Pluto
(
size_scale
=
1
0e3
,
distance_scale
=
0.23
),
# 冥王星放大 10000 倍,距离缩小到真实距离的 0.23(从太阳系的行星中排除)
Pluto
(
size_scale
=
1
.5e5
,
distance_scale
=
1
),
# 冥王星放大 10000 倍,距离缩小到真实距离的 0.23(从太阳系的行星中排除)
]
]
# endregion
# endregion
...
@@ -51,10 +51,14 @@ class HalleyCometSim:
...
@@ -51,10 +51,14 @@ class HalleyCometSim:
创建哈雷彗星
创建哈雷彗星
@return:
@return:
"""
"""
self
.
halley_comet
=
QuadObj
(
texture
=
'two_way_foil.png'
,
# 哈雷彗星的平均运行速度约为每小时 70,000 英里或每小时 126,000 公里 。(35公里/秒)
# size_scale=4e7,
# 每76.1年环绕太阳一周的周期彗星
size_scale
=
1e7
,
# 3.335, 0, 10.7 73
init_velocity
=
[
20
,
-
6
,
150
],
# 3.33, 0, 10.7 73
self
.
halley_comet
=
HalleComet
(
# size_scale=4e7,
size_scale
=
1e8
,
init_velocity
=
[
3.33
,
0
,
10.65
],
# [3.33, 0, 10.6] < ? <[3.34, 0, 10.7]
init_position
=
[
0
,
0.5
*
AU
,
-
10
*
AU
])
\
init_position
=
[
0
,
0.5
*
AU
,
-
10
*
AU
])
\
.
set_light_disable
(
True
)
.
set_light_disable
(
True
)
...
@@ -89,7 +93,7 @@ class HalleyCometSim:
...
@@ -89,7 +93,7 @@ class HalleyCometSim:
self
.
halley_comet
.
planet
.
rotation_x
+=
0.1
self
.
halley_comet
.
planet
.
rotation_x
+=
0.1
self
.
halley_comet
.
planet
.
rotation_y
+=
1
self
.
halley_comet
.
planet
.
rotation_y
+=
1
# 摄像机始终看向二向箔
# 摄像机始终看向二向箔
camera_look_at
(
self
.
halley_comet
)
#
camera_look_at(self.halley_comet)
...
@@ -108,12 +112,13 @@ if __name__ == '__main__':
...
@@ -108,12 +112,13 @@ if __name__ == '__main__':
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# position = 左-右+、上+下-、前+后-
# position = 左-右+、上+下-、前+后-
ursina_run
(
sim
.
bodies
,
ursina_run
(
sim
.
bodies
,
SECONDS_PER_
WEEK
,
SECONDS_PER_
YEAR
,
# position=(0, 2 * AU, -11 * AU),
# position=(0, 2 * AU, -11 * AU),
position
=
(
0
,
0.5
*
AU
,
-
5
*
AU
),
position
=
(
0
,
0.5
*
AU
,
-
5
*
AU
),
cosmic_bg
=
''
,
cosmic_bg
=
''
,
bg_music
=
'sounds/no_glory.mp3'
,
show_trail
=
True
,
# bg_music='sounds/no_glory.mp3',
show_camera_info
=
False
,
show_camera_info
=
False
,
show_control_info
=
False
,
show_control_info
=
False
,
timer_enabled
=
True
,
show_timer
=
True
,
show_grid
=
False
)
show_grid
=
False
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录