Здравствуйте Аноним, Вы писали:
А>Огромный thanx за исходники, но к сожалению нет сил и времени в них разбираться. Не могли бы вы объяснить — в идеале у нас есть например точка с float x, float y координатами, которой мы можем нарисовать любой примитив — line, circles, splines or anything else. Как сделать ее antianliasing'овой?
Нет ничего проще. Вычисляешь площадь части пиксела (в общем случае, площадь трапеции, в частном — площадь прямогугольного треугольника), занятую телом фигуры. Прзрачность пиксела устанавливаешь пропорционально этой площади. Точнее, не совсем пропорционально — как правило, требуется еще и гамма-коррекция. Одной точки здесь не достаточно — надо знать вектор, а так же, по какую сторону от него находится тело фигуры. Далее. Через один пиксел может проходить сколько угодно границ. Что делать в этом случае? Вершины полигонов тоже надо обработать корректно — там надо в общем случае вычислять площадь пяти- или шестиугольника, причем невыпуклого. Алгоритм, который я использую, отрабатывался в течение полугода совместно с автором FreeType (David Turner,
http://www.freetype.org). Apple, Adobe и прочие монстры над этим вообще годами работают. Если нет сил и времени разбираться, но есть силы сочинить нечто подобное с нуля, то я снимаю шляпу