У меня есть динамический прямоугольник, в котором создаются 4 подтреугольника (t0-t3) (путем добавления диагоналей из вершин). Когда задана некоторая координата x | y, то какой самый быстрый способ найти соответствующий треугольник ?. Прямоугольник имеет определенное положение и размер. Мне нужен только правый «id», а не вершины треугольника, поэтому, например, в графике, когда p1 задан как позиция 0, нужно вернуть, 3 в p2 и 2 в p3, ...Как найти соответствующий поддиапазон позиции внутри прямоугольника
Один из возможных Конечно, решение было бы создать треугольники и запрос, если точка содержится в одном из них, но это похоже на очень сложное решение для чего-то простого. Я также думал о создании вектора из центра и измерения угла, но он также кажется сложным в прямоугольнике с различными размерами.
На словах: сравните наклон отрезка от нижнего левого угла прямоугольника до точки запроса с наклоном диагонали, соединяющим нижний левый угол прямоугольника с верхним правом углом. Это говорит вам, принадлежит ли точка к t0 или t3 по сравнению с t1 или t2. Аналогичным образом сравните наклон сегмента линии от нижнего правого угла к точке запроса с наклоном диагонали, соединяющей нижний правый угол с верхним левым углом. Затем вы знаете, находится ли точка в t0 или t1 по сравнению с t2 или t3. Вместе это говорит, какой из четырех треугольников находится в точке. – WhiteViking