@Tenebrius

Почему простая проверка выводит не то, что хотелось бы?

Есть прямоугольник, заданный двумя точками. Левая верхняя (x1; y1) и правая нижняя (x2; y2). И есть третья точка (x3; y3). Нужно проверить, находится ли точка внутри прямоугольника. Простая задача, но что-то у меня пошло не туда...

jsfiddle.net/k9qyqmd4/2
Основная функция clash() принимает 6 параметров - координаты одного угла, второго и координаты точки. И путем обычных if'ов это все сравнивается. Если точка внутри, выдает "1", если нет - "0". Почему-то при определенных входных параметрах, результат выдается неожиданный для меня.

Я, видимо, жестко затупил, но в чем ошибка в упор не вижу. Упростил функцию по максимуму, но проблему не обнаружил.
Поможите, кто чем может.

P.S. в примере, при заданных параметрах, должен выдаваться ноль.
P.P.S. Ось Y идет сверху вниз. Х - слева направо.
  • Вопрос задан
  • 2256 просмотров
Решения вопроса 2
wkololo_4ever
@wkololo_4ever
Проблема в этом
if(y1<y3)
		    {
                if(y3<y2)
			    {
			        ret=1;	
			    }
		
		    }

Должно быть y1>y3 и y3>y2
Ответ написан
@vsvladimir
x1=x1.toFixed(0); x1 теперь не число, а строка.

Потом идет сравнение строк, а не чисел. "284" < "62"
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы