У меня есть двумерная сетка, в которой центры пикселей находятся на пересечении двух линий половинной сетки, как показано ниже.
У меня также есть фигура, нарисованная на этой сетке. В моем случае форма представляет собой глиф и описывается сегментами. У каждого сегмента есть начальная точка, конечная точка и несколько точек вне кривой. Эти сегменты могут быть квадратичными кривыми или линиями. Важно то, что я могу знать точки и функции, составляющие контур фигуры.
Правило для определения того, какие пиксели должны быть включены, простое: если центр пикселя попадает в контур фигуры, включите этот пиксель. На следующем рисунке показан пример применения этого правила.
Теперь проблема, с которой я сталкиваюсь, связана с антиалиасингом. Я хотел бы рассчитать, какой процент площади данного пикселя попадает в контур. В качестве примера, на изображении выше, я нарисовал красный квадрат вокруг пикселя, который будет на 15% внутри фигуры.
Цель этого состоит в том, чтобы я мог затем включить этот пиксель только на 15% и таким образом получить более четкие края для окончательного растрового изображения.
Хотя мне удалось найти алгоритмы для определения того, попадает ли данная точка в многоугольник ( приведение лучей ), я не смог найти ничего об этой проблеме.
Может кто-нибудь подсказать мне какие-то алгоритмы для достижения этой цели? Также дайте мне знать, если я иду об этой проблеме неправильно!