Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Python_超人
宇宙模拟器
提交
f00033a8
宇宙模拟器
项目概览
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看板
提交
f00033a8
编写于
7月 04, 2023
作者:
三月三net
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Python超人-宇宙模拟器
上级
c06c33ca
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
37 addition
and
11 deletion
+37
-11
sim_scenes/science/speed_of_light_3d.py
sim_scenes/science/speed_of_light_3d.py
+2
-1
tools/sim_video_3d_cap_ext.py
tools/sim_video_3d_cap_ext.py
+35
-10
未找到文件。
sim_scenes/science/speed_of_light_3d.py
浏览文件 @
f00033a8
...
...
@@ -36,6 +36,7 @@ for idx, body in enumerate(bodies):
if
idx
>
0
:
body
.
init_position
[
0
]
=
-
body
.
radius
*
body
.
size_scale
body
.
init_position
[
1
]
=
-
body
.
diameter
*
body
.
size_scale
body
.
rotation_speed
*=
20
if
len
(
sys
.
argv
)
>
1
:
camera_pos
=
sys
.
argv
[
1
].
replace
(
"_"
,
""
)
...
...
@@ -159,7 +160,7 @@ init.body_arrived = body_arrived
# 使用 ursina 查看的运行效果
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# position = 左-右+、上+下-、前+后-
ursina_run
(
bodies
,
10
0
,
ursina_run
(
bodies
,
10
,
position
=
init
.
camera_position
,
# show_trail=init.show_trail,
# show_timer=True,
...
...
tools/sim_video_3d_cap_ext.py
浏览文件 @
f00033a8
...
...
@@ -11,6 +11,8 @@ import win32api
import
traceback
import
threading
window_handle
=
None
def
get_window_handle
(
window_name
=
"宇宙模拟器(universe sim)"
):
"""
...
...
@@ -18,7 +20,9 @@ def get_window_handle(window_name="宇宙模拟器(universe sim)"):
@param window_name:
@return:
"""
global
window_handle
handle
=
win32gui
.
FindWindow
(
None
,
window_name
)
window_handle
=
handle
return
handle
...
...
@@ -195,7 +199,7 @@ def clear_frame_temp_files():
shutil
.
rmtree
(
"frame_temp"
)
def
create_frame_temp_files
_threading
(
file_index
,
left_frames
,
right_frames
):
def
create_frame_temp_files
(
file_index
,
left_frames
,
right_frames
):
data
=
FrameData
(
left_frames
,
right_frames
)
if
not
os
.
path
.
exists
(
"frame_temp"
):
os
.
mkdir
(
"frame_temp"
)
...
...
@@ -204,13 +208,13 @@ def create_frame_temp_files_threading(file_index, left_frames, right_frames):
data
.
save
(
file_name
)
def
create_frame_temp_files
(
file_index
,
left_frames
,
right_frames
):
import
copy
thread1
=
threading
.
Thread
(
target
=
create_frame_temp_files_threading
,
args
=
[
file_index
,
copy
.
deepcopy
(
left_frames
),
copy
.
deepcopy
(
right_frames
)])
thread1
.
start
()
#
def create_frame_temp_files(file_index, left_frames, right_frames):
#
import copy
#
#
thread1 = threading.Thread(target=create_frame_temp_files_threading,
#
args=[file_index, copy.deepcopy(left_frames),
#
copy.deepcopy(right_frames)])
#
thread1.start()
def
get_frame_temp_data
():
...
...
@@ -227,6 +231,16 @@ def get_frame_temp_data():
return
temp_frame_data
def
press_pause_key
():
KEY_P
=
win32api
.
VkKeyScan
(
'P'
)
win32api
.
PostMessage
(
window_handle
,
win32con
.
WM_KEYDOWN
,
KEY_P
,
0x00190001
)
# win32api.PostMessage(window_handle, win32api.VkKeyScan('P'), 0x0001 | 0x0008 | 0x0010 | 0x0020, 0)
# win32api.PostMessage(0xFFFFFFF6, win32api.VkKeyScan('P'), 0x0001 | 0x0008 | 0x0010 | 0x0020, 0)
# win32api.PostMessage(window_handle, win32con.WM_KEYDOWN, win32api.VkKeyScan('P'), 0) # 发送F9键
# win32api.PostMessage(window_handle, win32con.WM_KEYUP, win32con.VK_F9, 0)
pass
def
make_3d_video
():
args
=
get_args
()
# handle = get_window_handle()
...
...
@@ -256,13 +270,24 @@ def make_3d_video():
_3d_card_p
=
_3d_card
[
10
,
10
,]
index
=
int
(
_3d_card_p
[
1
])
+
int
(
_3d_card_p
[
0
])
if
i
ndex
<
last_index
:
index_base
+=
(
last_index
+
1
)
if
i
mageNum
%
100
==
0
:
press_pause_key
(
)
create_frame_temp_files
(
index
+
index_base
,
l_frames
,
r_frames
)
r_frames
.
clear
()
l_frames
.
clear
()
r_frames
=
{}
l_frames
=
{}
press_pause_key
()
if
index
<
last_index
:
index_base
+=
(
last_index
+
1
)
# press_pause_key()
# create_frame_temp_files(index + index_base, l_frames, r_frames)
# r_frames.clear()
# l_frames.clear()
# r_frames = {}
# l_frames = {}
# press_pause_key()
last_index
=
index
index
=
index
+
index_base
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录