c# - 点靠近对角线

标签 c# math geometry

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

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));
    }

关于c# - 点靠近对角线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16565547/

相关文章:

c# - 在 C# 中的 WinCE 上获取设备的 CPU 使用率和空闲 RAM

javascript - 如何找到最接近的 N 值。进入序列?

java - 计算移动的球与移动的线/多边形(2D)碰撞的时间

java - 将图形对象旋转 360 度

c# - 在 VS 2010 中创建新的 C# 项目时出现 "Add to Source Control"选项

c# - 正则表达式匹配多个字符串

math - 您的伪随机数生成器 (PRNG) 是否不够随机?

algorithm - 生成序列的简单算法/方法

java - 如何使用 jmonkeyengine3 (或者可能是另一个库)找到 3D 空间中两条线的交点?

c# - 使用 DrawPolygon 在 C# 中创建单个六边形