Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
17
Добавлен:
21.05.2015
Размер:
1.21 Кб
Скачать
program _Line;
uses Crt;
Function Sign(Number : integer) : integer;
begin
if Number < 0 then Sign := -1
else if Number = 0 then Sign := 0
else Sign := 1;
end;

Procedure Line_(x1,y1,x2,y2 : Integer; Color : Byte);
var
x,y,s1,s2,dlx,dly,e,z,i: integer;
change: boolean;
begin
x := x1; y:=y1;
dlx := Abs(x2-x1); dly := Abs(y2-y1);
s1 := Sign(x2-x1); s2 := Sign(y2-y1);
if dly > dlx then
begin
z := dlx;
dlx := dly;
dly := z;
end
else change := False;
e := 2 * dly - dlx;
for i := 1 to dlx do
begin
mem[$A000:x + y * 320] := Color;
while e >= 0 do
begin
if change then inc(x,s1)
else inc(y,s2);
dec(e,2 * dlx);
end;
if change then inc(y,s2)
else inc(x,s1);
inc(e,2 * dly);
end;
mem[$A000:x + y * 320] := Color;
end;

var
ch : Char;
begin

asm
mov ax,13h
int 10h
end;
while Not KeyPressed do
begin
Line_(random(320),random(200),random(320),random(200),random(255));
end;
asm
mov ax,3h
int 10h
end;
end.
Соседние файлы в папке Линии