2015-06-06 2 views
2

Вопроса

Я использую PIL, и у меня есть часть моего кода, который необходимо найти, какие точки находятся за пределами четырехугольника. Если у меня есть такие точки, как [(50, 20), (230, 40), (200, 190), (100, 200)], как я могу быстро заполнить все точки за пределами этой области черным?Найти все точки вне четырехугольника (не прямоугольник)

Я хочу функцию как addBorder(points, img), где addBorder([(50, 20), (230, 40), (200, 190), (100, 200)], Image.open('lenna.png')) бы вернуться:

output

То, что я нашел до сих пор

This answer выглядел полезным, пока я не понял, что ссылка была мертва. Если кто-нибудь знает, если страница, связанная в этом ответе, все еще существует где-то в другом месте, мне бы очень хотелось ее увидеть. Я попробовал несколько алгоритмов, прежде чем понял, что они работают только для прямоугольников.

Может ли кто-нибудь мне помочь?

+4

Любая точка либо находится между двумя отрезками линии, либо снаружи. Зная, что вы должны это понять. Это не сложная проблема. –

+2

Страница, связанная с этим ответом, [архивируется здесь] (https://web.archive.org/web/20130125232758/http://wiki.processing.org/w/Find_which_side_of_a_line_a_point_is_on). – Kkelk

ответ

0

Я не нашел способ, который не включает проверку каждого пикселя, но я нашел свой ответ в правилах для заполнения. Я использовал even-odd rule.

Смежные вопросы