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

太阳系三体模拟器

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