feat(stability): Módulo 3 — Curva GZ + criterios IMO IS Code 2008
- gz_integrator.py: GZCurve, GZPoint, compute_gz_wall_sided (fórmula pared lateral), compute_gz_direct (integración Sutherland-Hodgman) - imo_is2008.py: IMOCriterion, IMOResult, check_imo_is2008 — 6 criterios A.2.1.1–A.2.1.6 del IS Code 2008 Cap.2 - gz_curve_widget.py: GZCurveWidget QPainter — curva cian, áreas sombreadas, líneas IMO, marcador AVS, tabla PASS/FAIL integrada - main_window.py: GZCurveWidget en MOD_STABILITY, _compute_and_show_gz, _on_show_stability conectado al ribbon - dark.qss: estilos GZCurveWidget - test_module3_stability.py: 33 tests S-01..S-28 (315 total, todos pasan) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -514,3 +514,29 @@ QLabel#hydroPlaceholder {
|
||||
background-color: #1a1d30;
|
||||
padding: 40px;
|
||||
}
|
||||
|
||||
/* ─── Módulo 3: Estabilidad ─── */
|
||||
GZCurveWidget {
|
||||
background: #0A0E1A;
|
||||
border: 1px solid #1A2540;
|
||||
border-radius: 4px;
|
||||
}
|
||||
#gzChartTitle {
|
||||
color: #00FFCC;
|
||||
font-family: "Rajdhani", "Segoe UI", sans-serif;
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
#gzPassLabel {
|
||||
color: #00FF88;
|
||||
font-family: "Consolas", "Courier New", monospace;
|
||||
font-size: 11px;
|
||||
font-weight: bold;
|
||||
}
|
||||
#gzFailLabel {
|
||||
color: #FF4444;
|
||||
font-family: "Consolas", "Courier New", monospace;
|
||||
font-size: 11px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user