🚀 Auto-deploy: BrainWind atualizado em 13/07/2026 20:09:53

This commit is contained in:
2026-07-13 20:09:53 +00:00
parent 08f83055a6
commit 40c94ddd3b
+35 -30
View File
@@ -704,19 +704,24 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) {
<svg viewBox="0 0 300 150" className="w-full h-full"> <svg viewBox="0 0 300 150" className="w-full h-full">
{styleBlock} {styleBlock}
<line x1="0" y1="130" x2="300" y2="130" stroke="#475569" strokeWidth="2" /> <line x1="0" y1="130" x2="300" y2="130" stroke="#475569" strokeWidth="2" />
{/* Linhas de vento batendo no pórtico */}
<path d="M -20,30 L 320,30" className="wind-line-slow" /> <path d="M -20,30 L 320,30" className="wind-line-slow" />
<path d="M -20,60 C 100,60 120,40 150,40 C 180,40 200,60 320,60" className="wind-line" /> <path d="M -20,60 C 100,60 120,40 150,40 C 180,40 200,60 320,60" className="wind-line" />
<path d="M -20,100 C 100,100 120,70 150,70 C 180,70 200,100 320,100" className="wind-line-fast" /> <path d="M -20,100 C 100,100 120,70 150,70 C 180,70 200,100 320,100" className="wind-line-fast" />
{/* Esteira turbulenta no sotavento */} {/* Esteira turbulenta no sotavento do pórtico 1 */}
<circle cx="180" cy="85" r="12" fill="none" stroke="#ef4444" strokeWidth="1.2" strokeDasharray="2 4" className="vortex-spin-cw" /> <circle cx="180" cy="85" r="12" fill="none" stroke="#ef4444" strokeWidth="1.2" strokeDasharray="2 4" className="vortex-spin-cw" />
<path d="M 160,110 Q 210,85 320,120" className="vortex-line" /> <path d="M 160,110 Q 210,85 320,120" className="vortex-line" />
{/* Pórtico Pipe-rack */} {/* Pórtico Frontal (1 Coluna com tubos encostados/apoiados) */}
<rect x="145" y="40" width="10" height="90" fill="#475569" stroke="#64748b" strokeWidth="1.5" /> <rect x="146" y="40" width="8" height="90" fill="#475569" stroke="#64748b" strokeWidth="1.5" /> {/* Pilar */}
<rect x="135" y="50" width="30" height="8" fill="#475569" stroke="#64748b" strokeWidth="1.5" /> {/* Suportes/Mãos francesas para os tubos */}
<circle cx="150" cy="45" r="12" fill="#3b82f6" stroke="#2563eb" strokeWidth="1.5" /> {/* Tubo */} <line x1="135" y1="55" x2="146" y2="55" stroke="#64748b" strokeWidth="3" />
<circle cx="150" cy="75" r="8" fill="#f59e0b" stroke="#d97706" strokeWidth="1.5" /> {/* Tubo */} <line x1="135" y1="85" x2="146" y2="85" stroke="#64748b" strokeWidth="3" />
{/* Tubos */}
<circle cx="140" cy="45" r="10" fill="#3b82f6" stroke="#2563eb" strokeWidth="1.5" />
<circle cx="140" cy="77" r="8" fill="#f59e0b" stroke="#d97706" strokeWidth="1.5" />
</svg> </svg>
</div> </div>
<p className="text-[10px] text-muted-foreground leading-snug">Vento limpo atinge o pórtico frontal e suas tubulações com 100% da velocidade. Arrasto máximo (Ca Frontal).</p> <p className="text-[10px] text-muted-foreground leading-snug">Vento limpo atinge o pórtico frontal e suas tubulações com 100% da velocidade. Arrasto máximo (Ca Frontal).</p>
@@ -729,34 +734,34 @@ export function WindFlowGrid2D({ type }: WindFlowGrid2DProps) {
<svg viewBox="0 0 300 150" className="w-full h-full"> <svg viewBox="0 0 300 150" className="w-full h-full">
{styleBlock} {styleBlock}
<line x1="0" y1="130" x2="300" y2="130" stroke="#475569" strokeWidth="2" /> <line x1="0" y1="130" x2="300" y2="130" stroke="#475569" strokeWidth="2" />
<path d="M -20,30 L 320,30" className="wind-line-slow" />
<path d="M -20,60 C 80,60 100,30 150,30 C 200,30 220,60 320,60" className="wind-line" />
{/* Esteira turbulenta cobrindo pórticos traseiros */} <path d="M -20,30 L 320,30" className="wind-line-slow" />
<path d="M -20,50 C 70,50 90,35 120,35 C 160,35 180,50 320,50" className="wind-line" />
{/* Esteira turbulenta invadindo os pórticos traseiros */}
<path d="M 120,100 Q 170,60 220,100 T 320,100" className="vortex-line" /> <path d="M 120,100 Q 170,60 220,100 T 320,100" className="vortex-line" />
<path d="M 130,80 Q 180,50 230,80 T 320,80" className="vortex-line" /> <path d="M 130,80 Q 180,50 230,80 T 320,80" className="vortex-line" />
<circle cx="150" cy="90" r="15" fill="none" stroke="#ef4444" strokeWidth="1.2" strokeDasharray="2 4" className="vortex-spin-cw" /> <circle cx="140" cy="95" r="12" fill="none" stroke="#ef4444" strokeWidth="1.2" strokeDasharray="2 4" className="vortex-spin-cw" />
<circle cx="210" cy="85" r="15" fill="none" stroke="#ef4444" strokeWidth="1.2" strokeDasharray="2 4" className="vortex-spin-ccw" /> <circle cx="190" cy="85" r="14" fill="none" stroke="#ef4444" strokeWidth="1.2" strokeDasharray="2 4" className="vortex-spin-ccw" />
{/* Pórticos Múltiplos */} {/* Pórticos Múltiplos interligados */}
{/* Pórtico 1 */} {/* Travamentos longitudinais (Vigas) */}
<g transform="translate(80, 0)"> <line x1="100" y1="60" x2="228" y2="60" stroke="#94a3b8" strokeWidth="4" />
<rect x="0" y="40" width="10" height="90" fill="#475569" stroke="#64748b" strokeWidth="1.5" /> <line x1="100" y1="90" x2="228" y2="90" stroke="#94a3b8" strokeWidth="4" />
<rect x="-10" y="50" width="30" height="8" fill="#475569" stroke="#64748b" strokeWidth="1.5" />
<circle cx="5" cy="45" r="12" fill="#3b82f6" stroke="#2563eb" strokeWidth="1.5" /> {/* Tubulações apoiadas nos travamentos */}
</g> <circle cx="130" cy="50" r="10" fill="#3b82f6" stroke="#2563eb" strokeWidth="1.5" />
{/* Pórtico 2 */} <circle cx="160" cy="50" r="10" fill="#3b82f6" stroke="#2563eb" strokeWidth="1.5" />
<g transform="translate(140, 0)"> <circle cx="190" cy="50" r="10" fill="#3b82f6" stroke="#2563eb" strokeWidth="1.5" />
<rect x="0" y="40" width="10" height="90" fill="#64748b" stroke="#94a3b8" strokeWidth="1.5" opacity="0.8" />
<rect x="-10" y="50" width="30" height="8" fill="#64748b" stroke="#94a3b8" strokeWidth="1.5" opacity="0.8" /> <circle cx="145" cy="82" r="8" fill="#f59e0b" stroke="#d97706" strokeWidth="1.5" />
<circle cx="5" cy="45" r="12" fill="#3b82f6" stroke="#2563eb" strokeWidth="1.5" opacity="0.8" /> <circle cx="175" cy="82" r="8" fill="#f59e0b" stroke="#d97706" strokeWidth="1.5" />
</g> <circle cx="205" cy="82" r="8" fill="#f59e0b" stroke="#d97706" strokeWidth="1.5" />
{/* Pórtico 3 */}
<g transform="translate(200, 0)"> {/* Colunas Verticais */}
<rect x="0" y="40" width="10" height="90" fill="#94a3b8" stroke="#cbd5e1" strokeWidth="1.5" opacity="0.6" /> <rect x="96" y="40" width="8" height="90" fill="#475569" stroke="#64748b" strokeWidth="1.5" />
<rect x="-10" y="50" width="30" height="8" fill="#94a3b8" stroke="#cbd5e1" strokeWidth="1.5" opacity="0.6" /> <rect x="156" y="40" width="8" height="90" fill="#64748b" stroke="#94a3b8" strokeWidth="1.5" opacity="0.9" />
<circle cx="5" cy="45" r="12" fill="#3b82f6" stroke="#2563eb" strokeWidth="1.5" opacity="0.6" /> <rect x="216" y="40" width="8" height="90" fill="#94a3b8" stroke="#cbd5e1" strokeWidth="1.5" opacity="0.8" />
</g>
</svg> </svg>
</div> </div>
<p className="text-[10px] text-muted-foreground leading-snug">Pórticos sucessivos ficam imersos na esteira turbulenta do primeiro (Fator de proteção η). A carga neles é drasticamente atenuada.</p> <p className="text-[10px] text-muted-foreground leading-snug">Pórticos sucessivos ficam imersos na esteira turbulenta do primeiro (Fator de proteção η). A carga neles é drasticamente atenuada.</p>