import numpy as np
import matplotlib.pyplot as plt

# Parâmetros principais
LOA = 15.0      # Comprimento Total (m)
LWL = 13.8      # Comprimento Linha d'Água (m)
B_max = 4.50    # Boca Máxima (m)
BWL = 4.25      # Boca na Linha d'Água (m)
D = 1.70        # Pontal (m)
T = 0.95        # Calado de Projeto (m)
rho_sw = 1.025  # Densidade da água salobra/salgada (t/m^3)

# Coeficientes de Forma Estimados para Casco Híbrido Canoa-Saveiro
# Cb (Bloco) ~ 0.42 a 0.46 (linhas de entrada finas como canoa, meia-nau cheia como saveiro)
# Cm (Meia-nau) ~ 0.72 a 0.78
# Cp (Prismático) = Cb / Cm ~ 0.58 a 0.60
# Cwp (Plano de Flutuação) ~ 0.70

Cb = 0.44
Cm = 0.75
Cp = Cb / Cm
Cwp = 0.71

# Volume imerso (m^3) e Deslocamento (t)
Vol = LWL * BWL * T * Cb
Delta = Vol * rho_sw

# Área do Plano de Flutuação (Awp)
Awp = LWL * BWL * Cwp

# TPC (Toneladas por Centímetro de Imersão)
TPC = (Awp * rho_sw) / 100.0

# Posição Vertical do Centro de Carena (KB) - Fórmula aproximada de Morrish: KB = T*(5/6 - Cb/(3*Cwp))
KB = T * (5.0/6.0 - Cb / (3.0 * Cwp))

# Momento de Inércia Transversal do Plano de Flutuação (It)
# Aproximação de Normand / Bauer: It = k * LWL * BWL^3, onde k ~ 0.045 a 0.055 para veleiros/saveiros
k_it = 0.052
It = k_it * LWL * (BWL**3)

# Raio Metacêntrico Transversal (BMt)
BMt = It / Vol

# Altura Metacêntrica Inicial (KMt)
KMt = KB + BMt

# Estimativa do Centro de Gravidade Vertical (KG)
# Madeira tradicional com lastro baixo na quilha/porão:
# Casco e convés: KG ~ 1.10 m
# Lastro (3t a 0.30 m): baixa o KG geral
# Carga e passageiros (50 pessoas sentadas em bancos baixos a ~1.20 m):
# KG estimado total em carga máxima ~ 1.05 m a 1.15 m
KG = 1.10

# Altura Metacêntrica Transversal Inicial (GMt)
GMt = KMt - KG

# Momento para Alterar o Trim em 1 cm (MCT 1cm)
# Inércia Longitudinal Il ~ 0.040 * BWL * LWL^3
k_il = 0.042
Il = k_il * BWL * (LWL**3)
BMl = Il / Vol
MCT_1cm = (Delta * BMl) / (100.0 * LWL)

output = f"""=====================================================
ESTUDO HIDROSTÁTICO PRELIMINAR - BARCO-ESCOLA DAS ÁGUAS
Aluno: Luciano Mandú | Dimensões: 15,0m x 4,50m x 0,95m
=====================================================

1. PARÂMETROS GEOMÉTRICOS PRINCIPAIS:
- Comprimento Total (LOA): {LOA:.2f} m
- Comprimento de Linha d'Água (LWL): {LWL:.2f} m
- Boca Máxima Moldada (B): {B_max:.2f} m
- Boca na Linha d'Água (BWL): {BWL:.2f} m
- Pontal Moldado (D): {D:.2f} m
- Borda Livre a Meia-Nau (Fb = D - T): {D - T:.2f} m (Excelente reserva de flutuabilidade!)
- Calado de Projeto (T): {T:.2f} m

2. COEFICIENTES DE FORMA (FORMA HÍBRIDA CANOA-SAVEIRO):
- Coeficiente de Bloco (Cb): {Cb:.3f}
- Coeficiente de Seção Mestra (Cm): {Cm:.3f}
- Coeficiente Prismático Longitudinal (Cp): {Cp:.3f}
- Coeficiente do Plano de Flutuação (Cwp): {Cwp:.3f}

3. DESLOCAMENTO E CAPACIDADE:
- Volume de Carena Imerso (V): {Vol:.2f} m³
- Deslocamento em Carga Máxima (Δ): {Delta:.2f} toneladas
- Área da Linha d'Água (Awp): {Awp:.2f} m²
- Imersão por Centímetro (TPC): {TPC:.3f} t/cm (A cada {TPC*1000:.0f} kg a bordo, o barco afunda apenas 1 cm!)

4. ESTABILIDADE TRANSVERSAL INICIAL (EM ÁGUA PLANA):
- Altura do Centro de Carena (KB): {KB:.2f} m
- Raio Metacêntrico Transversal (BMt): {BMt:.2f} m
- Altura do Metacentro Transversal (KMt = KB + BMt): {KMt:.2f} m
- Centro de Gravidade Estimado (KG): {KG:.2f} m
- Altura Metacêntrica Transversal (GMt = KMt - KG): {GMt:.2f} m

5. AVALIAÇÃO DA ESTABILIDADE (O QUE O NÚMERO SIGNIFICA):
- GMt de {GMt:.2f} m é EXCEPCIONAL!
- Para barcos de passageiros escolares, a norma exige GM mínimo de 0,35 m a 0,50 m.
- Com GMt ~ {GMt:.2f} m, o barco tem uma estabilidade de forma formidável vinda da boca de 4,50m.
- Se 30 pessoas se deslocarem para o mesmo bordo para observar o manguezal, o ângulo de banda estática será inferior a 5 graus, garantindo segurança total para as crianças.

6. ESTABILIDADE LONGITUDINAL:
- Momento para alterar o trim em 1 cm (MCT 1cm): {MCT_1cm:.2f} t·m/cm
"""

print(output)

with open("/home/magdalena/eee/alunos/luciano-mandu/estudo_hidrostatico.txt", "w") as f:
    f.write(output)
