协助创建围绕圆弧创建框的算法

Assistance on creating algorithm for creating box around arc

我正在寻找有关创建能够计算弧边界框的算法的帮助。通常,这将是一个简单的问题。但是,我要求盒子的边缘之一是连接弧线起点和终点的线。

我在开发能够计算矩形的另外两个点的算法时遇到了困难。

这是我正在尝试计算的图片:

两个紫色的点,我需要开发一个算法来确定这两个位置。绿点是可以输入的已知点。另外,我确实知道圆弧的半径和圆心。

我需要算法来处理 AB 线垂直、具有 + 斜率和 - 斜率的不同情况。

我一直在考虑几个方向。例如,我知道通过点 E 的线平行于线 AB。因为它是平行的,这意味着它们将具有相同的斜率,并且从点 A 到紫色点的线垂直于这条线。然后我可以考虑通过 E 的线和这条垂直线的交点。

这个方法看起来很麻烦,因为那时我需要考虑线 AB 的斜率无限大且为 0 的情况。我想知道是否有某种算法可以自动解决这个问题(或者甚至不考虑AB 线的斜率)

你声称知道点 ABCDE,并且知道圆弧不超过180°(半圆)。
P1,和P2,补充bounding box的两个点-(图中,P1A上面的紫色点,P2上面那个 B).

使用向量:

E-C = vector perpendicular to segment AB', i/e subtract C from E; its magnitude is equal to the distance EC.
P1 = A + (E-C)
P2 = B + (E-C)

边界框 = 矩形 AP1P2B

如果您需要更紧密的配合,可以将 vector (E-C) 替换为 vector (D-C) 以将边界段 P1P2D

相切