提交 209b57b0 编写于 作者: 三月三net's avatar 三月三net

Python超人-宇宙模拟器

上级 aec59bc4
...@@ -29,9 +29,10 @@ if __name__ == '__main__': ...@@ -29,9 +29,10 @@ if __name__ == '__main__':
bodies = [earth, clouds] bodies = [earth, clouds]
# 3D摄像机初始化 # TODO: 开启3D摄像机
from simulators.ursina.entities.camera3d import Camera3d from simulators.ursina.entities.camera3d import Camera3d
Camera3d.init() # 3D摄像机初始化(眼睛的距离为1000公里效果)
Camera3d.init(eye_distance=1000)
# 使用 ursina 查看的运行效果 # 使用 ursina 查看的运行效果
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
......
...@@ -7,17 +7,14 @@ ...@@ -7,17 +7,14 @@
# python_version :3.8 # python_version :3.8
# ============================================================================== # ==============================================================================
import os import os
import numpy as np
import sys import sys
from bodies import Earth from bodies import Earth
from objs import Satellite, Satellite2
from common.consts import SECONDS_PER_HOUR from common.consts import SECONDS_PER_HOUR
from objs import Satellite2
from sim_scenes.func import ursina_run from sim_scenes.func import ursina_run
from simulators.ursina.entities.body_timer import TimeData 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.entities.entity_utils import create_directional_light
from simulators.ursina.ursina_config import UrsinaConfig
from simulators.ursina.ursina_event import UrsinaEvent from simulators.ursina.ursina_event import UrsinaEvent
...@@ -84,7 +81,10 @@ def transformed_mars_ani(transformed_texture=None, texture=None, camera3d=False) ...@@ -84,7 +81,10 @@ def transformed_mars_ani(transformed_texture=None, texture=None, camera3d=False)
bodies.append(clouds) bodies.append(clouds)
if camera3d: if camera3d:
Camera3d.init() # TODO: 开启3D摄像机
from simulators.ursina.entities.camera3d import Camera3d
# 3D摄像机初始化(眼睛的距离为1000公里效果)
Camera3d.init(eye_distance=1000)
def on_ready(): def on_ready():
# 为了较好的立体效果,可以增加太阳光线,光线指向火星(target=mars) # 为了较好的立体效果,可以增加太阳光线,光线指向火星(target=mars)
......
...@@ -6,18 +6,13 @@ ...@@ -6,18 +6,13 @@
# link :https://gitcode.net/pythoncr/ # link :https://gitcode.net/pythoncr/
# python_version :3.8 # 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 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): def run_transformed_planet(transformed_texture=None, texture=None, with_clouds=True, camera3d=False, transparent=True):
if transformed_texture is not None: if transformed_texture is not None:
...@@ -44,7 +39,10 @@ def run_transformed_planet(transformed_texture=None, texture=None, with_clouds=T ...@@ -44,7 +39,10 @@ def run_transformed_planet(transformed_texture=None, texture=None, with_clouds=T
bodies.append(clouds) bodies.append(clouds)
if camera3d: if camera3d:
Camera3d.init() # TODO: 开启3D摄像机
from simulators.ursina.entities.camera3d import Camera3d
# 3D摄像机初始化(眼睛的距离为1000公里效果)
Camera3d.init(eye_distance=1000)
# 使用 ursina 查看的运行效果 # 使用 ursina 查看的运行效果
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
......
...@@ -21,10 +21,10 @@ if __name__ == '__main__': ...@@ -21,10 +21,10 @@ if __name__ == '__main__':
] ]
mercury = bodies[0] mercury = bodies[0]
# TODO: 3D摄像机 # TODO: 开启3D摄像机
from simulators.ursina.entities.camera3d import Camera3d from simulators.ursina.entities.camera3d import Camera3d
# 3D摄像机初始化 # 3D摄像机初始化(眼睛的距离为1000公里效果)
Camera3d.init() Camera3d.init(eye_distance=1000)
# 使用 ursina 查看的运行效果 # 使用 ursina 查看的运行效果
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
......
...@@ -307,13 +307,13 @@ def make_3d_video(): ...@@ -307,13 +307,13 @@ def make_3d_video():
last_index = index last_index = index
index = index + index_base index = index + index_base
completed_index = index completed_index = index
# 清除识别块的颜色为黑色
img[4:21, 3:20, ] = [0, 0, 0]
if _3d_card_p[2] < 100: if _3d_card_p[2] < 100:
_3d_card_color = "b" _3d_card_color = "b"
_3d_card_direct = "right" _3d_card_direct = "right"
if index not in r_frames.keys(): 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, ] r_frames[index] = img[:cut_h, :cut_w, ]
else: else:
return False return False
...@@ -321,6 +321,8 @@ def make_3d_video(): ...@@ -321,6 +321,8 @@ def make_3d_video():
_3d_card_color = "w" _3d_card_color = "w"
_3d_card_direct = "left" _3d_card_direct = "left"
if index not in l_frames.keys(): 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, ] l_frames[index] = img[:cut_h, :cut_w, ]
else: else:
return False return False
......
...@@ -18,6 +18,10 @@ def browse_file(): ...@@ -18,6 +18,10 @@ def browse_file():
input_entry.insert(0, file_path) input_entry.insert(0, file_path)
output_entry.delete(0, tk.END) output_entry.delete(0, tk.END)
output_entry.insert(0, file_path[0:-3] + ".mp4") output_entry.insert(0, file_path[0:-3] + ".mp4")
if file_path.endswith("_3d.py") and checkbox3d_var.get() != 1:
checkbox3d.select()
check3d() check3d()
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册