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

Python超人-宇宙模拟器

上级 24de21fe
...@@ -39,9 +39,11 @@ class SolarSystemExplorer(UniverseSimScenes): ...@@ -39,9 +39,11 @@ class SolarSystemExplorer(UniverseSimScenes):
def build_solar_system(self): def build_solar_system(self):
# region 构建太阳系 # region 构建太阳系
show_trail = False show_trail = False
self.SIZE_FACTOR = 0.01 self.SIZE_FACTOR = 0.1 # 0.01
self.init_pos = [2 * AU, 2 * AU, -10 * AU] # self.init_pos = [2 * AU, 2 * AU, 5 * AU]
self.sun = Sun(size_scale=20e2 * self.SIZE_FACTOR, show_trail=show_trail, # 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), # color=(255, 250, 245),
# texture="", # texture="",
texture="sun_light.jpg" texture="sun_light.jpg"
...@@ -62,20 +64,36 @@ class SolarSystemExplorer(UniverseSimScenes): ...@@ -62,20 +64,36 @@ class SolarSystemExplorer(UniverseSimScenes):
# init_position=[0, 0, 0], # init_position=[0, 0, 0],
init_position=self.init_pos, init_position=self.init_pos,
init_velocity=[0, 0, 0], init_velocity=[0, 0, 0],
texture='transparent.png',
size_scale=1e3 * self.SIZE_FACTOR).set_ignore_gravity(True) 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.bodies = [
self.sun, # 太阳 self.camera_target,
self.saturn, # 土星
self.mars, # 火星
self.earth, # 地球
self.mercury, # 水星 self.mercury, # 水星
self.sun, # 太阳
self.venus, # 金星 self.venus, # 金星
self.earth, # 地球
self.mars, # 火星
self.jupiter, # 木星 self.jupiter, # 木星
self.saturn, # 土星
self.uranus, # 天王星 self.uranus, # 天王星
self.neptune, # 海王星 self.neptune, # 海王星
self.pluto, # 冥王星 # self.pluto, # 冥王星
self.camera_target
] ]
self.sun.target_offset = [1, 1, 1.1] self.sun.target_offset = [1, 1, 1.1]
...@@ -100,7 +118,18 @@ class SolarSystemExplorer(UniverseSimScenes): ...@@ -100,7 +118,18 @@ class SolarSystemExplorer(UniverseSimScenes):
self.neptune.dd_factor = 1.5 self.neptune.dd_factor = 1.5
self.pluto.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): def get_init_pos_vels(self):
init_pos_vels = {} init_pos_vels = {}
...@@ -234,7 +263,7 @@ class SolarSystemExplorer(UniverseSimScenes): ...@@ -234,7 +263,7 @@ class SolarSystemExplorer(UniverseSimScenes):
value_conv=self.s_f, smooth=1) value_conv=self.s_f, smooth=1)
def get_target(self): def get_target(self):
for body in self.bodies: for body in self.bodies[1:]:
if hasattr(body, "is_arrived"): if hasattr(body, "is_arrived"):
continue continue
return body return body
...@@ -258,11 +287,15 @@ class SolarSystemExplorer(UniverseSimScenes): ...@@ -258,11 +287,15 @@ class SolarSystemExplorer(UniverseSimScenes):
camera.speed = 4e2 camera.speed = 4e2
self.camera_target.planet.update = lambda: None 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): def go_target(self):
from ursina import distance from ursina import distance
target = self.get_target() target = self.get_target()
if target is None:
return
target_scale = target.planet.scale_x target_scale = target.planet.scale_x
target_offset = target.target_offset target_offset = target.target_offset
...@@ -302,6 +335,7 @@ class SolarSystemExplorer(UniverseSimScenes): ...@@ -302,6 +335,7 @@ class SolarSystemExplorer(UniverseSimScenes):
@param time_data: @param time_data:
@return: @return:
""" """
# return
self.go_target() self.go_target()
# self.camera_move(time_data) # self.camera_move(time_data)
# self.current_stage() # self.current_stage()
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册