点靠近对角线

本文关键字:对角线 靠近 | 更新日期: 2023-09-27 18:13:35

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

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

minBoundmaxBound为边界点(Vector2)

我想检查点pointVector2离(特定)对角线有多远。与参数maxDistance比较的距离,并返回在对角线附近的范围内。

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

是否有简单的方法或者我必须计算直线方程的一般形式以及点与直线之间的距离?

点靠近对角线

这给出了点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));
    }