点到线段的距离

Posted Heilce

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了点到线段的距离相关的知识,希望对你有一定的参考价值。

double PointToSegDist(double x, double y, double x1, double y1, double x2, double y2)
{
    double cross = (x2 - x1) * (x - x1) + (y2 - y1) * (y - y1);
    if (cross <= 0) return sqrt((x - x1) * (x - x1) + (y - y1) * (y - y1));

    double d2 = (x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1);
    if (cross >= d2) return sqrt((x - x2) * (x - x2) + (y - y2) * (y - y2));

    double r = cross / d2;
    double px = x1 + (x2 - x1) * r;
    double py = y1 + (y2 - y1) * r;
    return sqrt((x - px) * (x - px) + (py - y) * (py - y));
}

  

以上是关于点到线段的距离的主要内容,如果未能解决你的问题,请参考以下文章

[Processing]点到线段的最小距离

点到线段的距离

平面上给定n条线段,找出一个点,使这个点到这n条线段的距离和最小。

HDU 1173 采矿

POJ 1584 A Round Peg in a Ground Hole 判断凸多边形 点到线段距离 点在多边形内

POJ - 1584 A Round Peg in a Ground Hole(判断凸多边形,点到线段距离,点在多边形内)