From 10166e4a7987cd82984b00efdbb9b5f478f2241c Mon Sep 17 00:00:00 2001 From: march3 Date: Wed, 26 Jul 2023 20:35:13 +0800 Subject: [PATCH] =?UTF-8?q?Python=E8=B6=85=E4=BA=BA-=E5=AE=87=E5=AE=99?= =?UTF-8?q?=E6=A8=A1=E6=8B=9F=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sim_scenes/solar_system/hd_mercury.py | 7 ++++++- sim_scenes/solar_system/hd_mercury_3d.py | 9 +++++++-- simulators/ursina_simulator.py | 3 +++ tools/sim_video_3d_cap_ext.py | 15 +++++++++------ 4 files changed, 25 insertions(+), 9 deletions(-) diff --git a/sim_scenes/solar_system/hd_mercury.py b/sim_scenes/solar_system/hd_mercury.py index b1d65ef..4c0e7e3 100644 --- a/sim_scenes/solar_system/hd_mercury.py +++ b/sim_scenes/solar_system/hd_mercury.py @@ -19,9 +19,14 @@ if __name__ == '__main__': init_position=[0, 0, 0], init_velocity=[0, 0, 0], size_scale=1, show_name=True) ] + + # 3D摄像机初始化 + from simulators.ursina.entities.camera3d import Camera3d + Camera3d.init(eye_distance=500) + # 使用 ursina 查看的运行效果 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # position = 左-右+、上+下-、前+后- - ursina_run(bodies, SECONDS_PER_DAY, position=(0, 0, -8000), + ursina_run(bodies, SECONDS_PER_DAY, position=(4000, 0, -13000), # cosmic_bg="textures/cosmic1.jpg", view_closely=0.001) diff --git a/sim_scenes/solar_system/hd_mercury_3d.py b/sim_scenes/solar_system/hd_mercury_3d.py index ca4cd1e..c2e2b44 100644 --- a/sim_scenes/solar_system/hd_mercury_3d.py +++ b/sim_scenes/solar_system/hd_mercury_3d.py @@ -23,11 +23,16 @@ if __name__ == '__main__': # 3D摄像机初始化 from simulators.ursina.entities.camera3d import Camera3d + Camera3d.init() # 使用 ursina 查看的运行效果 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # position = 左-右+、上+下-、前+后- - ursina_run(bodies, SECONDS_PER_DAY, position= (2.0 * mercury.radius, 0, -14000), - # cosmic_bg="textures/cosmic1.jpg", + ursina_run(bodies, SECONDS_PER_DAY, + position=(2.0 * mercury.radius, 0, -14000), + cosmic_bg="", + show_grid=False, + show_camera_info=False, + show_control_info=False, view_closely=0.001) diff --git a/simulators/ursina_simulator.py b/simulators/ursina_simulator.py index 0b69177..befd348 100644 --- a/simulators/ursina_simulator.py +++ b/simulators/ursina_simulator.py @@ -339,6 +339,9 @@ class UrsinaSimulator(Simulator): if "cosmic_bg" in kwargs: cosmic_bg = kwargs["cosmic_bg"] + if cosmic_bg == "": + cosmic_bg = "no_cosmic_bg" + if cosmic_bg is None: # cosmic_bg = '../textures/cosmic1.png' # cosmic_bg = '../textures/cosmic2.jpg' diff --git a/tools/sim_video_3d_cap_ext.py b/tools/sim_video_3d_cap_ext.py index aca06f0..1f3d7d1 100644 --- a/tools/sim_video_3d_cap_ext.py +++ b/tools/sim_video_3d_cap_ext.py @@ -139,14 +139,14 @@ def video_write(video, l_frames, r_frames): # print('[' + str(index) + "], ", end='') continue if rv is None: - rv = r_frames.get(index-1, None) + rv = r_frames.get(index - 1, None) if rv is None: rv = r_frames.get(index + 1, None) if rv is None: # print('[R:'+str(index) + "], ", end='') continue if lv is None: - lv = l_frames.get(index-1, None) + lv = l_frames.get(index - 1, None) if lv is None: lv = l_frames.get(index + 1, None) if lv is None: @@ -295,7 +295,7 @@ def make_3d_video(): if img is None: return None _3d_card = img[4:20, 3:20, ] - _3d_card_p = _3d_card[10, 10,] + _3d_card_p = _3d_card[10, 10, ] index = int(_3d_card_p[1]) + int(_3d_card_p[0]) # if index in r_frames.keys() and index in l_frames.keys(): @@ -303,22 +303,25 @@ def make_3d_video(): if index < last_index: index_base += (last_index + 1) - + cut_h, cut_w = img.shape[0], int((img.shape[1]) / 2) last_index = index index = index + index_base completed_index = index + # 清除识别块的颜色为黑色 + img[4:21, 3:20, ] = [0, 0, 0] + if _3d_card_p[2] < 100: _3d_card_color = "b" _3d_card_direct = "right" if index not in r_frames.keys(): - r_frames[index] = img[:864, :768, ] + r_frames[index] = img[:cut_h, :cut_w, ] else: return False else: _3d_card_color = "w" _3d_card_direct = "left" if index not in l_frames.keys(): - l_frames[index] = img[:864, :768, ] + l_frames[index] = img[:cut_h, :cut_w, ] else: return False -- GitLab