algorithm - 与另一条线和另一个圆相切的圆

标签 algorithm geometry

我正在寻找一种算法,以伪代码为例,找到一个圆 c1(c1x,c1y) 给定半径 r 与一条线相切 l 和另一个圆c2(c2x,c2y);这个圆与同一条线相切。

谢谢,

最佳答案

一方面,距离第一个圆 r2 处的点的轨迹是半径为 (r1+r2) 且与第一个圆心 (C) 相同的圆圆圈。 OTOH,它是一条线,在 r2 的偏移距离处平行于给定线 (A B)。它们的交点 (F) 是所寻找的圆的中心。

enter image description here

显然有两个这样的交点。

另一种可能性是让两个圆在第一个圆与直线相交的点 (D) 相交。要找到这样的第二个圆的中心 (E),只需将 (c1,r1) 圆“向下”(在图上)的半径延长 (r2-r1)。

即要找到 E,请从 C 点“向下”移动 (r2-r1) 的距离(已签名)。要找到 F,请“向右”移动 sqrt( (r1+r2)^2 - (r1-r2)^2 ) == 2*sqrt(r1*r2) 来自 E

关于algorithm - 与另一条线和另一个圆相切的圆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15404730/

相关文章:

c++ - 在增量凸包 3D 期间获取点的地平线

c++ - 优化 C 代码

c# - WPF 绘图上下文 : How to keep existing content when draw new content?

python - 给定顶点 i 在 pylab 中绘制 3d 曲面

algorithm - 从不同群体中挑选的背包

python-3.x - 这个函数的时间复杂度是多少,它生成一个数字的所有唯一因子组合?

algorithm - Prim 的 Treaps 算法

css - 具有百分比宽度的响应式 CSS 三 Angular 形

javascript - 我如何获得每个矩形的坐标?

c# - 为什么我的圈子的值为零?