(corners, number, position)
| 96 | }; |
| 97 | |
| 98 | export 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 | }; |
no test coverage detected