2

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

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

minBound是边界maxBound点 ( Vector2)

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

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

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

4

1 回答 1

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));
    }
于 2013-05-15T15:42:15.657 回答