如何通过鼠标光标找到圆的边缘上的点的x、y坐标?

3
我正在尝试根据鼠标位置,基于三角学,在圆的边缘上找到x、y坐标。

enter image description here

正如您从 gif 图像中看到的那样,当您移动鼠标时,三角形的顶点始终指向圆的边缘,就像我的鼠标在椭圆周围移动一样。
我正在使用 P5.js,并希望知道如何编写此代码,并感谢您能为我讲解其背后的三角学知识,这样我就可以利用这些知识并尝试更多我脑海中的可视化编程想法。

你谈论了椭圆,但是图片显示的是圆。你需要一个圆(椭圆的特殊情况),还是更一般、但也更复杂的一般情况? - ASDFGerte
更新了线程,我现在只是谈论一个单独的圆圈。 - Jason
啊,原来椭圆并不那么难 https://mathworld.wolfram.com/Ellipse-LineIntersection.html - ASDFGerte
1个回答

3
计算圆心(cxcy)到鼠标位置(mouseXmouseY)的向量。分别使用p5.VectorcreateVector()来表示向量,并通过setMag()将向量的大小更改为圆的半径radius
let v = createVector(mouseX - cx, mouseY - cy).setMag(radius);
let px = v.x + cx;
let py = v.y + cy;

分别地
let cpt = createVector(cx, cy);
let pt = createVector(mouseX, mouseY).sub(cpt).setMag(radius).add(cpt);
let px = pt.x;
let py = pt.y;

1
太棒了,这个很好用!我会尝试理解它的!干杯 - Jason

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接