From 209b57b0a8f814a16eeaee645f6729e1fc41fb02 Mon Sep 17 00:00:00 2001 From: march3 Date: Wed, 26 Jul 2023 21:11:44 +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/earth/earth_3d.py | 5 +++-- sim_scenes/fiction/transformed_mars_ani_3d.py | 12 ++++++------ sim_scenes/fiction/transformed_planet.py | 18 ++++++++---------- sim_scenes/solar_system/hd_mercury_3d.py | 6 +++--- tools/sim_video_3d_cap_ext.py | 6 ++++-- tools/video_cap_main.py | 4 ++++ 6 files changed, 28 insertions(+), 23 deletions(-) diff --git a/sim_scenes/earth/earth_3d.py b/sim_scenes/earth/earth_3d.py index db831fa..7aefcdf 100644 --- a/sim_scenes/earth/earth_3d.py +++ b/sim_scenes/earth/earth_3d.py @@ -29,9 +29,10 @@ if __name__ == '__main__': bodies = [earth, clouds] - # 3D摄像机初始化 + # TODO: 开启3D摄像机 from simulators.ursina.entities.camera3d import Camera3d - Camera3d.init() + # 3D摄像机初始化(眼睛的距离为1000公里效果) + Camera3d.init(eye_distance=1000) # 使用 ursina 查看的运行效果 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 diff --git a/sim_scenes/fiction/transformed_mars_ani_3d.py b/sim_scenes/fiction/transformed_mars_ani_3d.py index 57cea84..95762e4 100644 --- a/sim_scenes/fiction/transformed_mars_ani_3d.py +++ b/sim_scenes/fiction/transformed_mars_ani_3d.py @@ -7,17 +7,14 @@ # python_version :3.8 # ============================================================================== import os - -import numpy as np import sys + from bodies import Earth -from objs import Satellite, Satellite2 from common.consts import SECONDS_PER_HOUR +from objs import Satellite2 from sim_scenes.func import ursina_run from simulators.ursina.entities.body_timer import TimeData -from simulators.ursina.entities.camera3d import Camera3d from simulators.ursina.entities.entity_utils import create_directional_light -from simulators.ursina.ursina_config import UrsinaConfig from simulators.ursina.ursina_event import UrsinaEvent @@ -84,7 +81,10 @@ def transformed_mars_ani(transformed_texture=None, texture=None, camera3d=False) bodies.append(clouds) if camera3d: - Camera3d.init() + # TODO: 开启3D摄像机 + from simulators.ursina.entities.camera3d import Camera3d + # 3D摄像机初始化(眼睛的距离为1000公里效果) + Camera3d.init(eye_distance=1000) def on_ready(): # 为了较好的立体效果,可以增加太阳光线,光线指向火星(target=mars) diff --git a/sim_scenes/fiction/transformed_planet.py b/sim_scenes/fiction/transformed_planet.py index 5925b91..970c66f 100644 --- a/sim_scenes/fiction/transformed_planet.py +++ b/sim_scenes/fiction/transformed_planet.py @@ -6,18 +6,13 @@ # link :https://gitcode.net/pythoncr/ # python_version :3.8 # ============================================================================== -import numpy as np -from bodies import Earth -from common.consts import SECONDS_PER_HOUR, SECONDS_PER_DAY, AU -from sim_scenes.func import ursina_run, camera_look_at, create_3d_card -from simulators.ursina.entities.body_timer import TimeData -from simulators.ursina.entities.camera3d import Camera3d -from simulators.ursina.ursina_config import UrsinaConfig -from simulators.ursina.ursina_event import UrsinaEvent -from ursina import camera import os +from bodies import Earth +from common.consts import SECONDS_PER_HOUR +from sim_scenes.func import ursina_run + def run_transformed_planet(transformed_texture=None, texture=None, with_clouds=True, camera3d=False, transparent=True): if transformed_texture is not None: @@ -44,7 +39,10 @@ def run_transformed_planet(transformed_texture=None, texture=None, with_clouds=T bodies.append(clouds) if camera3d: - Camera3d.init() + # TODO: 开启3D摄像机 + from simulators.ursina.entities.camera3d import Camera3d + # 3D摄像机初始化(眼睛的距离为1000公里效果) + Camera3d.init(eye_distance=1000) # 使用 ursina 查看的运行效果 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 diff --git a/sim_scenes/solar_system/hd_mercury_3d.py b/sim_scenes/solar_system/hd_mercury_3d.py index 9faccda..e030e7e 100644 --- a/sim_scenes/solar_system/hd_mercury_3d.py +++ b/sim_scenes/solar_system/hd_mercury_3d.py @@ -21,10 +21,10 @@ if __name__ == '__main__': ] mercury = bodies[0] - # TODO: 3D摄像机 + # TODO: 开启3D摄像机 from simulators.ursina.entities.camera3d import Camera3d - # 3D摄像机初始化 - Camera3d.init() + # 3D摄像机初始化(眼睛的距离为1000公里效果) + Camera3d.init(eye_distance=1000) # 使用 ursina 查看的运行效果 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 diff --git a/tools/sim_video_3d_cap_ext.py b/tools/sim_video_3d_cap_ext.py index 1f3d7d1..f9161bf 100644 --- a/tools/sim_video_3d_cap_ext.py +++ b/tools/sim_video_3d_cap_ext.py @@ -307,13 +307,13 @@ def make_3d_video(): 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(): + # 清除识别块的颜色为周边的背景色 + img[4:21, 3:20, ] = img[22:23, 21:22, ][0][0] r_frames[index] = img[:cut_h, :cut_w, ] else: return False @@ -321,6 +321,8 @@ def make_3d_video(): _3d_card_color = "w" _3d_card_direct = "left" if index not in l_frames.keys(): + # 清除识别块的颜色为周边的背景色 + img[4:21, 3:20, ] = img[22:23, 21:22, ][0][0] l_frames[index] = img[:cut_h, :cut_w, ] else: return False diff --git a/tools/video_cap_main.py b/tools/video_cap_main.py index bfd4fdb..9335882 100644 --- a/tools/video_cap_main.py +++ b/tools/video_cap_main.py @@ -18,6 +18,10 @@ def browse_file(): input_entry.insert(0, file_path) output_entry.delete(0, tk.END) output_entry.insert(0, file_path[0:-3] + ".mp4") + + if file_path.endswith("_3d.py") and checkbox3d_var.get() != 1: + checkbox3d.select() + check3d() -- GitLab