2.4. Алгоритм Брезенхема рисования линии.
В 1965 году Брезенхеймом был предложен простой целочисленный алгоритм для растрового построения отрезка. В алгоритме используется управляющая переменная di, которая на каждом шаге пропорциональна разности между s и t (см. рис.2.4.1). На рис.2.4.1 приведен i-ый шаг, когда пиксел Pi-1 уже найден как ближайший к реальному изображаемому отрезку, и теперь требуется определить, какой из пикселов должен быть установлен следующим: Ti или Si.
Если s<t, то Si ближе к отрезку и необходимо выбрать его; в противном случае ближе будет Ti. Другими словами, если s-t<0, то выбирается Si; в противном случае выбирается Ti.
рис. 2.4.1.
Изображаемый отрезок проводится из точки
(x1, y1) в точку (x2, y2). Пусть первая
точка находится ближе к началу координат, тогда перенесем обе точки, T(x1,
y1) так, чтобы начальная точка отрезка оказалась в начале координат,
тогда конечная окажется в (D x, D y), где D
x= x2- x1 , D y=
x2- x1. Уравнение прямой теперь имеет вид y=x× D
y/Dx. Из рисунка следует, что
поэтому
помножим
на D x:
так
как D x>0, величину D
x(s-t) можно использовать в качестве критерия для выбора пиксела. Обозначим эту
величину di :
так
как r = xi-1, q = yi-1, получаем:
Известно, что xI - xi-1=1.
Если
di >= 0, то выбираем Ti, тогда
Если
di <0, то выбираем Si, тогда
Таким
образом, мы получили итеративную формулу для вычисления критерия di.
Начальное значение d1=2D y-D x.
Можно построить блок схему алгоритма:
рис. 2.4.2
Линейная интерполяция по яркости при построении отрезка по алгоритму Брезенхема
получается параметрическим способом, т.е. , где N – длина
отрезка в пикселях.