美文网首页
点到线段的距离

点到线段的距离

作者: 杨树叶的杨 | 来源:发表于2018-01-07 23:10 被阅读0次

点到直线公式计算的是点和直线之间的关系,而不是点和线段之间的关系
需要额外的判断,点在线段上的投影点是否位于线段内部,是才可以采用点到直线的公式

public static float distancePoint2LineSeg(Vector3 point, Vector3 linePoint1, Vector3 linePoint2)
{
Vector3 v12 = linePoint2 - linePoint1;
Vector3 v10 = point - linePoint1;
float f = Vector3.Dot (v12, v10);
if (f < 0)
{
return Vector3.Distance (point, linePoint1);
}
float d = Vector3.Dot (v12, v12);

    if (f > d)
    {
        return Vector3.Distance (point, linePoint2);
    }

    f = f / d;
    Vector3 pointD = linePoint1 + f * v12;
    return Vector3.Distance (point, pointD);
}

简单的办法,即满足公式 线段 PA的长度 + PB的长度 - AB的长度 < X 即可,
即以A,B为焦点的一个椭圆范围内(椭圆上的任一点到两个焦点之间的长度的和是固定值),这个方法只用计算三个线段的长度就可以了,简单,计算量小,且效果很好。

float radius = Vector2.Distance (posB, posC);
float disA = Vector2.Distance (posA, posB);
float disB = Vector2.Distance (posA, posC);

return disA + disB - radius <= radius * 1.5;

相关文章

  • 点到线段的距离

    点到线段分为三种情况 1 如图,向量AB与AP的点积小于0时,距离为AP的模 2 如图,向量AB与BP的点积大于0...

  • 点到线段的距离

    点到直线公式计算的是点和直线之间的关系,而不是点和线段之间的关系需要额外的判断,点在线段上的投影点是否位于线段内部...

  • 点到线段的最短距离

    点到线段最短距离的运算与点到直线的最短距离的运算二者之间存在一定的差别,即求点到线段最短距离时需要考虑参考点在沿线...

  • 求点到线段的距离、垂足、最近点

    直线方程 直线的一般式方程: Ax + By + C = 0平行于x轴时,A=0,C≠0;平行于y轴时,B=0,C...

  • 点到线段的垂足

    一、解析函数求解 第一种: 设直线方程为ax+by+c=0,点坐标为(m,n) 则垂足为((b*b*m-a*b*...

  • 空间上点到线段的最短距离

  • 1 几何学中用到的一些方法

    1.点到直线的距离 2.获取点在直线上的垂直投影点 3.获取两直线交点 4.获取线段与直线的交点 5.点是否在线段...

  • 数学课

    点到直线距离: 垂线段最短 学生理解不了。 师:从村庄点P修一条小路,董俊博是村长,使人们自村庄P出发到公路的距离...

  • 直线垂直,垂线的性质,点到直线的距离(二)

    欢迎关注公z号:沈阳奥数 垂线段最短(点到直线的距离) 如图,直线AB外的点P,过点P做PC⊥AB于点C,那么PC...

  • 点到直线的距离

    点到直线的距离即为平行四边形面积除以底的商(外积除以AB模长的积的绝对值)

网友评论

      本文标题:点到线段的距离

      本文链接:https://www.haomeiwen.com/subject/yqqvnxtx.html