提交 40bedd1d 编写于 作者: 三月三net's avatar 三月三net

Python超人-宇宙模拟器

上级 176f92ff
......@@ -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):
"""
......
......@@ -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
......
......@@ -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 倍,距离保持不变
......
......@@ -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
......
......@@ -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]
......
......@@ -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 模拟器支持)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册