点靠近对角线

时间:2013-05-15 12:53:59

标签: c# math geometry

我想计算点是否接近矩形的对角线。 矩形表示为两个点(最小值和最大值)。现在我有第三点,我想检查是否靠近对角线。

if (minBound < pointVector2 && pointVector2 < maxBound) {
    CheckIfIsNearTheDiagonal(50, true);
}

minBoundmaxBound是边界点(Vector2

我想检查pointVector2点与(特定)对角线的距离。距离与参数maxDistance相比较,并返回if在对角线周围的范围内。

bool CheckIfIsNearTheDiagonal(float maxDistance, bool isLeftDownToRightUp ){
   // Somehow count distance
   return distance < maxDistance
}

有没有简单的方法,或者我必须计算一条线的方程的一般形式和点与线之间的距离?

1 个答案:

答案 0 :(得分:2)

这将为您提供距离点p0与传递到p1和p2的线的距离:

    public double Distance(Point p1, Point p2, Point p0)
    {
        double m = (p2.Y - p1.Y) / (p2.X - p1.X);
        double q = (p1.Y * p2.X - p2.Y * p1.X) / (p2.X - p1.X);
        return Math.Abs((p0.Y - m * p0.X - q) / Math.Sqrt(1 + m * m));
    }