Если я правильно понял, тебе хотел алгоритм который закрашивал бы не выпуклые области. Один и способов это скан лайн. Делается просто. Вначале строим баундинг бокс нашей области (x0, y0) — (x1, y1). Теперь в цикле для y в пределах от y0 до y1, идем по горизонтальной линии (x изменяется от x0 до x1) и считать пересечения с гранями области. Попутно, если в текущий момент у нас нечетное число пересечений с краем области, закрашивая точку (x, y).