计算两条线和两条弧

时间:2015-09-30 08:16:07

标签: geometry line

首先我有两个问题,如何计算两条线之间的最小距离。 有关详细信息,我在此处附加图片。

enter image description here

在图像中描述具有起点和终点的线。我已经有两条线的起点和终点,但我不知道如何计算两条线之间的最小距离。

另一个问题是如何计算两个弧之间的最小距离。 我在这附加另一张图片

enter image description here

对于弧线,我有起点,终点和中心点,我也有开始和结束角度。

此链接包含更多内容 - Shortest distance between a point and a line segment

我也从上面的链接中获得了帮助。

enter image description here

这是我现在面临的另一个问题。在这种情况下如何计算两个弧之间的最小距离?

任何想法如何解决这两个问题?

2 个答案:

答案 0 :(得分:1)

让两个部分分别为AB和CD。他们的参数方程可以写成

P = A + u AB, Q = C + v CD, with u, v in [0, 1].

您希望最小化(平方)距离

PQ² = (CA + u AB - v CD)², under the given constraints,

你可以用

取消一阶导数
(CA + u AB - v CD).AB = 0
(CA + u AB - v CD).CD = 0

解决2x2系统后,你会得到一对(u, v)。如果两个变量都落在[0,1]中,则会有一个交点,距离为0

否则,将u和/或v钳位到范围[0, 1]的相关范围并计算相应的距离。

如果一个变量被钳制,则距离在端点和段之间;如果两个被夹住,它就在两个端点之间。

弧可采用类似的方法(使用三角函数),并导致线性约束下的优化问题。但不容易处理,因为目标函数是非线性的。

我们也可以按照以下步骤进行:

  • 找到使整个圆圈之间的距离最短的点。有两种情况:

    • 圆圈在两个地方交叉

    • 圆圈不相交;最短距离是两个圆的交点和中心线之间的距离。

  • 然后通过角度比较检查这些点是否属于弧。如果是,则完成(距离为0或交叉点之间的距离)。

  • 否则,请考虑弧对另一个圆的端点。最近点是圆与穿过点和中心的直线的交点。如果交点属于弧,请保持点与交点之间的距离。对所有四个组合端点/弧重复此操作并保留最近的一对。

  • 如果未找到有效对,请保持最短的端点/端点距离。

图片显示了可以考虑的距离。绿色,端点/圆圈;红色,端点/端点。在这种情况下,圆/圆距离在它们相交时为零。如果它连接弧内的两个点,则可以考虑距离。

enter image description here

答案 1 :(得分:-1)

两条相交线之间的距离为0

否则,你想要的是计算一条线到另一条线的端点。 如果要计算点和线之间的距离:

  

线段的长度将点连接到线并垂直于线。

对于弧线,我认为弧线是圆弧的一部分,它们之间的距离是它们的中心点之间的距离减去它们的半径。

您可以在这里找到更多信息:Calculate the minimum distance between two given circular arcs

示例example