diff options
author | Elizabeth Hunt <elizabeth.hunt@simponic.xyz> | 2023-07-19 20:38:24 -0700 |
---|---|---|
committer | Elizabeth Hunt <elizabeth.hunt@simponic.xyz> | 2023-07-19 20:38:24 -0700 |
commit | 0fd9fb097552686f2257c1aa689d797e80057bd1 (patch) | |
tree | b8d0367bf7b62c049af60ace301ce1cffc08d821 /client/lib/utils/rotateVector.ts | |
download | jumpstorm-0fd9fb097552686f2257c1aa689d797e80057bd1.tar.gz jumpstorm-0fd9fb097552686f2257c1aa689d797e80057bd1.zip |
initial commit
Diffstat (limited to 'client/lib/utils/rotateVector.ts')
-rw-r--r-- | client/lib/utils/rotateVector.ts | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/client/lib/utils/rotateVector.ts b/client/lib/utils/rotateVector.ts new file mode 100644 index 0000000..82bb54d --- /dev/null +++ b/client/lib/utils/rotateVector.ts @@ -0,0 +1,15 @@ +import type { Coord2D } from "../interfaces"; + +/** + * ([[cos(θ), -sin(θ),]) ([x,) + * ([sin(θ), cos(θ)] ]) ( y]) + */ +export const rotateVector = (vector: Coord2D, theta: number): Coord2D => { + const rads = (theta * Math.PI) / 180; + const [cos, sin] = [Math.cos(rads), Math.sin(rads)]; + + return { + x: vector.x * cos - vector.y * sin, + y: vector.x * sin + vector.y * cos, + }; +}; |