提交 9d3c6569 编写于 作者: 三月三net's avatar 三月三net

太阳系三体模拟器

上级 539327a0
...@@ -83,14 +83,14 @@ class FixedStar(Body): ...@@ -83,14 +83,14 @@ class FixedStar(Body):
print("---------------------------------") print("---------------------------------")
print("质量: %.2f M☉ (%.4g kg)" % (self.mass / sun.mass, self.mass)) print("质量: %.2f M☉ (%.4g kg)" % (self.mass / sun.mass, self.mass))
print("半径: %.2f R☉ (%.4g km)" % (self.raduis / sun.raduis, self.raduis)) print("半径: %.2f R☉ (%.4g km)" % (self.raduis / sun.raduis, self.raduis))
print("直径: %.2f R☉ (%.4g km)" % (self.diameter / sun.diameter, self.diameter)) print("直径: %.2f D☉ (%.4g km)" % (self.diameter / sun.diameter, self.diameter))
num_sun_volume = self.volume / sun.volume # 相当于多少个太阳体积 num_sun_volume = self.volume / sun.volume # 相当于多少个太阳体积
if num_sun_volume <= 10000: if num_sun_volume <= 10000:
print("体积: %.2f M☉ (%.4g km³)" % (num_sun_volume, self.volume)) print("体积: %.2f V☉ (%.4g km³)" % (num_sun_volume, self.volume))
elif num_sun_volume <= 100000000: elif num_sun_volume <= 100000000:
print("体积: %.2f万 M☉ (%.4g km³)" % (num_sun_volume / 10000, self.volume)) print("体积: %.2f万 V☉ (%.4g km³)" % (num_sun_volume / 10000, self.volume))
else: else:
print("体积: %.2f亿 M☉ (%.4g km³)" % (num_sun_volume / 100000000, self.volume)) print("体积: %.2f亿 V☉ (%.4g km³)" % (num_sun_volume / 100000000, self.volume))
def density_by_radius(self, raduis=None, num_sun_raduis=None): def density_by_radius(self, raduis=None, num_sun_raduis=None):
""" """
......
...@@ -49,10 +49,8 @@ class Sirius(FixedStar): ...@@ -49,10 +49,8 @@ class Sirius(FixedStar):
近心点幅角 (ω) 近心点幅角 (ω)
(secondary) 147.3° (secondary) 147.3°
详细资料 详细资料
质量 2.02[7](A) / 质量 2.02[7](A) / 0.978[7](B) M☉
0.978[7](B) M☉ 半径 1.711[7](A) / 0.0084 ± 3%[8](B) R☉
半径 1.711[7](A) /
0.0084 ± 3%[8](B) R☉
表面重力 (log g) 4.33[9](A)/8.57[8](B) 表面重力 (log g) 4.33[9](A)/8.57[8](B)
亮度 25.4[7](A) / 亮度 25.4[7](A) /
0.026[10](B) L☉ 0.026[10](B) L☉
......
...@@ -13,6 +13,8 @@ from common.consts import MO ...@@ -13,6 +13,8 @@ from common.consts import MO
class UYScuti(FixedStar): class UYScuti(FixedStar):
""" """
盾牌座 UY (UY Scuti) 盾牌座 UY (UY Scuti)
质量 7-10 M☉
半径 1708 R☉ (有争议)
--------------- 维基百科 --------------- --------------- 维基百科 ---------------
盾牌座UY 盾牌座UY
盾牌座UY(影像中最亮恒星)周围有大量恒星。 盾牌座UY(影像中最亮恒星)周围有大量恒星。
...@@ -55,7 +57,7 @@ class UYScuti(FixedStar): ...@@ -55,7 +57,7 @@ class UYScuti(FixedStar):
"mass": mass, "mass": mass,
"init_position": init_position, "init_position": init_position,
"init_velocity": init_velocity, "init_velocity": init_velocity,
"density": 3.271612056053086e-05, "density": 2.825784611529699e-06,
"color": color, "color": color,
"texture": texture, "texture": texture,
"size_scale": size_scale, "size_scale": size_scale,
...@@ -70,4 +72,4 @@ if __name__ == '__main__': ...@@ -70,4 +72,4 @@ if __name__ == '__main__':
fixed_star = UYScuti() fixed_star = UYScuti()
print(fixed_star) print(fixed_star)
fixed_star.compare_with_sun() fixed_star.compare_with_sun()
fixed_star.density_by_radius(num_sun_raduis=755) fixed_star.density_by_radius(num_sun_raduis=1708)
...@@ -15,6 +15,11 @@ from bodies.body import Body, AU ...@@ -15,6 +15,11 @@ from bodies.body import Body, AU
if __name__ == '__main__': if __name__ == '__main__':
""" """
恒星演示 恒星演示
质量: 8.60 M☉ (1.711e+31 kg)
半径: 5.75 R☉ (4.003e+06 km)
""" """
# 构建两个天体对象(太阳、地球) # 构建两个天体对象(太阳、地球)
D = 5e5 D = 5e5
...@@ -22,20 +27,20 @@ if __name__ == '__main__': ...@@ -22,20 +27,20 @@ if __name__ == '__main__':
bodies = [ bodies = [
Earth(size_scale=SIZE_SCALE, ignore_mass=True), Earth(size_scale=SIZE_SCALE, ignore_mass=True),
Sun(size_scale=SIZE_SCALE, ignore_mass=True), # 太阳 Sun(size_scale=SIZE_SCALE, ignore_mass=True), # 太阳
Sirius(size_scale=SIZE_SCALE, ignore_mass=True), # 天狼星A 质量倍数 2.06 半径倍数 1.71 Sirius(size_scale=SIZE_SCALE, ignore_mass=True), # 天狼星A 质量倍数 2.02 半径倍数 1.71
# Bellatrix(size_scale=SIZE_SCALE, ignore_mass=True), # 参宿五 质量倍数 8.6 半径倍数 5.75 # Bellatrix(size_scale=SIZE_SCALE, ignore_mass=True), # 参宿五 质量倍数 8.6 半径倍数 5.75
Alcyone(size_scale=SIZE_SCALE, ignore_mass=True), # 昴宿六 质量倍数 7 半径倍数 10 Alcyone(size_scale=SIZE_SCALE, ignore_mass=True), # 昴宿六 质量倍数 6 半径倍数 9.5
Arcturus(size_scale=SIZE_SCALE, ignore_mass=True), # 大角星 质量倍数 1.08 半径倍数 25.42 Arcturus(size_scale=SIZE_SCALE, ignore_mass=True), # 大角星 质量倍数 1.1 半径倍数 25.7
# Aldebaran(size_scale=SIZE_SCALE, ignore_mass=True), # 毕宿五 质量倍数 11.3 半径倍数 38 Aldebaran(size_scale=SIZE_SCALE, ignore_mass=True), # 毕宿五 质量倍数 1.16 半径倍数 44.13
Rigel(size_scale=SIZE_SCALE, ignore_mass=True), # 参宿七 质量倍数 21 半径倍数 78.9 Rigel(size_scale=SIZE_SCALE, ignore_mass=True), # 参宿七 质量倍数 18 半径倍数 78
# YCanumVenaticorum(size_scale=SIZE_SCALE, ignore_mass=True), # 猎犬座Y 质量倍数 3.0 半径倍数 215 # YCanumVenaticorum(size_scale=SIZE_SCALE, ignore_mass=True), # 猎犬座Y 质量倍数 3.0 半径倍数 215
# EtaCarinae(size_scale=SIZE_SCALE, ignore_mass=True), # 海山二 质量倍数 100.0 半径倍数 278 EtaCarinae(size_scale=SIZE_SCALE, ignore_mass=True), # 海山二 质量倍数 125 半径倍数 278
CarinaeV382(size_scale=SIZE_SCALE, ignore_mass=True), # 船底座V382 质量倍数 20.0 半径倍数 350 # Antares(size_scale=SIZE_SCALE, ignore_mass=True), # 心宿二 质量倍数 15 半径倍数 680
# Antares(size_scale=SIZE_SCALE, ignore_mass=True), # 心宿二 质量倍数 12 半径倍数 770 CarinaeV382(size_scale=SIZE_SCALE, ignore_mass=True), # 船底座V382 质量倍数 39 半径倍数 747
Betelgeuse(size_scale=SIZE_SCALE, ignore_mass=True), # 参宿四 质量倍数 11.6 半径倍数 887 # Betelgeuse(size_scale=SIZE_SCALE, ignore_mass=True), # 参宿四 质量倍数 19 半径倍数 1180
# VYCanisMajoris(size_scale=SIZE_SCALE, ignore_mass=True), # 大犬座VY 质量倍数 25 半径倍数 1419.75 VYCanisMajoris(size_scale=SIZE_SCALE, ignore_mass=True), # 大犬座VY 质量倍数 30 半径倍数 1400
UYScuti(size_scale=SIZE_SCALE, ignore_mass=True), # 盾牌座 UY 质量倍数 10.0 半径倍数 1706.7 # UYScuti(size_scale=SIZE_SCALE, ignore_mass=True), # 盾牌座 UY 质量倍数 10 半径倍数 1708
Stephenson_2_18(size_scale=SIZE_SCALE, ignore_mass=True) # 史蒂文森2-18 质量倍数 40.0 半径倍数 2158.5 Stephenson_2_18(size_scale=SIZE_SCALE, ignore_mass=True) # 史蒂文森2-18 质量倍数 40.0 半径倍数 2150
] ]
distance_sum = 0 distance_sum = 0
for idx, body in enumerate(bodies): for idx, body in enumerate(bodies):
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册