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

fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(14, 11), dpi=150)

# -------------------------------------------------------------------
# 1. ILUSTRAÇÃO TÉCNICA E HISTÓRICA DA CANOA DE TOLDO / REGATONA AMAZÔNICA
# -------------------------------------------------------------------
ax1.set_title("EMBARCAÇÃO SIMILAR AMAZÔNICA: CANOA DE TOLDO / REGATONA DO MARAJÓ\n(Evolução da Igarité Indígena com Casco Cavernado e Cobertura Tradicional)", fontsize=11, fontweight='bold', pad=10)

# Água
ax1.axhline(0, color='#2E86C1', lw=2)
ax1.fill_between([-1, 16], -2, 0, color='#85C1E9', alpha=0.3)

# Casco Amazônico: Proa muito longa e afilada (igarité), fundo chato e popa redonda/painel
x_casco = [0.0, 0.4, 1.2, 5.0, 10.0, 13.8, 15.2, 14.5, 11.5, 6.0, 1.0, 0.0]
z_casco = [0.9, -0.6, -0.85, -0.85, -0.80, -0.4, 1.3, 1.1, 0.85, 0.80, 0.80, 0.9]
casco_patch = patches.Polygon(list(zip(x_casco, z_casco)), closed=True, facecolor='#A0522D', edgecolor='#4A2511', lw=2)
ax1.add_patch(casco_patch)

# Linha d'água e quilha corrida de proteção
ax1.plot([0.8, 1.5, 12.5, 14.0], [-0.85, -0.95, -0.85, -0.2], color='#3E2723', lw=3)

# O "Toldo" Arqueado Tradicional de Palha/Madeira (de x=3.0 a x=12.0)
x_toldo = np.linspace(2.8, 12.2, 60)
z_toldo_topo = 2.45 + 0.20 * np.sin(np.pi * (x_toldo - 2.8) / 9.4)
ax1.plot(x_toldo, z_toldo_topo, color='#B8860B', lw=4, label='Toldo Arqueado de Madeira e Palha (Ubá/Buriti)')
ax1.fill_between(x_toldo, z_toldo_topo - 0.15, z_toldo_topo, color='#DAA520', alpha=0.85)

# Esteios de sustentação do toldo (madeira roliça amazônica)
for ex in [3.0, 4.8, 6.6, 8.4, 10.2, 12.0]:
    ax1.plot([ex, ex], [0.80, 2.40], color='#5D4037', lw=2.5)

# Esteiras de palha enroladas no alto do toldo (cortinas para chuva)
for ex in [3.9, 5.7, 7.5, 9.3, 11.1]:
    rect_est = patches.Rectangle((ex - 0.7, 2.15), 1.4, 0.2, facecolor='#CD853F', edgecolor='#8B4513', lw=1)
    ax1.add_patch(rect_est)
ax1.text(7.5, 2.0, "Esteiras de palha enroladas (baixam em caso de chuva/vento)", ha='center', fontsize=7.5, style='italic', bbox=dict(boxstyle="round,pad=0.2", fc="white", ec="tan", alpha=0.8))

# Redes de dormir armadas no interior do toldo
for rx, rz in [(4.5, 1.4), (7.0, 1.45), (9.5, 1.4)]:
    # Curva da rede pendurada
    r_pts_x = np.linspace(rx - 0.8, rx + 0.8, 20)
    r_pts_z = rz - 0.35 * np.cos(np.pi * (r_pts_x - rx) / 1.6)
    ax1.plot(r_pts_x, r_pts_z, color='#C0392B', lw=2)
ax1.text(7.0, 1.15, "Redes de dormir armadas sob o toldo", ha='center', fontsize=7.5, color='#900C3F', fontweight='bold')

# Mastro e Velame Tradicional Amazônico (Vela de Carangueja / Pano Bastardo)
ax1.plot([2.5, 2.5], [0.5, 11.0], color='#4E342E', lw=3.5, label='Mastro de Madeira Inteiriça')
ax1.plot([2.5, 9.5], [10.5, 9.2], color='#5D4037', lw=2) # Carangueja
ax1.plot([2.5, 10.5], [1.3, 1.5], color='#5D4037', lw=2.5) # Retranca
sail_amz = patches.Polygon([(2.5, 10.5), (9.5, 9.2), (10.5, 1.5), (2.5, 1.3)], closed=True, facecolor='#FAF0E6', edgecolor='#D3D3D3', alpha=0.85, lw=1.5, label='Pano Tradicional Amazônico')
ax1.add_patch(sail_amz)

# Bico de Proa Longo (Canoa Igarité)
ax1.text(14.2, 0.4, "Bico de Proa Lançado\n(Raiz Indígena Igarité)", ha='center', fontsize=8, fontweight='bold', color='#4A2511')

ax1.set_xlim(-1.5, 16.5)
ax1.set_ylim(-1.5, 12.0)
ax1.set_xlabel("Comprimento (metros)", fontsize=9)
ax1.set_ylabel("Altura (metros)", fontsize=9)
ax1.grid(True, linestyle=':', alpha=0.5)
ax1.legend(loc='upper right', fontsize=8)


# -------------------------------------------------------------------
# 2. NOSSO PROJETO HÍBRIDO (TUPINAMBÁ + SAVEIRO + TOLDO ESCOLA DAS ÁGUAS)
# -------------------------------------------------------------------
ax2.set_title("NOSSO PROJETO: BARCO-ESCOLA DAS ÁGUAS (15,0m x 4,50m)\n(Integração da Canoa Tupinambá + Casco e Vela de Saveiro Baiano + Toldo Arejado)", fontsize=11, fontweight='bold', pad=10)

# Água
ax2.axhline(0, color='#2E86C1', lw=2)
ax2.fill_between([-1, 16], -2, 0, color='#85C1E9', alpha=0.3)

# Casco Híbrido Baiano
x_h2 = [0.0, 0.2, 0.8, 4.0, 9.0, 13.5, 15.0, 14.2, 11.0, 6.0, 1.0, 0.0]
z_h2 = [0.8, -0.8, -0.95, -0.95, -0.90, -0.5, 1.2, 1.0, 0.8, 0.75, 0.75, 0.8]
casco2_patch = patches.Polygon(list(zip(x_h2, z_h2)), closed=True, facecolor='#D4AC0D', edgecolor='#7D6608', lw=2)
ax2.add_patch(casco2_patch)
ax2.plot([0.5, 1.0, 12.0, 14.0], [-0.95, -1.05, -0.95, -0.3], color='#3E2723', lw=3.5)

# Toldo da Escola das Águas (Palha trançada com esteios em curva)
x_toldo2 = np.linspace(3.4, 11.6, 50)
z_toldo2_topo = 2.28 + 0.15 * np.sin(np.pi * (x_toldo2 - 3.4) / 8.2)
ax2.plot(x_toldo2, z_toldo2_topo, color='#B8860B', lw=4, label='Teto de Palha Trançada / Madeira')
ax2.fill_between(x_toldo2, z_toldo2_topo - 0.12, z_toldo2_topo, color='#DAA520', alpha=0.85)

for ex in [3.8, 5.8, 7.8, 9.8, 11.2]:
    ax2.plot([ex, ex], [0.75, 2.25], color='#5D4037', lw=2.5)

# Módulos de Apoio indicados
ax2.text(2.5, 1.1, "[ San. | Coz. ]", ha='center', fontsize=7.5, fontweight='bold', bbox=dict(boxstyle="round,pad=0.2", fc="#E0F7FA", ec="#006064"))

# Aulas e Redes na Praça Central
ax2.text(7.5, 1.3, "PRAÇA CENTRAL DA ESCOLA DAS ÁGUAS\n- 50 lugares p/ transporte diurno\n- 25 alunos em aula / 20 redes p/ pernoite", ha='center', fontsize=8, fontweight='bold', bbox=dict(boxstyle="round,pad=0.3", fc="white", ec="orange"))

# Mastro e Vela de Saveiro
ax2.plot([3.2, 3.2], [0.5, 11.5], color='#4E342E', lw=4, label='Mastro de Saveiro Baiano')
ax2.plot([3.2, 10.5], [11.0, 9.8], color='#5D4037', lw=2.5)
ax2.plot([3.2, 11.8], [1.3, 1.5], color='#5D4037', lw=3)
sail2 = patches.Polygon([(3.2, 11.0), (10.5, 9.8), (11.8, 1.5), (3.2, 1.3)], closed=True, facecolor='#FAF0E6', edgecolor='#D3D3D3', alpha=0.85, lw=1.5, label='Vela de Içar / Saveiro')
ax2.add_patch(sail2)

# Buja de Proa
ax2.plot([3.2, 15.0], [10.3, 1.2], color='gray', lw=1.2, linestyle=':')
jib2 = patches.Polygon([(3.2, 10.3), (14.6, 1.3), (4.0, 1.1)], closed=True, facecolor='#FAF0E6', edgecolor='#D3D3D3', alpha=0.85, lw=1.5)
ax2.add_patch(jib2)

# Proa Tupinambá
ax2.text(14.0, 0.4, "Proa Fina Tupinambá\n(Corta ondas da BTS)", ha='center', fontsize=8, fontweight='bold', color='#7D6608')

ax2.set_xlim(-1.5, 16.5)
ax2.set_ylim(-1.5, 12.0)
ax2.set_xlabel("Comprimento (metros)", fontsize=9)
ax2.set_ylabel("Altura (metros)", fontsize=9)
ax2.grid(True, linestyle=':', alpha=0.5)
ax2.legend(loc='upper right', fontsize=8)

plt.tight_layout()
plt.savefig('/home/magdalena/eee/alunos/luciano-mandu/comparativo_similar_amazonico_visual.png', dpi=200)
print("Gráfico comparativo visual gerado com sucesso.")
