From 03d819a6c13ad5f61b986a848814fc799c801a24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Mon, 11 Aug 2025 11:08:47 -0500 Subject: [PATCH] feat: dog --- packages/i18n/strings/en.json | 1 + .../components/FlexibilityCanvas.tsx | 4 +- .../components/FlexibilityCard.tsx | 47 +++++++++++++++++-- .../GunFlexibilityVisualizer/index.tsx | 10 +++- 4 files changed, 54 insertions(+), 8 deletions(-) diff --git a/packages/i18n/strings/en.json b/packages/i18n/strings/en.json index ca1d3301c..3098a0222 100644 --- a/packages/i18n/strings/en.json +++ b/packages/i18n/strings/en.json @@ -917,6 +917,7 @@ "flexibility": { "yaw": "Yaw", + "pitch": "Pitch", "depression": "Depression", "elevation": "Elevation" } diff --git a/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/components/GunFlexibilityVisualizer/components/FlexibilityCanvas.tsx b/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/components/GunFlexibilityVisualizer/components/FlexibilityCanvas.tsx index 984919dbf..e62bc8523 100644 --- a/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/components/GunFlexibilityVisualizer/components/FlexibilityCanvas.tsx +++ b/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/components/GunFlexibilityVisualizer/components/FlexibilityCanvas.tsx @@ -6,11 +6,11 @@ export const zoom = 60; export function FlexibilityCanvas() { return ( diff --git a/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/components/GunFlexibilityVisualizer/components/FlexibilityCard.tsx b/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/components/GunFlexibilityVisualizer/components/FlexibilityCard.tsx index 843ba4375..39ba56a28 100644 --- a/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/components/GunFlexibilityVisualizer/components/FlexibilityCard.tsx +++ b/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/components/GunFlexibilityVisualizer/components/FlexibilityCard.tsx @@ -1,7 +1,7 @@ import { literals } from '@blitzkit/i18n'; import { Box } from '@radix-ui/themes'; import { useRef, useState } from 'react'; -import { radToDeg } from 'three/src/math/MathUtils.js'; +import { clamp, degToRad, radToDeg } from 'three/src/math/MathUtils.js'; import { awaitableModelDefinitions } from '../../../../../../../../core/awaitables/modelDefinitions'; import { DEFAULT_PITCH_TRANSITION, @@ -20,7 +20,11 @@ const ANGLE_COEFFICIENT = 1 / 10; const modelDefinition = await awaitableModelDefinitions; function mag(x: number) { - return ((2 / Math.PI) * Math.atan(ANGLE_COEFFICIENT * x) + 1) / 2; + return (1 / Math.PI) * Math.atan(ANGLE_COEFFICIENT * x) + 1 / 2; +} + +function magInverse(y: number): number { + return (1 / ANGLE_COEFFICIENT) * Math.tan(Math.PI * y - Math.PI / 2); } function c(thetaDeg: number, m = 1) { @@ -32,6 +36,7 @@ export function FlexibilityCard() { const { strings } = useLocale(); const [yaw, setYaw] = useState(0); + const [pitch, setPitch] = useState(0); const [minPitch, setMinPitch] = useState(0); const [maxPitch, setMaxPitch] = useState(0); @@ -146,6 +151,10 @@ export function FlexibilityCard() { d += `Z`; + const r = mag(radToDeg(-pitch)); + const dotX = r * Math.sin(yaw); + const dotY = r * Math.cos(yaw); + return ( @@ -274,6 +292,19 @@ export function FlexibilityCard() { /> + + + + ); diff --git a/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/components/GunFlexibilityVisualizer/index.tsx b/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/components/GunFlexibilityVisualizer/index.tsx index b5fd2a3ee..1aeb9d51a 100644 --- a/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/components/GunFlexibilityVisualizer/index.tsx +++ b/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/components/GunFlexibilityVisualizer/index.tsx @@ -1,4 +1,5 @@ import { Box, Card, Flex } from '@radix-ui/themes'; +import { Var } from '../../../../../../../core/radix/var'; import type { MaybeSkeletonComponentProps } from '../../../../../../../types/maybeSkeletonComponentProps'; import { FlexibilityCanvas } from './components/FlexibilityCanvas'; import { FlexibilityCard } from './components/FlexibilityCard'; @@ -10,7 +11,14 @@ export function GunFlexibilityVisualizer({ - + {!skeleton && }