Автор: mithquessir 15.01.2005 0:41
Вот, решил написать простенький модуль для работы с графикой, но не могу написать процедуры рисования прямой и окружности.
Подскажите, если не сложно.
Код
Unit graphix;
{$G+}
interface
procedure Init;
procedure DeInit;
procedure Wait;
procedure FillScreen(col:byte);
procedure PutPixel(x,y:word;col:byte);
procedure Box(x1,y1,x2,y2:word;col:byte);
implementation
procedure Init; assembler;
asm
mov ax,13h
int 10h
end;
procedure DeInit; assembler;
asm
mov ax,3h
int 10h
end;
procedure Wait; assembler;
asm
xor ax,ax
int 16h
end;
procedure FillScreen(col:byte); assembler;
asm
pusha
mov ax,0A000h
mov es,ax
xor di,di
mov al,[col]
mov cx,64000
cld
rep stosb
popa
end;
procedure PutPixel(x,y:word;col:byte);
begin
y := y * 320;
asm
pusha
mov ax,0A000h
mov es,ax
mov ax,[y]
mov di,ax
add di,[x]
mov al,[col]
cld
stosb
popa
end;
end;
procedure Box(x1,y1,x2,y2:word;col:byte);
var
i,j:integer;
begin
for i := x1 to x2 do
for j := y1 to y2 do
PutPixel(i,j,col);
end;
begin
end.
Автор: Altair 15.01.2005 0:57
А алгоритмы на что?
рисование окружности:
http://algolist.manual.ru/graphics/painting/index.php
http://alglib.manual.ru/graphics/circle.php
http://pascal.sources.ru/graph/line.htm
там и ассемблер и паскаль
=== ===
у GoodWind'a есть огромный модуль (около 40 КБ текста на ассемблере) для работы с 13h графическим режимом.... советую не мучаться и попросить его выложить сюда...
Автор: volvo 15.01.2005 0:58
http://pascal.sources.ru/demo/dd3dr1.htm... Скачай там файл, все очень хорошо описано...