Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Python_超人
宇宙模拟器
提交
a6a11fbe
宇宙模拟器
项目概览
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看板
提交
a6a11fbe
编写于
7月 28, 2023
作者:
三月三net
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Python超人-宇宙模拟器
上级
23e36bc3
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
71 addition
and
0 deletion
+71
-0
sim_scenes/funny/black_holes_control_stars.py
sim_scenes/funny/black_holes_control_stars.py
+71
-0
未找到文件。
sim_scenes/funny/black_holes_control_stars.py
0 → 100644
浏览文件 @
a6a11fbe
# -*- coding:utf-8 -*-
# title :三体场景模拟02
# description :三体场景模拟(3个太阳、1个地球)
# author :Python超人
# date :2023-07-26
# link :https://gitcode.net/pythoncr/
# python_version :3.8
# ==============================================================================
from
bodies
import
Sun
,
Earth
from
common.consts
import
SECONDS_PER_DAY
,
SECONDS_PER_WEEK
,
SECONDS_PER_YEAR
,
AU
from
sim_scenes.func
import
mayavi_run
,
mpl_run
,
ursina_run
from
bodies
import
FixedStar
,
Body
class
BlackHole
(
Body
):
def
__init__
(
self
,
name
=
"黑洞"
,
mass
=
1.9891e35
,
init_position
=
[
0
,
0
,
0
],
init_velocity
=
[
0
,
0
,
0
],
color
=
(
0
,
0
,
0
),
texture
=
""
,
size_scale
=
1.0
,
distance_scale
=
1.0
,
rotation_speed
=
0.6130
,
ignore_mass
=
False
,
trail_color
=
None
,
show_name
=
False
):
params
=
{
"name"
:
name
,
"mass"
:
mass
,
"init_position"
:
init_position
,
"init_velocity"
:
init_velocity
,
"density"
:
1.408e20
,
"color"
:
color
,
"texture"
:
texture
,
"size_scale"
:
size_scale
*
10000
,
"distance_scale"
:
distance_scale
,
"rotation_speed"
:
rotation_speed
,
"ignore_mass"
:
ignore_mass
,
"trail_color"
:
trail_color
,
"show_name"
:
show_name
}
super
().
__init__
(
**
params
)
if
__name__
==
'__main__'
:
"""
注释: 3个太阳
可以修改影响效果的参数为:
1、三个方向的初始位置 init_position[x, y, z]
2、三个方向的初始速度 init_velocity[x, y, z]
3、天体质量 mass
"""
# 代码案例如下:
SIZE_SCALE
=
5e1
# 生成的太阳放大 50 倍
RUN_DIAMETER
=
1.392e6
# 真实太阳的直径
velocity_rate
=
22
bodies
=
[
Sun
(
name
=
"太阳1"
,
mass
=
1e30
,
color
=
(
111
,
140
,
255
),
rotation_speed
=
0.1
,
init_position
=
[
-
100
*
RUN_DIAMETER
,
0
,
0
],
init_velocity
=
[
0.347113
*
velocity_rate
,
0.532727
*
velocity_rate
,
0
],
size_scale
=
SIZE_SCALE
,
texture
=
"fixed_star.png"
),
BlackHole
(
init_position
=
[
-
100
*
RUN_DIAMETER
,
100
*
RUN_DIAMETER
,
0
],
size_scale
=
SIZE_SCALE
)
]
# TODO: 开启3D摄像机
from
simulators.ursina.entities.camera3d
import
Camera3d
# 3D摄像机初始化(两眼到鼻梁的距离为1000公里效果)
# Camera3d.init(eye_distance=5000000)
# 使用 ursina 查看的运行效果
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# position = 左-右+、上+下-、前+后-
ursina_run
(
bodies
,
3
,
position
=
(
1.5
*
AU
,
0
,
-
5
*
AU
),
show_trail
=
True
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录