Я хотел бы рассчитать, находится ли точка вблизи диагонали прямоугольника. Прямоугольник представляет собой две точки (мин. И макс.). Теперь у меня есть третий пункт, и я хотел бы проверить, находится ли он рядом с диагональю.Точка близко к диагонали
if (minBound < pointVector2 && pointVector2 < maxBound) {
CheckIfIsNearTheDiagonal(50, true);
}
minBound
и maxBound
являются пограничными пунктами (Vector2
)
Я хотел бы проверить, насколько точка pointVector2
от (специфического) по диагонали. Расстояние сравнивается с аргументом maxDistance и return if находится в диапазоне вокруг диагонали.
bool CheckIfIsNearTheDiagonal(float maxDistance, bool isLeftDownToRightUp){
// Somehow count distance
return distance < maxDistance
}
Есть ли какой-либо простой способ, или я должен рассчитать общую форму уравнения линии и расстояние между точкой и линией?
Похоже, вы уже описали простой способ. – mbeckish
Хорошо, если это самый простой способ. = ( – wolen
Вот еще один способ: изобразите треугольник от угла прямоугольника до рассматриваемой точки до точки по диагонали, на которую измеряется расстояние. Вы знаете длину одной стороны (гипотенуза треугольника, которая это линия от угла до точки, о которой идет речь). Используйте точечный продукт, чтобы получить длину линии от угла до другой точки на диагонали. Теперь, когда у вас есть две стороны треугольника, используйте теорему Пифагора, чтобы получить длина 3-й стороны. Эта конечная длина - это расстояние, которое вы ищете. – mbeckish