Слайд 1Алгоритмы растеризации
Алгоритмы Брезенхема рисования отрезка и окружности
Слайд 2Растровые алгоритмы
Алгоритмы растеризации
Алгоритмы перевода графических примитивов в растровую форму
Алгоритмы заполнения областей
и многоугольников
Алгоритмы обработки растровых изображений
Регулировка яркости и контрастности
Масштабирование изображений
Геометрические преобразования
Алгоритмы фильтрации
Слайд 3Литература
Д. Роджерс. Алгоритмические основы машинной графики. – М. Мир, 1989.
Слайд 5Алгоритм Брезенхема рисования отрезка
Отрезок от A(xa, ya) до B(xb, yb)
0 ≤
yb- ya ≤ xb- xa, k=(yb- ya) / (xb- xa) y = ya+ k (x – xa)
procedure line(xa,ya,xb,yb:integer);
var k,y : double;
begin
k:=(yb-ya)/(xb-xa);
y:=ya;
for i:=xa to xb do begin
put(x,round(y)); y:=y+k
end;
end;
Слайд 6Алгоритм Брезенхема рисования отрезка
dy/dx = (S+q)/(r+1)
S = dy/dx (r+1) – q
T
= 1 – S = 1 - dy/dx (r+1) – q
S – T = 2 dy/dx (r+1) – 2q -1
dx (S – T) =
2 dy (r+1) – 2q dx – dx
di+1= di+2 dy – 2 dx (yi-yi-1)
Слайд 7Алгоритм Брезенхема рисования отрезка
procedure line(xa,ya,xb,yb:integer);
var dx,dy,inc1,inc2,d,x,y,xend : integer;
begin dx:=abs(x2-x1); dy:=abs(y2-y1);
d:=2*dy-dx; inc1:= 2*dy;
inc2:=2*(dy-dx);
if x1>x2 then begin
x:=x2; y:=y2; xend:=x1
end
else begin
x:=x1; y:=y1; xend:=x2
end;
put(x,y);
while x < xend do begin
inc(x);
if d < 0 then inc(d,inc1)
else begin
inc(y); inc(d,inc2);
end;
put(x,y)
end;
end;
Слайд 8Алгоритм Брезенхема рисования окружности
procedure circle(x0,y0,r:integer);
var d,d1,d2,x,y : integer;
begin
d:=0; y:=r;
for x:=0 to
round(r*sqrt(2.0)/2) do begin
d1:=d+x+x+1; d2:=d1-y-y+1;
if abs(d1) < abs(d2) then begin
d:=d1;
end
else begin
d:=d2; dec(y);
end;
put(x0+x,y0+y);put(x0+y,y0+x);put(x0-x,y0+y);put(x0+y,y0-x); put(x0+x,y0-y);put(x0-y,y0+x);put(x0-x,y0-y);put(x0-y,y0-x);
end;
end;