import matplotlib.pyplot as plt
import matplotlib.patches as patches
import numpy as np

plt.style.use('seaborn-v0_8-whitegrid' if 'seaborn-v0_8-whitegrid' in plt.style.available else 'default')
fig, axs = plt.subplots(4, 1, figsize=(16, 18), dpi=300)

c_wood = '#B45309'
c_sail = '#FEF3C7'
c_jib = '#FDE68A'
c_wl = '#0284C7'
c_bottom = '#B91C1C'

# 1. SEU PROJETO: MINI SAVEIRO DE VELA DE IÇAR (6,30 m)
ax1 = axs[0]
ax1.set_title("1. SEU PROJETO: MINI SAVEIRO DE VELA DE IÇAR (6,30 m — Bahia)\nArmação Gaff Sloop/Cutter: Vela Quadrangular c/ Carangueja + Bujarrona no Baucot | Passeio / Pesca Ágil", fontsize=9.5, fontweight='bold', color='#0F172A', pad=6)

xs1 = np.linspace(0, 6.30, 80)
sheer1 = 0.65 + 0.35 * (xs1 / 6.30)**2.2
ax1.fill(np.concatenate([xs1, [6.30, 5.5, 3.0, 0, 0]]),
         np.concatenate([sheer1, [1.00, -0.20, -0.45, -0.40, 0.65]]),
         color='#1E3A8A', edgecolor='black', lw=1.5)
ax1.fill([0, 0, 3.0, 5.5, 5.9, 0], [0, -0.40, -0.45, -0.20, 0, 0], color=c_bottom, alpha=0.85)
ax1.axhline(0, color=c_wl, lw=1.2, linestyle='--')

# Baucot
ax1.plot([5.50, 7.80], [0.90, 1.15], color=c_wood, lw=3.5)
# Mastro
ax1.plot([4.00, 3.80], [-0.40, 5.80], color=c_wood, lw=5)
# Carangueja Ve = 3,40m
ax1.plot([3.85, 1.40], [5.10, 6.30], color='#78350F', lw=3.0)
# Vela de Içar (16,5 m²)
ax1.fill([3.95, 3.85, 1.40, 0.20, 3.95],
         [0.85, 5.10, 6.30, 0.90, 0.85], color=c_sail, edgecolor='#D97706', lw=1.2)
ax1.text(2.3, 3.2, "Vela de Içar (16,5 m²)", ha='center', fontsize=7, fontweight='bold', color='#78350F')
# Bujarrona (6,0 m²)
ax1.fill([3.88, 7.75, 4.20, 3.88], [4.80, 1.15, 0.90, 4.80], color=c_jib, edgecolor='#B45309', lw=1.0, alpha=0.9)
ax1.text(5.2, 2.3, "Buja (6 m²)", ha='center', fontsize=7, fontweight='bold', color='#B45309')
# Leme
ax1.plot([-0.05, -0.15], [0.70, -0.45], color=c_wood, lw=3)

ax1.set_xlim(-0.8, 14.5)
ax1.set_ylim(-1.0, 7.5)
ax1.set_aspect('equal')
ax1.axis('off')
ax1.text(0, -0.85, "★ MINI SAVEIRO 6,30 m: Boca: 2,40 m | Calado: 0,45 m | Área: 22,5 m² (2 panos) | Motor: 10–14 CV | Passeio & Day-sailing equilibrado", fontsize=7.5, fontweight='bold', color='#0F172A')

# 2. COMPARATIVO 1: SAVEIRO DE UMA VELA DE PENA (6,30 m)
ax2 = axs[1]
ax2.set_title("2. COMPARAÇÃO 1: SAVEIRO TRADICIONAL DE UMA VELA DE PENA (6,30 m — Bahia)\nArmação Latina Pura: 1 Só Vela Triangular Grande envergada na Pena (P = 7,80 m) | Pesca Artesanal Clássica", fontsize=9.5, fontweight='bold', color='#0F172A', pad=6)

ax2.fill(np.concatenate([xs1, [6.30, 5.5, 3.0, 0, 0]]),
         np.concatenate([sheer1, [1.00, -0.20, -0.45, -0.40, 0.65]]),
         color='#0F766E', edgecolor='black', lw=1.5)
ax2.fill([0, 0, 3.0, 5.5, 5.9, 0], [0, -0.40, -0.45, -0.20, 0, 0], color=c_bottom, alpha=0.85)
ax2.axhline(0, color=c_wl, lw=1.2, linestyle='--')

# Mastro curto (4,20 m)
ax2.plot([4.10, 3.90], [-0.40, 3.80], color=c_wood, lw=5)
# Pena longa (P = 7,80 m)
ax2.plot([6.10, 0.40], [0.85, 6.20], color='#78350F', lw=4)
# Vela de Pena (21,5 m²)
ax2.fill([6.10, 0.40, 0.20, 6.10], [0.85, 6.20, 0.90, 0.85], color=c_sail, edgecolor='#0F766E', lw=1.2)
ax2.text(2.6, 3.2, "1 Vela de Pena Latina (21,5 m²)\nSem vela de proa (Sem baucot)", ha='center', fontsize=7, fontweight='bold', color='#0F766E')
ax2.plot([-0.05, -0.15], [0.70, -0.45], color=c_wood, lw=3)

ax2.set_xlim(-0.8, 14.5)
ax2.set_ylim(-1.0, 7.5)
ax2.set_aspect('equal')
ax2.axis('off')
ax2.text(0, -0.85, "SAVEIRO DE VELA DE PENA 6,30 m: Boca: 2,40 m | Calado: 0,45 m | Área: 21,5 m² (1 pano) | Motor: 10–12 CV | Simplicidade máxima de faina", fontsize=7.5, fontweight='bold', color='#0F172A')

# 3. COMPARATIVO 2: SAVEIRO DE CARGA / SOMBREIRO DO RECÔNCAVO (11,00 m)
ax3 = axs[2]
ax3.set_title("3. COMPARAÇÃO 2: SAVEIRO DE CARGA / SOMBREIRO (11,00 m — Maragojipe / Recôncavo)\nVela de Içar Maior (Áurica sem buja) + Tijupá de Pernoite | Transporte de Cerâmica, Farinha e Fumo", fontsize=9.5, fontweight='bold', color='#0F172A', pad=6)

xs3 = np.linspace(0, 11.00, 100)
sheer3 = 0.95 + 0.55 * (xs3 / 11.00)**2.2
ax3.fill(np.concatenate([xs3, [11.00, 9.5, 5.5, 0, 0]]),
         np.concatenate([sheer3, [1.50, -0.35, -0.85, -0.75, 0.95]]),
         color='#854D0E', edgecolor='black', lw=1.5)
ax3.fill([0, 0, 5.5, 9.5, 10.3, 0], [0, -0.75, -0.85, -0.35, 0, 0], color=c_bottom, alpha=0.85)
ax3.axhline(0, color=c_wl, lw=1.2, linestyle='--')

# Tijupá de popa
ax3.fill([0.2, 3.0, 3.0, 0.2], [0.95, 1.05, 1.95, 1.95], color='#FEF3C7', edgecolor='#78350F', lw=1.2)
ax3.text(1.6, 1.5, "Tijupá de Popa\n(Acomodação)", ha='center', fontsize=6.5, fontweight='bold', color='#78350F')

# Mastro pesado H = 7,50 m
ax3.plot([6.60, 6.30], [-0.80, 6.80], color=c_wood, lw=7)
# Pena pesada / Verga de içar (12,0 m)
ax3.plot([10.20, 1.50], [1.35, 10.50], color='#78350F', lw=5.5)
# Vela de Içar Maior (58 m²)
ax3.fill([10.20, 1.50, 0.80, 10.20], [1.35, 10.50, 1.30, 1.35], color=c_sail, edgecolor='#854D0E', lw=1.2)
ax3.text(5.5, 5.8, "Vela de Içar Maior (58,0 m²)\nGrande poder de tração de carga", ha='center', fontsize=7.5, fontweight='bold', color='#854D0E')
ax3.plot([-0.05, -0.20], [1.00, -0.75], color=c_wood, lw=4)

ax3.set_xlim(-0.8, 14.5)
ax3.set_ylim(-1.2, 11.2)
ax3.set_aspect('equal')
ax3.axis('off')
ax3.text(0, -0.95, "SAVEIRO SOMBREIRO DE CARGA 11,00 m: Boca: 3,80 m | Calado: 0,85 m | Peso: ~8,5 t | Carga útil: 8 toneladas | Motor: 36–45 CV", fontsize=7.5, fontweight='bold', color='#0F172A')

# 4. COMPARATIVO 3: SAVEIRO DE DOIS MASTROS / DUAS VELAS DE PENA (8,50 m — Litoral Sul Baiano)
ax4 = axs[3]
ax4.set_title("4. COMPARAÇÃO 3: SAVEIRO DE DOIS MASTROS (8,50 m — Valença / Camamu / Canavieiras)\nArmação de Duas Velas de Pena (Mastro Grande + Mastro de Proa / Trinquete) | Pesca Oceânica e Mar Aberto", fontsize=9.5, fontweight='bold', color='#0F172A', pad=6)

xs4 = np.linspace(0, 8.50, 90)
sheer4 = 0.80 + 0.45 * (xs4 / 8.50)**2.2
ax4.fill(np.concatenate([xs4, [8.50, 7.2, 4.0, 0, 0]]),
         np.concatenate([sheer4, [1.25, -0.25, -0.65, -0.55, 0.80]]),
         color='#4338CA', edgecolor='black', lw=1.5)
ax4.fill([0, 0, 4.0, 7.2, 8.0, 0], [0, -0.55, -0.65, -0.25, 0, 0], color=c_bottom, alpha=0.85)
ax4.axhline(0, color=c_wl, lw=1.2, linestyle='--')

# Mastro 1 (Grande - Ré): x = 3.60m | H = 4.60m
ax4.plot([3.60, 3.40], [-0.55, 4.60], color=c_wood, lw=5)
# Pena 1 (P1 = 7,50m):
ax4.plot([5.50, 0.20], [0.95, 6.80], color='#78350F', lw=3.8)
ax4.fill([5.50, 0.20, 0.15, 5.50], [0.95, 6.80, 0.95, 0.95], color=c_sail, edgecolor='#4338CA', lw=1.0)
ax4.text(2.2, 3.5, "Vela Grande\n(19,5 m²)", ha='center', fontsize=6.8, fontweight='bold', color='#4338CA')

# Mastro 2 (Trinquete - Proa): x = 6.80m | H = 3.80m
ax4.plot([6.80, 6.65], [-0.30, 3.80], color=c_wood, lw=4.5)
# Pena 2 (P2 = 5,60m):
ax4.plot([8.30, 4.10], [1.15, 5.40], color='#78350F', lw=3.2)
ax4.fill([8.30, 4.10, 3.80, 8.30], [1.15, 5.40, 1.05, 1.15], color=c_jib, edgecolor='#4338CA', lw=1.0, alpha=0.9)
ax4.text(5.8, 3.0, "Trinquete\n(12,0 m²)", ha='center', fontsize=6.8, fontweight='bold', color='#4338CA')
ax4.plot([-0.05, -0.15], [0.85, -0.55], color=c_wood, lw=3.5)

ax4.set_xlim(-0.8, 14.5)
ax4.set_ylim(-1.0, 7.5)
ax4.set_aspect('equal')
ax4.axis('off')
ax4.text(0, -0.85, "SAVEIRO DE DOIS MASTROS 8,50 m: Boca: 2,85 m | Calado: 0,65 m | Área Total: 31,5 m² (2 velas latinas) | Motor: 18–25 CV | Alta estabilidade em mar aberto", fontsize=7.5, fontweight='bold', color='#0F172A')

plt.tight_layout()
output_4saveiros = "/home/magdalena/eee/alunos/alberico-de-carvalho-santiago/comparativo_4_saveiros_bahia.png"
plt.savefig(output_4saveiros, dpi=300, bbox_inches='tight')
plt.close()
print("Comparativo dos 4 saveiros gerado!")
