Изчертаване на отсечки и окръжности
| Информационни технологии | 2009-12-04 | 36 сваляния |
Изчертаване на отсечки и окръжности
procedure DrawLine(x1,y1,x2,y2:integer);
{ Използва уравнението на права y=mx+b }
var x,dx,dy:integer;
m,b,y:real;
begin
dx:=x2-x1;
dy:=y2-y1;
m:=dy/dx;
b:=y1-m*x1;
x:=x1;
repeat
y:=m*x+b;
PutPixel(x,round(y),Color);
x:=x+1;
until x>x2;
end;
procedure DDA(x1,y1,x2,y2:integer);
{ Цифров дифиренциален анализатор }
var Diff,Error:real;
x,y:integer;
begin
Diff:=(y2-y1)/(x2-x1);
x:=x1; y:=y1;
PutPixel(x,y,Color);
Error:=0;
while x
begin
x:=x+1;
Error:=Error+Diff;
if Error>=0.5 then
begin
y:=y+1;
Error:=Error-1;
end;
PutPixel(x,y,Color);
end;
end;
procedure BresenhamI(x1,y1,x2,y2:integer);
{ Алгоритъм на Брезенам за изчертаване на отсечки в I октант }
var Error,x,y:integer;
begin
x:=x1; y:=y1;
PutPixel(x,y,Color);
Error:=-(dx div 2);
while x
begin
x:=x+1;
Error:=Error+dy;
if Error>=0 then
begin
y:=y+1;
Тагове от реферата: drawline, ертне, сечки, procedure, окръжност











