Extract element functions into modules (#207)

This commit is contained in:
Gasim Gasimzada 2020-01-06 19:34:22 +04:00 committed by GitHub
parent e3eef04e00
commit 01805f734d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 547 additions and 474 deletions

View file

@ -36,3 +36,19 @@ export function distanceBetweenPointAndSegment(
const dy = y - yy;
return Math.hypot(dx, dy);
}
export function rotate(
x1: number,
y1: number,
x2: number,
y2: number,
angle: number
) {
// 𝑎𝑥=(𝑎𝑥𝑐𝑥)cos𝜃(𝑎𝑦𝑐𝑦)sin𝜃+𝑐𝑥
// 𝑎𝑦=(𝑎𝑥𝑐𝑥)sin𝜃+(𝑎𝑦𝑐𝑦)cos𝜃+𝑐𝑦.
// https://math.stackexchange.com/questions/2204520/how-do-i-rotate-a-line-segment-in-a-specific-point-on-the-line
return [
(x1 - x2) * Math.cos(angle) - (y1 - y2) * Math.sin(angle) + x2,
(x1 - x2) * Math.sin(angle) + (y1 - y2) * Math.cos(angle) + y2
];
}