Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Python_超人
宇宙模拟器
提交
f679c8f7
宇宙模拟器
项目概览
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看板
提交
f679c8f7
编写于
3月 23, 2025
作者:
三月三net
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Python超人-宇宙模拟器
上级
2a1021d7
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
43 addition
and
0 deletion
+43
-0
sim_scenes/tri_bodies/two_bodies_02.py
sim_scenes/tri_bodies/two_bodies_02.py
+43
-0
未找到文件。
sim_scenes/tri_bodies/two_bodies_02.py
0 → 100644
浏览文件 @
f679c8f7
# -*- coding:utf-8 -*-
# title :两体场景模拟01
# description :两体场景模拟01(2个太阳、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_DAY
,
AU
,
G
from
sim_scenes.func
import
mayavi_run
,
mpl_run
,
ursina_run
import
math
if
__name__
==
'__main__'
:
r2
=
0.5
*
AU
r1
=
2
*
r2
# A、B 质量
mA
=
5.97237e24
mB
=
2
*
mA
pxA
,
pyA
=
0
,
r1
pxB
,
pyB
=
r1
+
r2
,
r1
# A、B 坐标
pA
,
pB
=
[
pxA
,
pyA
,
0
],
[
pxB
,
pyB
,
0
]
vxA
,
vxB
=
0
,
0
# 万有引力常量 *mA * mB/ math.pow(r1+r2,2) = mA*math.pow(vyA,2)/r1
vyA
=
-
math
.
sqrt
((
G
*
mA
*
mB
)
/
math
.
pow
(
r1
*
1000
+
r2
*
1000
,
2
)
*
r1
*
1000
/
mA
)
# 万有引力常量 *mA * mB/ math.pow(r1+r2,2) = mB*math.pow(vyB,2)/r2
vyB
=
math
.
sqrt
((
G
*
mA
*
mB
)
/
math
.
pow
(
r1
*
1000
+
r2
*
1000
,
2
)
*
r2
*
1000
/
mB
)
vA
,
vB
=
[
vxA
,
vyA
/
1000
,
0
],
[
vxB
,
vyB
/
1000
,
0
]
# vA, vB = [0,0,0],[0,0,0]
bodies
=
[
Sun
(
name
=
"A"
,
rotation_speed
=
1
,
mass
=
mA
,
init_position
=
pA
,
init_velocity
=
vA
,
size_scale
=
1.5e3
,
distance_scale
=
1
).
trail_color
((
255
,
0
,
0
)),
Sun
(
name
=
"B"
,
rotation_speed
=
1
,
mass
=
mB
,
init_position
=
pB
,
init_velocity
=
vB
,
size_scale
=
1.5e3
,
distance_scale
=
1
)
]
# 使用 ursina 查看的运行效果
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# position = 左-右+、上+下-、前+后-
ursina_run
(
bodies
,
SECONDS_PER_YEAR
*
50
,
position
=
(
r1
,
r1
,
-
7
*
r2
),
show_trail
=
True
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录