Last active 2 years ago

evert's Avatar evert revised this gist 2 years ago. Go to revision

1 file changed, 17 insertions

point-on-sphere.js(file created)

@@ -0,0 +1,17 @@
1 + // Get angle on circle from mouse position
2 + function getAngleOnCircleFromOffsetMouse(evt) {
3 + const x = (evt.pageX - element.offset().left);
4 + const y = (evt.pageY - element.offset().top);
5 +
6 + // https://math.stackexchange.com/a/127615
7 + const center = { x: width / 2, y: width / 2 };
8 + const xCenter = (x - center.x);
9 + const yCenter = (y - center.y);
10 + const circlePoint = {
11 + x: center.x + radius * (xCenter / Math.sqrt(xCenter * xCenter + yCenter * yCenter)),
12 + y: center.y + radius * (yCenter / Math.sqrt(xCenter * xCenter + yCenter * yCenter)),
13 + };
14 +
15 + const angle = Math.atan2(circlePoint.y - center.y, circlePoint.x - center.x) + Math.PI / 2;
16 + return angle < 0 ? Math.PI * 2 - Math.abs(angle) : angle;
17 + }
Newer Older