From 68ef6a9e8267f1e7b7ffbb419fee913f9541391b Mon Sep 17 00:00:00 2001 From: march3 Date: Fri, 21 Jul 2023 21:40:18 +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/fiction/transformed_mars_3d.py | 16 +++++ sim_scenes/fiction/transformed_mercury_3d.py | 16 +++++ sim_scenes/fiction/transformed_moon_3d.py | 16 +++++ sim_scenes/fiction/transformed_planet.py | 70 ++++++++++++++++++++ sim_scenes/fiction/transformed_venus_3d.py | 16 +++++ 5 files changed, 134 insertions(+) create mode 100644 sim_scenes/fiction/transformed_mars_3d.py create mode 100644 sim_scenes/fiction/transformed_mercury_3d.py create mode 100644 sim_scenes/fiction/transformed_moon_3d.py create mode 100644 sim_scenes/fiction/transformed_planet.py create mode 100644 sim_scenes/fiction/transformed_venus_3d.py diff --git a/sim_scenes/fiction/transformed_mars_3d.py b/sim_scenes/fiction/transformed_mars_3d.py new file mode 100644 index 0000000..39f016d --- /dev/null +++ b/sim_scenes/fiction/transformed_mars_3d.py @@ -0,0 +1,16 @@ +# -*- coding:utf-8 -*- +# title :改造后火星的3D效果 +# description :改造后火星的3D效果 +# author :Python超人 +# date :2023-07-21 +# link :https://gitcode.net/pythoncr/ +# python_version :3.8 +# ============================================================================== +from sim_scenes.fiction.transformed_planet import run_transformed_planet + +if __name__ == '__main__': + run_transformed_planet( + "mars.jpg", + camera3d=True, + transparent=False + ) diff --git a/sim_scenes/fiction/transformed_mercury_3d.py b/sim_scenes/fiction/transformed_mercury_3d.py new file mode 100644 index 0000000..45f87b1 --- /dev/null +++ b/sim_scenes/fiction/transformed_mercury_3d.py @@ -0,0 +1,16 @@ +# -*- coding:utf-8 -*- +# title :改造后水星的3D效果 +# description :改造后水星的3D效果 +# author :Python超人 +# date :2023-07-21 +# link :https://gitcode.net/pythoncr/ +# python_version :3.8 +# ============================================================================== +from sim_scenes.fiction.transformed_planet import run_transformed_planet + +if __name__ == '__main__': + run_transformed_planet( + "mercury.jpg", + camera3d=True, + transparent=False + ) diff --git a/sim_scenes/fiction/transformed_moon_3d.py b/sim_scenes/fiction/transformed_moon_3d.py new file mode 100644 index 0000000..9c28514 --- /dev/null +++ b/sim_scenes/fiction/transformed_moon_3d.py @@ -0,0 +1,16 @@ +# -*- coding:utf-8 -*- +# title :改造后月球的3D效果 +# description :改造后月球的3D效果 +# author :Python超人 +# date :2023-07-21 +# link :https://gitcode.net/pythoncr/ +# python_version :3.8 +# ============================================================================== +from sim_scenes.fiction.transformed_planet import run_transformed_planet + +if __name__ == '__main__': + run_transformed_planet( + "moon.jpg", + camera3d=True, + transparent=False + ) diff --git a/sim_scenes/fiction/transformed_planet.py b/sim_scenes/fiction/transformed_planet.py new file mode 100644 index 0000000..8a96131 --- /dev/null +++ b/sim_scenes/fiction/transformed_planet.py @@ -0,0 +1,70 @@ +# -*- coding:utf-8 -*- +# title :改造后地球的3D效果 +# description :改造后地球的3D效果 +# author :Python超人 +# date :2023-07-21 +# 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 + + +def run_transformed_planet(texture, with_clouds=True, camera3d=False, transparent=True): + if transparent: + texture = texture.replace(".jpg", "_trans.png") + + # 创建带有云层的地球 + earth = Earth( + texture=os.path.join("transformed", texture), + rotate_angle=-23.44, + init_position=[0, 0, 0], + init_velocity=[0, 0, 0], + size_scale=1) + bodies = [earth] + if with_clouds: + # 创建云层(texture纹理图使用了透明云层的图片,云层的 size_scale 要稍微比地球大一点) + clouds = Earth(name="云层", texture="transparent_clouds.png", + rotate_angle=-23.44, + size_scale=1.001, parent=earth) + + bodies.append(clouds) + + init_pos = (1.45 * earth.radius, + 0, + -30000) + if camera3d: + init_pos = np.array(init_pos) * UrsinaConfig.SCALE_FACTOR + Camera3d.init(init_pos) + init_pos = (0, 0, 0) + + # 使用 ursina 查看的运行效果 + # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 + # position = 左-右+、上+下-、前+后- + ursina_run(bodies, SECONDS_PER_HOUR / 2, + position=init_pos, + show_grid=False, + show_camera_info=False, + show_control_info=False, + cosmic_bg="none", + view_closely=0.001) # 近距离观看 view_closely=True或0.001 + + +if __name__ == '__main__': + """ + 改造后地球的3D效果 + """ + run_transformed_planet( + "earth.jpg", + camera3d=True, + transparent=False + ) diff --git a/sim_scenes/fiction/transformed_venus_3d.py b/sim_scenes/fiction/transformed_venus_3d.py new file mode 100644 index 0000000..1cccdbf --- /dev/null +++ b/sim_scenes/fiction/transformed_venus_3d.py @@ -0,0 +1,16 @@ +# -*- coding:utf-8 -*- +# title :改造后金星的3D效果 +# description :改造后金星的3D效果 +# author :Python超人 +# date :2023-07-21 +# link :https://gitcode.net/pythoncr/ +# python_version :3.8 +# ============================================================================== +from sim_scenes.fiction.transformed_planet import run_transformed_planet + +if __name__ == '__main__': + run_transformed_planet( + "venus.jpg", + camera3d=True, + transparent=False + ) -- GitLab