|
|||
Список алгоритмов рисования отрезковСтр 1 из 2Следующая ⇒
Алгоритмы построения отрезка — графические алгоритмы аппроксимации отрезка на дискретном графическом устройстве (растеризации), например, мониторе или принтере. Стандартными требованиями к алгоритмам являются скорость работы, равномерная яркость и прямой вид полученных отрезков, совпадение начальных и конечных координат полученной и идеальной линии. Для дискретного устройства данные требования зачастую невыполнимы. Отрезок нельзя провести из одной точки в другую однозначно (кроме горизонтальных, вертикальных и наклонённых под углом 45° отрезков), начало и конец отрезка имеют координаты ближайших к ним пикселов, расстояние между пикселами диагональных отрезков больше, чем между пикселами вертикальных и горизонтальных.
Список алгоритмов рисования отрезков
Реализация на Object Pascal – рисование отрезка Procedure Swap(var x,y:Integer); var t:Integer; begin t:=x;x:=y;y:=t; end;
Procedure Line(Canvas: TCanvas; x1,y1,x2,y2:integer); var dx,dy,i,sx,sy,check,e,x,y:integer; begin dx:=abs(x1-x2); dy:=abs(y1-y2); sx:=Sign(x2-x1); sy:=Sign(y2-y1); x:=x1; y:=y1; check:=0; if dy>dx then begin Swap(dx,dy); check:=1; end; e:= 2*dy - dx; for i:=0 to dx do begin Canvas.Pixels[x,y]:=clBlack; if e>=0 then begin if check=1 then inc(x,sx) else inc(y,sy); dec(e,2*dx); end; if check=1 then inc(y,sy) else inc(x,sx); inc(e,2*dy); end; end;
|
|||
|