Горизонтальные и вертикальные линии не нуждаются в сглаживании(рисуем их отдельно). Для остальных линий выбираем основную ось и идём вдоль неё, подбирая координаты по оставшейся(неосновной) оси. На каждой итерации устанавливаем две точки - рассчитываем величину ошибки и видим, как сильно ушли пиксели от идеальной линии по неосновной оси, на основе этих данных распределяем интенсивность между выбранными точками.
В этой работе выполняется освещение фигуры при помощи основных функций Open GL
Программа рисующая Обнаженное обдуваемое ветром дерево Пифагора, написанная на Pascal с использованием модуля GraphABC.
Фрактал строится многократным вписыванием в окружность других окружностей меньшего радиуса.
Программа демонстрирующая кривую Леви.
Задача: Определить, принадлежит ли точка выпуклому многоугольнику.
Алгоритм: Выберем произвольную точку ( кликом мышки ).
Используя векторное произведение, проверим по очереди в порядке обхода сторон по часовой стрелке, лежит ли точка слева от очередного вектора - стороны многоугольника
( откладываем вектора: от i-й вершины к i-1-й вершине, и от i-й вершины к выбранной точке).
Если векторное произведение неотрицательно, значит точка лежит слева от стороны многоугольника, либо на стороне. Если это выполняется для каждой из сторон, то точка лежит внутри многоугольника.
Программа демонстрирующая круговой фрактал
Нарисовать кривую Безье алгоритмом построения кривой по «методу де Кастельжо».
Задача: Построить окружность, используя алгоритм Брезенхема.
Алгоритм: Строим четверть окружности, и достраиваем остальные симметрично. На каждой итерации цикла выбираем одну из трёх возможных точек(сравниваем расстояние от центра до выбранной точки с радиусом окружности).
Программа демонстрирующая интерполяцию полиномом Ньютона