提交 6c8b3e0c 编写于 作者: 三月三net's avatar 三月三net

Python超人-宇宙模拟器

上级 24de21fe
......@@ -39,9 +39,11 @@ class SolarSystemExplorer(UniverseSimScenes):
def build_solar_system(self):
# region 构建太阳系
show_trail = False
self.SIZE_FACTOR = 0.01
self.init_pos = [2 * AU, 2 * AU, -10 * AU]
self.sun = Sun(size_scale=20e2 * self.SIZE_FACTOR, show_trail=show_trail,
self.SIZE_FACTOR = 0.1 # 0.01
# self.init_pos = [2 * AU, 2 * AU, 5 * AU]
# self.init_pos = [1.8 * AU, 1.8 * AU, 4.5 * AU]
self.init_pos = [1.8 * AU, 1.8 * AU, 4.5 * AU]
self.sun = Sun(size_scale=2e2 * self.SIZE_FACTOR, show_trail=show_trail,
# color=(255, 250, 245),
# texture="",
texture="sun_light.jpg"
......@@ -62,20 +64,36 @@ class SolarSystemExplorer(UniverseSimScenes):
# init_position=[0, 0, 0],
init_position=self.init_pos,
init_velocity=[0, 0, 0],
texture='transparent.png',
size_scale=1e3 * self.SIZE_FACTOR).set_ignore_gravity(True)
# self.bodies = [
# self.sun, # 太阳
# self.mercury, # 水星
# self.venus, # 金星
# self.earth, # 地球
# self.mars, # 火星
# self.jupiter, # 木星
# self.saturn, # 土星
# self.uranus, # 天王星
# self.neptune, # 海王星
# self.pluto, # 冥王星
# self.camera_target
# ]
self.bodies = [
self.sun, # 太阳
self.camera_target,
self.saturn, # 土星
self.mars, # 火星
self.earth, # 地球
self.mercury, # 水星
self.sun, # 太阳
self.venus, # 金星
self.earth, # 地球
self.mars, # 火星
self.jupiter, # 木星
self.saturn, # 土星
self.uranus, # 天王星
self.neptune, # 海王星
self.pluto, # 冥王星
self.camera_target
# self.pluto, # 冥王星
]
self.sun.target_offset = [1, 1, 1.1]
......@@ -100,7 +118,18 @@ class SolarSystemExplorer(UniverseSimScenes):
self.neptune.dd_factor = 1.5
self.pluto.dd_factor = 1.5
init_bodies_pos_vels(self.bodies, init_pos_vels_fun=self.get_init_pos_vels)
self.init_pos_vels()
# init_bodies_pos_vels(self.bodies, init_pos_vels_fun=self.get_init_pos_vels)
def init_pos_vels(self):
from astropy.time import Time
from datetime import datetime
start_time = Time(datetime.strptime('2149-02-01 12:00:00+0800', '%Y-%m-%d %H:%M:%S%z'),
format='datetime')
# set_solar_system_celestial_position(self.bodies, start_time, True)
init_bodies_reality_pos_vels(self.bodies, start_time)
def get_init_pos_vels(self):
init_pos_vels = {}
......@@ -234,7 +263,7 @@ class SolarSystemExplorer(UniverseSimScenes):
value_conv=self.s_f, smooth=1)
def get_target(self):
for body in self.bodies:
for body in self.bodies[1:]:
if hasattr(body, "is_arrived"):
continue
return body
......@@ -258,11 +287,15 @@ class SolarSystemExplorer(UniverseSimScenes):
camera.speed = 4e2
self.camera_target.planet.update = lambda: None
# 显示网格以及坐标线
# self.show_grid_axises()
# self.show_grid_axises(scale_factor=50)
target = self.get_target()
camera_look_at(self.saturn, rotation_z=0)
def go_target(self):
from ursina import distance
target = self.get_target()
if target is None:
return
target_scale = target.planet.scale_x
target_offset = target.target_offset
......@@ -302,6 +335,7 @@ class SolarSystemExplorer(UniverseSimScenes):
@param time_data:
@return:
"""
# return
self.go_target()
# self.camera_move(time_data)
# self.current_stage()
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册