我想计算点是否接近矩形的对角线。 矩形表示为两个点(最小值和最大值)。现在我有第三点,我想检查是否靠近对角线。
if (minBound < pointVector2 && pointVector2 < maxBound) {
CheckIfIsNearTheDiagonal(50, true);
}
minBound
和maxBound
是边界点(Vector2
)
我想检查pointVector2
点与(特定)对角线的距离。距离与参数maxDistance相比较,并返回if在对角线周围的范围内。
bool CheckIfIsNearTheDiagonal(float maxDistance, bool isLeftDownToRightUp ){
// Somehow count distance
return distance < maxDistance
}
有没有简单的方法,或者我必须计算一条线的方程的一般形式和点与线之间的距离?
答案 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));
}