diff --git a/bodies/asteroids.py b/bodies/asteroids.py index 7310842fde005ff096d30813e44f43a0138358e9..1baa3178e811e8aad2e207d8791e5b719cd6d14b 100644 --- a/bodies/asteroids.py +++ b/bodies/asteroids.py @@ -48,7 +48,10 @@ class Asteroids(Body): } super().__init__(**params) # 环状星群 - self.torus_stars = True + # self.torus_stars = True + # 环状星群带(inner_radius, outer_radius, subdivisions) + # inner_radius:内圆半径 outer_radius:外圆半径,subdivisions:细分数,控制圆环的细节和精度 + self.torus_zone = 2.17, 3.64, 64 def ignore_gravity_with(self, body): """ diff --git a/bodies/habitable_zone.py b/bodies/habitable_zone.py index 624d7f6d8205ff99dc33a09d0a4234bfe2b970cd..1f8309fa5df12753771321fe08d8c2a456665175 100644 --- a/bodies/habitable_zone.py +++ b/bodies/habitable_zone.py @@ -38,6 +38,7 @@ class HabitableZone(Body): } super().__init__(**params) # 环状宜居带(inner_radius, outer_radius, subdivisions) + # inner_radius:内圆半径 outer_radius:外圆半径,subdivisions:细分数,控制圆环的细节和精度 self.torus_zone = 0.95, 1.67, 64 # 使用 texture="red_green_blue.png", # self.torus_zone = 0.20, 6.00, 64 diff --git a/sim_scenes/solar_system/solar_system_1.py b/sim_scenes/solar_system/solar_system_1.py index aab8e203c960f739b6399d408793e1b731d389b8..db8d55bb13f5225080b7e37e08ab4ebbdfe30347 100644 --- a/sim_scenes/solar_system/solar_system_1.py +++ b/sim_scenes/solar_system/solar_system_1.py @@ -26,7 +26,7 @@ if __name__ == '__main__': Venus(name="金星", size_scale=4e3), # 金星放大 4000 倍,距离保持不变 Earth(name="地球", size_scale=4e3), # 地球放大 4000 倍,距离保持不变 Mars(name="火星", size_scale=4e3), # 火星放大 4000 倍,距离保持不变 - Asteroids(name="小行星群", size_scale=3.2e2, + Asteroids(name="小行星群", size_scale=1e2, parent=sun), # 小行星群模拟(仅 ursina 模拟器支持) Jupiter(name="木星", size_scale=0.8e3), # 木星放大 800 倍,距离保持不变 Saturn(name="土星", size_scale=0.8e3), # 土星放大 800 倍,距离保持不变 diff --git a/sim_scenes/solar_system/solar_system_2.py b/sim_scenes/solar_system/solar_system_2.py index 1e79fcfd81c8acb2dd11535f7cd29fed6e19a941..bccf083a6db8a49ccb7509a036ad43b566915ef6 100644 --- a/sim_scenes/solar_system/solar_system_2.py +++ b/sim_scenes/solar_system/solar_system_2.py @@ -28,9 +28,9 @@ if __name__ == '__main__': Mercury(size_scale=4e3, distance_scale=1.3), # 水星放大 4000 倍,距离放大 1.3 倍 Venus(size_scale=4e3, distance_scale=1.3), # 金星放大 4000 倍,距离放大 1.3 倍 Earth(size_scale=4e3, distance_scale=1.3), # 地球放大 4000 倍,距离放大 1.3 倍 - Asteroids(size_scale=3e2, parent=sun), # 小行星模拟(仅 ursina 模拟器支持) - Mars(size_scale=4e3, distance_scale=1.3), # 火星放大 4000 倍,距离放大 1.3 倍 - Jupiter(size_scale=0.68e3, distance_scale=0.65), # 木星放大 680 倍,距离缩小到真实距离的 0.65 + Mars(size_scale=4e3, distance_scale=1.2), # 火星放大 4000 倍,距离放大 1.2 倍 + Asteroids(size_scale=1e2, parent=sun), # 小行星模拟(仅 ursina 模拟器支持) + Jupiter(size_scale=0.68e3, distance_scale=0.72), # 木星放大 680 倍,距离缩小到真实距离的 0.72 Saturn(size_scale=0.68e3, distance_scale=0.52), # 土星放大 680 倍,距离缩小到真实距离的 0.52 Uranus(size_scale=0.8e3, distance_scale=0.36), # 天王星放大 800 倍,距离缩小到真实距离的 0.36 Neptune(size_scale=1e3, distance_scale=0.27), # 海王星放大 1000 倍,距离缩小到真实距离的 0.27 diff --git a/sim_scenes/solar_system/solar_system_4.py b/sim_scenes/solar_system/solar_system_4.py index d6608018ebee7c743f191489a4b922ccf76bf5d3..d4648c84175418b7efa266f32b69d5f893e989fc 100644 --- a/sim_scenes/solar_system/solar_system_4.py +++ b/sim_scenes/solar_system/solar_system_4.py @@ -45,19 +45,24 @@ if __name__ == '__main__': # 由于宇宙空间尺度非常大,如果按照实际的天体大小,则无法看到天体,因此需要对天体的尺寸进行放大 sun = Sun(name="太阳", size_scale=1.4e2) # 太阳放大 80 倍,距离保持不变 sun.init_velocity = [0, 2, 0] # 太阳以2km/s的速度带着其他行星一起跑 + + asteroids = Asteroids(name="小行星群", size_scale=1e2, + parent=sun) # 小行星群模拟(仅 ursina 模拟器支持) + # 环状星群带(inner_radius, outer_radius, subdivisions) + # inner_radius:内圆半径 outer_radius:外圆半径,subdivisions:细分数,控制圆环的细节和精度 + asteroids.torus_zone = 2.7, 3.5, 64 bodies = [ sun, - Mercury(name="水星", size_scale=4e3), # 水星放大 4000 倍,距离保持不变 - Venus(name="金星", size_scale=4e3), # 金星放大 4000 倍,距离保持不变 - Earth(name="地球", size_scale=4e3), # 地球放大 4000 倍,距离保持不变 - Mars(name="火星", size_scale=4e3), # 火星放大 4000 倍,距离保持不变 - Asteroids(name="小行星群", size_scale=3.2e2, - parent=sun), # 小行星群模拟(仅 ursina 模拟器支持) - Jupiter(name="木星", size_scale=0.6e3), # 木星放大 800 倍,距离保持不变 - Saturn(name="土星", size_scale=0.6e3), # 土星放大 800 倍,距离保持不变 + Mercury(name="水星", size_scale=4e3), # 水星放大 4000 倍,距离保持不变 + Venus(name="金星", size_scale=4e3), # 金星放大 4000 倍,距离保持不变 + Earth(name="地球", size_scale=4e3), # 地球放大 4000 倍,距离保持不变 + Mars(name="火星", size_scale=4e3), # 火星放大 4000 倍,距离保持不变 + asteroids, + Jupiter(name="木星", size_scale=0.6e3), # 木星放大 800 倍,距离保持不变 + Saturn(name="土星", size_scale=0.6e3), # 土星放大 800 倍,距离保持不变 Uranus(name="天王星", size_scale=0.8e3), # 天王星放大 800 倍,距离保持不变 - Neptune(name="海王星", size_scale=1e3), # 海王星放大 1000 倍,距离保持不变 - Pluto(name="冥王星", size_scale=10e3), # 冥王星放大 10000 倍,距离保持不变(从太阳系的行星中排除) + Neptune(name="海王星", size_scale=1e3), # 海王星放大 1000 倍,距离保持不变 + Pluto(name="冥王星", size_scale=10e3), # 冥王星放大 10000 倍,距离保持不变(从太阳系的行星中排除) ] # 真实距离 @@ -71,7 +76,7 @@ if __name__ == '__main__': # 设置为行星距离 for idx, body in enumerate(bodies): # 对于太阳和小行星群保持原来的距离 - if body.is_fixed_star or hasattr(body, "torus_stars"): + if body.is_fixed_star or hasattr(body, "torus_zone"): continue body_real_distance = body.init_position[2] # 格式:body.init_position=[0, 0, 1.12 * AU] body_real_velocity = body.init_velocity[0] # 格式:body.init_velocity=body.[-29.79, 0, 0] diff --git a/sim_scenes/solar_system/solar_system_habitable_zone.py b/sim_scenes/solar_system/solar_system_habitable_zone.py index 837c805ced4a0ea74f726ad08a234f1916d26192..edd82b25be0db0c00dfe00d5e22c636e0ce5cd42 100644 --- a/sim_scenes/solar_system/solar_system_habitable_zone.py +++ b/sim_scenes/solar_system/solar_system_habitable_zone.py @@ -26,6 +26,7 @@ if __name__ == '__main__': moon = Moon(name="月球", size_scale=1.3e3, init_position=[earth_moon_d, 0, AU], init_velocity=[0, 0, 0], + rotation_speed=0.4065, ignore_mass=True, # gravity_only_for_earth=True ) @@ -34,7 +35,7 @@ if __name__ == '__main__': Venus(name="金星", size_scale=1.2e3), # 金星放大 1200 倍,距离保持不变 earth, moon, Mars(name="火星", size_scale=1.2e3), # 火星放大 1200 倍,距离保持不变 - Asteroids(name="小行星群", size_scale=3.2e2, + Asteroids(name="小行星群", size_scale=1e2, parent=sun), # 小行星群模拟(仅 ursina 模拟器支持) HabitableZone(name="宜居带", size_scale=1e2, # texture="red_green_blue.png", parent=sun), # 宜居带模拟(仅 ursina 模拟器支持)