Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Python_超人
宇宙模拟器
提交
0ae2e9a5
宇宙模拟器
项目概览
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看板
提交
0ae2e9a5
编写于
4月 25, 2023
作者:
三月三net
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Python超人-宇宙模拟器
上级
89dab316
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
11 addition
and
5 deletion
+11
-5
sim_lab/research_calc.py
sim_lab/research_calc.py
+11
-5
未找到文件。
sim_lab/research_calc.py
浏览文件 @
0ae2e9a5
...
@@ -54,16 +54,20 @@ def calc_simulator(target):
...
@@ -54,16 +54,20 @@ def calc_simulator(target):
CalcSimulator
.
init
(
True
)
CalcSimulator
.
init
(
True
)
def
on_ready
(
context
:
CalcContext
):
for
body
in
bodies
:
body
.
reset
()
def
evolve_next
(
context
:
CalcContext
):
def
evolve_next
(
context
:
CalcContext
):
return
context
.
evolve_count
<
5
00
return
context
.
evolve_count
<
10
00
def
after_evolve
(
dt
,
context
:
CalcContext
):
def
after_evolve
(
dt
,
context
:
CalcContext
):
# target: Body = context.bodies[1] # 月球
# target: Body = context.bodies[1] # 月球
# target: Obj = context.bodies[2] # 卫星
# target: Obj = context.bodies[2] # 卫星
context
.
init_param
(
"init_vel"
,
target
.
init_velocity
[
0
])
context
.
init_param
(
"acc_values"
,
[]).
append
(
target
.
acceleration_value
())
context
.
init_param
(
"acc_values"
,
[]).
append
(
target
.
acceleration_value
())
context
.
init_param
(
"vel_values"
,
[]).
append
(
target
.
velocity_value
())
context
.
init_param
(
"vel_values"
,
[]).
append
(
target
.
velocity_value
())
print
(
target
.
acceleration_value
(),
target
.
velocity_value
())
print
(
target
.
name
,
target
.
acceleration_value
(),
target
.
velocity_value
())
def
on_finished
(
context
:
CalcContext
):
def
on_finished
(
context
:
CalcContext
):
import
matplotlib.pyplot
as
plt
import
matplotlib.pyplot
as
plt
...
@@ -79,8 +83,9 @@ def calc_simulator(target):
...
@@ -79,8 +83,9 @@ def calc_simulator(target):
ax1
.
plot
(
acc_values
,
'blue'
,
label
=
'加速度'
)
ax1
.
plot
(
acc_values
,
'blue'
,
label
=
'加速度'
)
ax1
.
set_ylabel
(
'加速度'
,
fontdict
=
{
'weight'
:
'normal'
,
'size'
:
15
,
'color'
:
'blue'
})
ax1
.
set_ylabel
(
'加速度'
,
fontdict
=
{
'weight'
:
'normal'
,
'size'
:
15
,
'color'
:
'blue'
})
# ax1.set_title("加速度/速度", fontdict={'weight': 'normal', 'size': 15})
# ax1.set_title("加速度/速度", fontdict={'weight': 'normal', 'size': 15})
plt
.
title
(
"%s max:%.4f mix:%.4f diff:%.4f"
%
(
plt
.
title
(
"%s(%.4f) max:%.4f min:%.4f diff:%.4f"
%
(
target
.
name
,
vel_values
[
0
],
max_value
*
1e6
,
min_value
*
1e6
,
(
max_value
-
min_value
)
*
1e6
))
context
.
get_param
(
"init_vel"
),
max_value
*
1e6
,
min_value
*
1e6
,
(
max_value
-
min_value
)
*
1e6
))
l1
=
ax1
.
legend
(
loc
=
'lower left'
,
labels
=
[
'加速度'
])
l1
=
ax1
.
legend
(
loc
=
'lower left'
,
labels
=
[
'加速度'
])
ax2
=
ax1
.
twinx
()
# this is the important function
ax2
=
ax1
.
twinx
()
# this is the important function
...
@@ -91,6 +96,7 @@ def calc_simulator(target):
...
@@ -91,6 +96,7 @@ def calc_simulator(target):
l2
=
ax2
.
legend
(
loc
=
'upper right'
,
labels
=
[
'速度'
])
l2
=
ax2
.
legend
(
loc
=
'upper right'
,
labels
=
[
'速度'
])
plt
.
show
()
plt
.
show
()
CalcSimulator
.
on_ready_subscription
(
on_ready
)
CalcSimulator
.
on_after_evolve_subscription
(
after_evolve
)
CalcSimulator
.
on_after_evolve_subscription
(
after_evolve
)
CalcSimulator
.
on_finished_subscription
(
on_finished
)
CalcSimulator
.
on_finished_subscription
(
on_finished
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录