🚀 Auto-deploy: BrainWind atualizado em 30/07/2026 10:38:28
This commit is contained in:
@@ -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) === */}
|
||||||
|
|||||||
Reference in New Issue
Block a user