Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Python_超人
宇宙模拟器
提交
f9e0a457
宇宙模拟器
项目概览
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看板
“4f522bade4c4a68a0a088b3d912d4b49cd72ba95”上不存在“sim_scenes/funny/utils/body_utils.py”
提交
f9e0a457
编写于
3月 26, 2024
作者:
三月三net
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Python超人-宇宙模拟器
上级
143fac2c
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
58 addition
and
0 deletion
+58
-0
sim_scenes/featured/tri_bodies_01.py
sim_scenes/featured/tri_bodies_01.py
+58
-0
未找到文件。
sim_scenes/featured/tri_bodies_01.py
0 → 100644
浏览文件 @
f9e0a457
# -*- coding:utf-8 -*-
# title :三体场景模拟01
# description :三体场景模拟(3个太阳、1个地球)
# author :Python超人
# date :2023-02-11
# link :https://gitcode.net/pythoncr/
# python_version :3.8
# ==============================================================================
from
bodies
import
Sun
,
Earth
from
common.consts
import
SECONDS_PER_WEEK
,
SECONDS_PER_YEAR
,
SECONDS_PER_MONTH
,
AU
from
sim_scenes.func
import
mayavi_run
,
ursina_run
,
create_sphere_sky
from
simulators.ursina.entities.body_timer
import
TimeData
from
simulators.ursina.ursina_event
import
UrsinaEvent
if
__name__
==
'__main__'
:
"""
3个太阳、1个地球(效果1)
可以修改影响效果的参数为:
1、三个方向的初始位置 init_position[x, y, z]
2、三个方向的初始速度 init_velocity[x, y, z]
3、天体质量 mass
"""
bodies
=
[
Sun
(
mass
=
1.5e30
,
init_position
=
[
849597870.700
,
0
,
0
],
init_velocity
=
[
0
,
7.0
,
0
],
size_scale
=
5e1
,
texture
=
"sun2.jpg"
),
# 太阳放大 50 倍
Sun
(
mass
=
2.1e30
,
init_position
=
[
0
,
0
,
0
],
init_velocity
=
[
0
,
-
8.0
,
0
],
size_scale
=
5e1
,
texture
=
"sun2.jpg"
),
# 太阳放大 50 倍
Sun
(
mass
=
2.5e30
,
init_position
=
[
0
,
-
849597870.700
,
0
],
init_velocity
=
[
18.0
,
0
,
0
],
size_scale
=
5e1
,
texture
=
"sun2.jpg"
),
# 太阳放大 50 倍
Earth
(
init_position
=
[
0
,
-
349597870.700
,
0
],
init_velocity
=
[
15.50
,
0
,
0
],
size_scale
=
4e3
,
distance_scale
=
1
),
# 地球放大 4000 倍,距离保持不变
]
# 使用 mayavi 查看的运行效果
# mayavi_run(bodies, SECONDS_PER_WEEK, view_azimuth=0)
def
on_ready
():
from
ursina
import
application
,
window
from
ursina
import
camera
sky
=
create_sphere_sky
(
scale
=
80000
,
texture
=
"bg_pan2.jpg"
)
camera
.
clip_plane_near
=
1
camera
.
clip_plane_far
=
sky
.
scale_x
*
1.5
def
on_timer_changed
(
time_data
:
TimeData
):
pass
# 运行前会触发 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_YEAR
,
cosmic_bg
=
''
,
show_grid
=
False
,
position
=
(
20
*
AU
,
0
,
-
40
*
AU
),
show_trail
=
True
,
timer_enabled
=
True
)
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录