🚀 Auto-deploy: BrainWind atualizado em 30/07/2026 10:38:28

This commit is contained in:
2026-07-30 10:38:28 +00:00
parent dc90b289c5
commit 8d5f70e94a
+8 -5
View File
@@ -51,11 +51,13 @@ function SignModel({
const angleToNormalRad = ((90 - alpha) * Math.PI) / 180; const angleToNormalRad = ((90 - alpha) * Math.PI) / 180;
const arrowDir = useMemo(() => new THREE.Vector3(Math.cos(angleToNormalRad), 0, Math.sin(angleToNormalRad)), [angleToNormalRad]); const arrowDir = useMemo(() => new THREE.Vector3(Math.cos(angleToNormalRad), 0, Math.sin(angleToNormalRad)), [angleToNormalRad]);
// Posição da seta no plano da placa (inicia no ponto de aplicação com a excentricidade ao longo de Z) // Posição alvo da seta no plano da placa (inicia no ponto de aplicação com a excentricidade ao longo de Z)
const arrowStart = useMemo( // Afastada um pouco do muro para não encostar fisicamente
() => new THREE.Vector3(0, baseY + height / 2, applicationPoint), const arrowStart = useMemo(() => {
[applicationPoint, height, baseY], const targetPos = new THREE.Vector3(0, baseY + height / 2, applicationPoint);
); const offset = arrowDir.clone().multiplyScalar(-0.8);
return targetPos.add(offset);
}, [applicationPoint, height, baseY, arrowDir]);
// Cor da placa: Azul (Pressão/Empuxo) com intensidade proporcional ao Cf // Cor da placa: Azul (Pressão/Empuxo) com intensidade proporcional ao Cf
const plateColor = useMemo(() => { const plateColor = useMemo(() => {
@@ -122,6 +124,7 @@ function SignModel({
<WindArrow <WindArrow
target={arrowStart} target={arrowStart}
direction={arrowDir} direction={arrowDir}
scale={1.8}
/> />
{/* === LINHAS DE COTA (CAD-Style Dimensions) === */} {/* === LINHAS DE COTA (CAD-Style Dimensions) === */}