Вот есть четырехугольник, заданный 4мя точками. Как его залить? Положем, что есть быстрая функция, которая может строчку от X1 до X2 сверхбыстро залить. При этом четырехугольник может быть невыпуклым (с пересеченими).
В голове два варианта - взять
Xmin = min(X1, X2, X3, X4);
Xmax = max(X1, X2, X3, X4);
аналогично для Y
потом цикл от Xmin до Xmax, вложенный от Ymin до Ymax. Каждый раз проверять, внутри точка или нет, если да - закрасить.
второй вариант - как-то извратиться и использвать быструю функцию.
Что скажете?
P.S. Алгоритм заливки не подходит, так как под ним может быть изображение.