要为 CAD 系统编写一个小型扩展。至此,系统可以创建与两个圆相切的指定半径的圆弧。给出了圆的半径 r1 和 r2 以及圆心之间的距离 D。您可以在网络上找到各种解决方案。 现在与圆相切的圆弧应该穿过点 Q(当前鼠标指针)。应计算圆弧半径r和接触点P1、P2。
到目前为止,我还没有找到一个封闭形式的解决方案,但只能通过迭代 r 来解决问题 - 就 CAD 系统而言,这不是最好的解决方案,因为它有时非常慢而且不那么精确。有人可以帮忙吗?
为了简单起见,如果左圆中心是
(0,0)
,那么我们可以写出三个未知数的三个二次方程组 mx, my, R
(mx-qx)^2+(my-qy)^2=R^2
mx^2+my^2=(R-r1)^2
(D-mx)^2+my^2=(R-r2)^2
你可以尝试用手或一些数学包(如Maple、Mathematica)来解决这个系统,我认为公式会很长。
这样的系统有 6 个(我认为)解决方案(有些可能是想象的) - 想要一个,在你的圆之间有一个外切线的小圆,有一个外切线和一个内切线的大圆等等,所以你必须分开想要的解决方案(
my
的符号不同于qy
等)