Проверьте, принадлежит ли точка области, ограниченной кривой Безье, используя GDI
Я хочу проверить, находится ли указанная координата внутри области, ограниченной кривой Безье. Есть ли конкретная функция в GDI, которую я могу использовать? Если нет, как я могу сделать это вручную? Моя кривая Безье задается своими точками.
1 ответ
Решение
Сколько запросов вы собираетесь сделать?
Если производительность не очень важна, вы можете создать область GDI и проверить, находится ли точка внутри:
BeginPath
draw enclosed path with PolyBezier and other functions
EndPath
PathToRegion
PtInRegion
Если точек запроса много, было бы лучше сделать аналитическое решение - рассчитать количество пересечений (горизонтального) луча от точки с кривой Безье (необходимо решение кубического уравнения). Если это число нечетное - точка находится внутри (есть некоторые тонкости с двойными корнями на кривых вершинах и т. Д.)