93 lines
2.9 KiB
Python
93 lines
2.9 KiB
Python
#!/usr/bin/env python3
|
|
"""Show the complete picture of the sizing problem"""
|
|
|
|
print("=" * 90)
|
|
print("COMPLETE SIZE CALCULATION ANALYSIS")
|
|
print("=" * 90)
|
|
|
|
# Real radii (km)
|
|
real_radii = {
|
|
'Sun': 696000,
|
|
'Jupiter': 69911,
|
|
'Saturn': 58232,
|
|
'Earth': 6371,
|
|
'Ceres': 476,
|
|
'Pluto': 1188,
|
|
}
|
|
|
|
# Current config
|
|
planet_ratio = 0.00008
|
|
dwarf_ratio = 0.00015
|
|
star_ratio = 0.0000015
|
|
|
|
# Current TYPE_SIZES fallback
|
|
type_sizes = {
|
|
'planet': 0.6,
|
|
'dwarf_planet': 0.18,
|
|
'star': 0.4,
|
|
}
|
|
|
|
print("\n📊 CURRENT SITUATION:")
|
|
print("-" * 90)
|
|
print(f"{'Body':<15} {'Has real_radius?':<20} {'Calculation':<40} {'Size':<10}")
|
|
print("-" * 90)
|
|
|
|
# Planets with real_radius
|
|
for name in ['Jupiter', 'Saturn', 'Earth']:
|
|
radius = real_radii[name]
|
|
size = radius * planet_ratio
|
|
calc = f"{radius} * {planet_ratio} = {size:.4f}"
|
|
print(f"{name:<15} {'YES (✓)':<20} {calc:<40} {size:<10.4f}")
|
|
|
|
# Dwarf planets WITHOUT real_radius (using fallback)
|
|
for name in ['Ceres', 'Pluto']:
|
|
radius = real_radii[name]
|
|
fallback_size = type_sizes['dwarf_planet']
|
|
correct_size = radius * planet_ratio # What it SHOULD be
|
|
calc = f"FALLBACK: {fallback_size:.2f} (should be {correct_size:.4f})"
|
|
ratio = fallback_size / correct_size
|
|
print(f"{name:<15} {'NO (✗) MISSING!':<20} {calc:<40} {fallback_size:<10.2f} ({ratio:.1f}x too large!)")
|
|
|
|
# Sun WITHOUT real_radius
|
|
name = 'Sun'
|
|
radius = real_radii[name]
|
|
fallback_size = type_sizes['star']
|
|
correct_size = radius * star_ratio
|
|
calc = f"FALLBACK: {fallback_size:.2f} (should be {correct_size:.4f})"
|
|
ratio = fallback_size / correct_size
|
|
print(f"{name:<15} {'NO (✗) MISSING!':<20} {calc:<40} {fallback_size:<10.2f}")
|
|
|
|
print("\n" + "=" * 90)
|
|
print("⚠️ PROBLEMS:")
|
|
print("=" * 90)
|
|
print("1. Dwarf planets (Ceres, Pluto, etc.) use FIXED fallback size 0.18")
|
|
print(" → Ceres (476 km) should be 0.0381 but shows as 0.18 (4.7x too large!)")
|
|
print(" → Pluto (1188 km) should be 0.0950 but shows as 0.18 (1.9x too large!)")
|
|
print()
|
|
print("2. Different ratios for different types causes MORE confusion:")
|
|
print(f" → planet ratio: {planet_ratio}")
|
|
print(f" → dwarf_planet ratio: {dwarf_ratio} (1.875x larger!)")
|
|
print()
|
|
print("3. Sun has no real_radius, uses fixed size 0.4")
|
|
print()
|
|
|
|
print("=" * 90)
|
|
print("✅ SOLUTION:")
|
|
print("=" * 90)
|
|
print("1. Add missing real_radius data for:")
|
|
print(" • Sun: 696000 km")
|
|
print(" • Ceres: 476 km")
|
|
print(" • Pluto: 1188 km")
|
|
print(" • Eris: 1163 km")
|
|
print(" • Haumea: 816 km")
|
|
print(" • Makemake: 715 km")
|
|
print()
|
|
print("2. Use UNIFIED ratio for all types:")
|
|
print(" • Recommended: 0.00008 for ALL types (star, planet, dwarf_planet, etc.)")
|
|
print(" • This ensures consistent scaling based on real physical size")
|
|
print()
|
|
print("3. If planets appear too large visually, adjust the GLOBAL ratio:")
|
|
print(" • Reduce ratio to 0.00005 or 0.00004 for ALL types")
|
|
print(" • This keeps relative sizes correct while fitting better on screen")
|
|
print("=" * 90)
|