поискал на форуме, нашёл темы: "Как проверить принадлежность точки (X, Y) к треугольной области (X1, Y" http://www.wasm.ru/forum/viewtopic.php?id=20401&p=1 и "Алгоритм попадения точки в регион." http://www.wasm.ru/forum/viewtopic.php?id=16590. Посоветуйте как сделать.
t00x Разбить четырёхугольник на два треугольника и проверить на принадлежность точки хотя бы одному из треугольников.
надеюсь понятно, что оптимизация по скорости. сначала думал разбивать на 4 и проверять принадлежность к двум треугольникам.
t00x А причем тут треугольники ? Метод обхода контура (и его модификация - сумма площадей треугольников) и метод луча достаточно подробно разжеваны по приведенным выше ссылкам и работают они ес-но с любым числом сторон - поэтому я и не понимаю какого такого совета ты ждешь ) Перечитай внимательнее первую ссылку и сообразишь как добавить еще одну сторону в обход конутра
Если три вершины четырёхугольника образуют треугольник, в котором находится четвёртая вершина. это наверное лучший вариант из всех.
Э-э, да я ступил, обход контура и баланс площадей рулят только для выпуклых многоугольников. Ну тогда действительно остается или проверять попадание в 2 треугольника или использовать универсальный метод луча
Лучше использовать метод луча - во-первых, он подходит для произвольных областей (в том числе многосвязных), и, во-вторых, легко реализуем.