MCPcopy Create free account
hub / github.com/TodePond/ScreenPond / getRotatedToPositionCorners

Function getRotatedToPositionCorners

source/corners.js:98–126  ·  view source on GitHub ↗
(corners, number, position)

Source from the content-addressed store, hash-verified

96};
97
98export const getRotatedToPositionCorners = (corners, number, position) => {
99 const center = getCornersCenter(corners);
100 const distances = corners.map((corner) =>
101 distanceBetweenVectors(center, corner)
102 );
103 const angles = corners.map((corner) => angleBetweenVectors(center, corner));
104
105 const oldDistance = distances[number];
106 const oldAngle = angles[number];
107
108 const newDistance = distanceBetweenVectors(center, position);
109 const newAngle = angleBetweenVectors(center, position);
110
111 const mdistance = newDistance / oldDistance;
112 const dangle = newAngle - oldAngle;
113
114 const newDistances = distances.map((distance) => distance * mdistance);
115 const newAngles = angles.map((angle) => angle + dangle);
116
117 const rotatedCorners = corners.map((corner, i) => {
118 const x = Math.cos(newAngles[i]) * newDistances[i];
119 const y = Math.sin(newAngles[i]) * newDistances[i];
120 return subtractVector(center, [x, y]);
121 });
122
123 //const rotatedCorners = getClonedCorners(corners)
124 //rotatedCorners[number] = position
125 return rotatedCorners;
126};

Callers 1

hand.jsFile · 0.90

Calls 4

distanceBetweenVectorsFunction · 0.90
angleBetweenVectorsFunction · 0.90
subtractVectorFunction · 0.90
getCornersCenterFunction · 0.85

Tested by

no test coverage detected