У меня есть «ящик», сделанный из двух трехмерных векторов. Один для переднего нижнего левого угла и один для заднего-верхнего правого угла.Проверьте, существует ли вектор между двумя другими
Есть ли какой-либо простой способ проверить, находится ли третий трехмерный вектор внутри этой «коробки»?
Сначала я написал simething как (псевдопользователей):
p = pointToCompare;
a = frontLowerLeft;
b = backUpperRight;
if(p.x >= a.x && p.x <= b.x && p.y >= a.y ...
Но это работает только тогда, когда все координаты положительны, что они не всегда будут. Должен ли я делать что-то подобное выше, или есть лучший/более простой способ сделать этот расчет?
Если вы хотели бы знать, что это вектор, и это метод я использую: http://www.jmonkeyengine.com/doc/com/jme/math/Vector3f.html
Этот подход должен работать даже для отрицательных координат! Единственный случай, в котором он не будет работать, - это то, что ваши координаты ящика не являются действительно передними, нижними и нижними и верхними правыми. –
Это звучит недостаточно для меня. Является ли поле принятым по оси? –
Ошибка у меня. Описанный метод работает даже с отрицательными координатами. И да, ящик выравнивается по оси. – EClaesson