esercizi di grafica con turbo pascal 1.1 su mac
Program disegna; { schema per disegnare con TURBO PASCAL 1.1 } { richiamare da disco e poi cambiare nome per nuovo programma } { cancellabile procedure DISEGNA }
{$U-}
USES Memtypes,QuickDraw,OSIntf,ToolIntf;
VAR gPort: GrafPort; sagoma: EventRecord; vertici:rect;
procedure disegna; var x,y:integer; begin setrect(vertici,50,50,200,200); framerect(vertici); end;
BEGIN {inizializzazione sottoprogrammi o routine} InitGraf(@thePort); initfonts; InitCursor; HideCursor; OpenPort(@gPort);
{inizio programma principale} PenPat(white); BackPat(Black); EraseRect(gPort.portRect); FrameRect(gPort.portRect); { procedura operativa modificabile..altre procedure aggiungere } disegna; WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO; END.
Program gra1;
{$U-}
USES Memtypes,QuickDraw,OSIntf,ToolIntf;
VAR gPort: GrafPort; sagoma: EventRecord; vertici:rect;
procedure retta(x,y:integer); { disegna segmento } begin move(20,20); lineto(20+x,20+y); end;
procedure linea(x,y:integer); { disegna linea } begin move(20,20); line(x,y); end;
procedure rettangolo(x1,y1,x2,y2:integer); { disegna rettangolo} begin setrect(vertici,x1,y1,x2,y2); framerect(vertici); end;
procedure quadropieno(x1,y1,x2,y2:integer); {pieno} begin setrect(vertici,x1,y1,x2,y2); paintrect(vertici); end;
procedure quadrocolorato(x1,y1,x2,y2:integer); {colorato} begin setrect(vertici,x1,y1,x2,y2); fillrect(vertici,gray); end;
procedure penna1; begin pensize(2,4); setrect(vertici,200,200,250,250); framerect(vertici); end;
procedure penna2; begin pensize(10,5); penpat(dkgray); setrect(vertici,260,200,300,250); framerect(vertici); end;
procedure penna3; begin penpat(gray); setrect(vertici,310,200,350,250); framerect(vertici); end;
BEGIN {inizializzazione sottoprogrammi o routine} InitGraf(@thePort); initfonts; InitCursor; HideCursor; OpenPort(@gPort);
{inizio programma principale} PenPat(white); BackPat(Black); EraseRect(gPort.portRect); FrameRect(gPort.portRect); retta(200,0); linea(100,50); rettangolo(30,30,120,80); quadropieno(160,30,220,80); quadrocolorato(160,90,220,150); penna1;penna2;penna3; WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO; END.
Program gra2;
{$U-}
USES Memtypes,QuickDraw,OSIntf,ToolIntf;
VAR gPort: GrafPort; sagoma: EventRecord; vertici:rect;
procedure retta(x,y:integer); { disegna segmento } begin pensize(10,10); penpat(gray); move(20,20); lineto(20+x,20+y); end;
procedure linea(x,y:integer); { disegna linea } begin pensize(5,10); penpat(dkgray); move(20,20); line(x,y); end;
procedure rettangolo(x1,y1,x2,y2:integer); { disegna rettangolo} begin setrect(vertici,x1,y1,x2,y2); framerect(vertici); eraserect(vertici); { cancella rettangolo } end;
procedure rettangolo1(x1,y1,x2,y2:integer); { disegna rettangolo} begin setrect(vertici,x1,y1,x2,y2); framerect(vertici); offsetrect(vertici,60,10); {protegge da cancellazione } eraserect(vertici); end;
procedure quadropieno(x1,y1,x2,y2:integer); {pieno} begin pensize(5,5); setrect(vertici,x1,y1,x2,y2); paintrect(vertici); end;
procedure quadrocolorato(x1,y1,x2,y2:integer); {colorato} begin setrect(vertici,x1,y1,x2,y2); fillrect(vertici,gray); end;
procedure penna1; begin pensize(2,4); setrect(vertici,200,200,250,250); framerect(vertici); end;
procedure penna2; begin pensize(10,5); penpat(dkgray); setrect(vertici,260,200,300,250); framerect(vertici); end;
procedure penna3; begin pennormal; penpat(gray); setrect(vertici,310,200,350,250); framerect(vertici); end;
BEGIN {inizializzazione sottoprogrammi o routine} InitGraf(@thePort); initfonts; InitCursor; HideCursor; OpenPort(@gPort);
{inizio programma principale} PenPat(white); BackPat(Black); EraseRect(gPort.portRect); FrameRect(gPort.portRect); retta(200,0); linea(100,50); rettangolo(10,250,400,280); rettangolo1(10,290,400,320); quadropieno(160,30,220,80); quadrocolorato(160,90,220,150); penna1;penna2;penna3; WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO; END.
Program gra3; { esempio per figure geometriche piane } { SETRECT..FRAMERECT..ERASERECT..OFFSETRECT...PAINTRECT...PENSIZE.PENNORMAL}
{$U-}
USES Memtypes,QuickDraw,OSIntf,ToolIntf;
VAR gPort: GrafPort; sagoma: EventRecord; vertici:rect;
procedure rettangolo; begin setrect(vertici,20,20,100,100); framerect(vertici); pensize(3,3); setrect(vertici,110,20,200,100); framerect(vertici); setrect(vertici,210,20,300,100); paintrect(vertici); setrect(vertici,310,20,360,100); fillrect(vertici,gray); end;
procedure rettangolo1; begin setrect(vertici,20,120,100,200); framerect(vertici); offsetrect(vertici,20,20); pensize(3,3); eraserect(vertici); {cancellazione parziale limitata da offsetrect } framerect(vertici); { duplicazione rettangolo spostato } offsetrect(vertici,20,20); paintrect(vertici);
offsetrect(vertici,20,20); pennormal; fillrect(vertici,gray);
framerect(vertici); offsetrect(vertici,20,20);
pensize(5,5); paintrect(vertici); offsetrect(vertici,30,30);
setrect(vertici,310,230,360,300); fillrect(vertici,gray); end;
BEGIN {inizializzazione sottoprogrammi o routine} InitGraf(@thePort); initfonts; InitCursor; HideCursor; OpenPort(@gPort);
{inizio programma principale} PenPat(white); BackPat(Black); EraseRect(gPort.portRect); FrameRect(gPort.portRect); rettangolo; rettangolo1; WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO; END.
Program gra4; { esempio per figure geometriche piane } { SETRECT..FRAMEROUNDRECT..ERASEROUNDRECT..OFFSETRECT..} {...PENSIZE.PENNORMAL..PAINTROUNDRECT}
{$U-}
USES Memtypes,QuickDraw,OSIntf,ToolIntf;
VAR gPort: GrafPort; sagoma: EventRecord; vertici:rect;
procedure rettangolo; begin setrect(vertici,20,20,100,100); framerect(vertici); pensize(3,3); setrect(vertici,110,20,200,100); framerect(vertici); setrect(vertici,210,20,300,100); paintrect(vertici); setrect(vertici,310,20,360,100); fillrect(vertici,gray); end;
procedure rettangolo1; { arrotondamento vertici } begin setrect(vertici,20,120,100,200); frameroundrect(vertici,30,30); offsetrect(vertici,20,20); pensize(3,3); eraseroundrect(vertici,30,30); {cancellazione parziale limitata da offsetrect } frameroundrect(vertici,30,30); { duplicazione rettangolo spostato } offsetrect(vertici,20,20); paintroundrect(vertici,40,40); offsetrect(vertici,20,20); fillrect(vertici,gray); framerect(vertici); offsetrect(vertici,20,20); pensize(5,5); paintrect(vertici); offsetrect(vertici,30,30); setrect(vertici,310,230,360,300); fillrect(vertici,gray); end;
BEGIN {inizializzazione sottoprogrammi o routine} InitGraf(@thePort); initfonts; InitCursor; HideCursor; OpenPort(@gPort);
{inizio programma principale} PenPat(white); BackPat(Black); EraseRect(gPort.portRect); FrameRect(gPort.portRect); rettangolo; rettangolo1; WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO; END.