计算两个圆上两点之间的切线弧

时间:2010-11-04 20:19:51

标签: computational-geometry geometry geometric-arc

如何计算两个圆圈之间的弧线?圆弧必须与圆上的两个点相切。

这是一张说明它的图片。我正在尝试编码和计算橙色弧和蓝色弧。

alt text

更多详情:

您的applet应该有2种模式:2D和3D。用户应该可以通过按空格键在它们之间切换。在2D模式中,用户可以编辑四个控制点A,B,C和D的位置,并且应该看到由这些点定义的4个圆弧如下。红色圆弧位于圆心A和半径|| AB ||上。绿弧位于中心C和半径|| CD ||的圆上。橙色圆弧位于支撑圆上,该圆与B处红色圆弧的支撑圆相切,并且在E点处与绿色圆相切,您的代码必须计算该点。该支撑圆不应该分开A和C(即A和C必须都在该圆中或在其中)。类似地,蓝色圆弧位于一个圆圈上,该圆圈不分离A和C,并且与D处的绿色圆弧的支撑圆相切,并且在某个点F处也与红色圆弧的支撑圆相切,您的程序必须计算。红色弧从F到B顺时针运行。橙色弧从B到E运行。绿色弧从E到D.蓝色弧从D回到F.这四个弧形成一个区域S的平滑边界。飞机。请注意,根据控制点的位置,橙色和蓝色弧可以分别为凹形或凸形。在下图中,蓝色弧是凹的。 (如上图)

3 个答案:

答案 0 :(得分:1)

有许多“切圆”!

alt text

答案 1 :(得分:0)

一般来说,你不能。通过AB和CE绘制直线,并将它们延伸到交点。调用交点M.当且仅当BM = EM时,您可以通过B和E绘制一条与圆相切的弧。

答案 2 :(得分:0)

设G是B和E之间弧的圆心,H是F和D之间弧的圆。

关键点是,与圆相交的直线是一条切线,当且仅当它垂直于交点处的半径时。这意味着如果您有两个相切的圆,则切点和圆的中心是共线的。

因此,这意味着中心G是由B和A定义的线与由E和C定义的线的交点。类似地,中心H是由A和F定义的线与定义的线的交点。由C和D。

鉴于这些中心,您可以从中心到切点的距离确定两个圆的半径。从那里你可以使用标准方法绘制圆弧,给出它的端点和它所属的圆。