import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots(figsize=(10, 6), dpi=150)

# Simulação das meias-seções (Body Plan - Seções Transversais)
# Linhas finas de vante (Canoa Tupinambá) -> Meia-nau e Ré (Saveiro)
y_half = np.linspace(0, 2.25, 100)

# Balizas de Vante (Lado Direito do Body Plan)
# Baliza 10 (Proa/Roda de proa): Fina e vertical em 'V' agudo
# Baliza 8, 6: Transição suave
z_b10 = 1.70 * (y_half / 0.5)**1.8
z_b8 = 1.70 * (y_half / 1.2)**1.4
z_b6 = 1.70 * (y_half / 1.8)**1.1

# Baliza Mestra (Baliza 5 - Meia Nau): Bojo arredondado e fundo quase chato com pequeno 'deadrise'
z_b5 = 1.70 * (y_half / 2.25)**0.75

# Balizas de Ré (Lado Esquerdo do Body Plan)
# Baliza 3, 1, 0 (Popa de saveiro - espelho largo e saída de água plana)
z_b3 = 1.70 * (y_half / 2.15)**0.85
z_b1 = 1.70 * (y_half / 1.90)**1.0
z_b0 = 1.70 * (y_half / 1.60)**1.2

# Plotando Balizas de Vante (BE - Lado direito: x positivo)
ax.plot(y_half[z_b10 <= 1.70], z_b10[z_b10 <= 1.70], 'b-', label='Proa (Entrada tipo Canoa - Baliza 10)')
ax.plot(y_half[z_b8 <= 1.70], z_b8[z_b8 <= 1.70], 'c--', label='Vante (Baliza 8)')
ax.plot(y_half[z_b6 <= 1.70], z_b6[z_b6 <= 1.70], 'teal', label='Vante (Baliza 6)')
ax.plot(y_half[z_b5 <= 1.70], z_b5[z_b5 <= 1.70], 'k-', lw=2.5, label='Meia-Nau (Mestra - Baliza 5)')

# Plotando Balizas de Ré (BB - Lado esquerdo: x negativo)
ax.plot(-y_half[z_b5 <= 1.70], z_b5[z_b5 <= 1.70], 'k-', lw=2.5)
ax.plot(-y_half[z_b3 <= 1.70], z_b3[z_b3 <= 1.70], 'm--', label='Ré (Baliza 3)')
ax.plot(-y_half[z_b1 <= 1.70], z_b1[z_b1 <= 1.70], 'r--', label='Ré (Baliza 1)')
ax.plot(-y_half[z_b0 <= 1.70], z_b0[z_b0 <= 1.70], 'darkred', label='Espelho de Popa (Baliza 0)')

# Linha d'Água de Projeto (DWL)
ax.axhline(0.95, color='darkblue', linestyle=':', lw=2, label='Linha d\'Água de Projeto (T = 0.95m)')
ax.axhline(1.70, color='brown', linestyle='-', lw=1.5, label='Linha do Convés (D = 1.70m)')
ax.axvline(0, color='gray', linestyle='-', lw=1)

ax.set_title('Plano de Balizas Conceitual (Body Plan) - Barco Escola das Águas\n(Canoa Indígena Tupinambá + Saveiro da Bahia)', fontsize=12, fontweight='bold')
ax.set_xlabel('Meia-Boca (m) [ <--- Ré | Vante ---> ]', fontsize=10)
ax.set_ylabel('Altura Acima da Linha de Base / Quilha (m)', fontsize=10)
ax.set_xlim(-2.5, 2.5)
ax.set_ylim(0, 1.85)
ax.grid(True, linestyle='--', alpha=0.6)
ax.legend(loc='lower right', fontsize=8)

plt.tight_layout()
plt.savefig('/home/magdalena/eee/alunos/luciano-mandu/body_plan_secoes.png', dpi=200)
print("Gráfico de seções gerado com sucesso.")
