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

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

alt text

更多细节:

您的小程序应该有2种模式:2D和3D。用户应该能够通过按空格栏来切换它们。在2D模式下,用户可以编辑四个控制点A,B,C和D的位置,并应看到这些点定义的4个圆弧,如下所示。红色弧位于中心A和半径|| AB ||的圆上。绿色弧位于中心C和半径|| CD ||的圆上。橙色弧位于一个支撑圆上,该圆圈与B处的红色弧的支撑圆相切,并在一个点E处与绿色圆圈切线,您的代码必须计算。这个支撑圈不应分开A和C(即A和C,必须在该圆圈中或从中分离出来)。同样,蓝色弧位于一个不会分开A和C的圆上,并且与D处的绿色弧的支撑圈相加计算。红色的弧从F到B中顺时针延伸。橙色弧线从B到E。绿色弧线从E到D。BlueArc从D向后运行。飞机。请注意,根据控制点的位置,橙色和蓝色的弧形可以分别为凹形或凸。在下图中,蓝色弧线是凹的。 (如上图)

有帮助吗?

解决方案

有许多“切线圈”!

alt text

其他提示

一般来说,你不能。通过AB和CE绘制直线,并将其扩展到交叉点。调用交叉点M。您可以在且仅在BM = EM时通过B和E绘制一个与圆相切的弧。

令G为B和E之间的电弧的圆圈中心。

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

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

给定这些中心,您可以从从中心到切线点的距离确定两个圆的半径。从那里,您可以使用标准方法绘制弧及其端点及其圆圈的一部分。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top