esercizi di grafica con turbo pascal 1.1 su mac
Program gra9; { disegna figure piene con uso di PATTERN standard }
{$U-}
USES Memtypes,QuickDraw,OSIntf,ToolIntf;
VAR gPort: GrafPort; sagoma: EventRecord; vertici:rect; sfondo:pattern;
procedure disegna; begin setrect(vertici,20,20,200,200); fillrect(vertici,sfondo);
moveto(20,300); pensize(15,15); penpat(sfondo); line(200,0);
setrect(vertici,210,50,300,100); fillroundrect(vertici,1,1,sfondo);
setrect(vertici,310,20,400,110); fillarc(vertici,80,80,sfondo);
setrect(vertici,310,200,400,300); filloval(vertici,sfondo); 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 gra10; { disegna figure piene con uso di PATTERN assegnati con STUFFHEX }
{$U-}
USES Memtypes,QuickDraw,OSIntf,ToolIntf;
VAR gPort: GrafPort; sagoma: EventRecord; vertici:rect; sfondo:pattern;
procedure disegna; begin stuffhex(@sfondo,'8040200002040800'); setrect(vertici,20,20,200,200); fillrect(vertici,sfondo);
stuffhex(@sfondo,'8240220002240820'); moveto(20,300); pensize(15,15); penpat(sfondo); line(200,0);
stuffhex(@sfondo,'8646247072040800'); setrect(vertici,210,50,300,100); fillroundrect(vertici,1,1,sfondo);
stuffhex(@sfondo,'4040404040404040'); setrect(vertici,310,20,400,110); fillarc(vertici,80,80,sfondo);
stuffhex(@sfondo,'2325208020202020'); setrect(vertici,310,200,400,300); filloval(vertici,sfondo); 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 gra11; { disegna poligoni con POLYHANDLE }
{$U-}
USES Memtypes,QuickDraw,OSIntf,ToolIntf;
VAR gPort: GrafPort; sagoma: EventRecord; vertici:rect; sfondo:pattern; poligono:polyhandle;
procedure disegna; begin stuffhex(@sfondo,'1234567891234567');{ serie 16 numeri } poligono:=openpoly; {definizione poligono} moveto(30,290); lineto(30,280); lineto(50,265); lineto(90,265); lineto(80,280); lineto(95,290); lineto(30,290); closepoly; framepoly(poligono);
offsetpoly(poligono,25,15); pensize(3,2); erasepoly(poligono); framepoly(poligono);
offsetpoly(poligono,25,15); paintpoly(poligono);
offsetpoly(poligono,25,15); pennormal; fillpoly(poligono,gray); framepoly(poligono);
offsetpoly(poligono,25,15); fillpoly(poligono,sfondo); framepoly(poligono);
killpoly(poligono); 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 gra12; { disegna figure in cornice con RGNHANDLE }
{$U-}
USES Memtypes,QuickDraw,OSIntf,ToolIntf;
VAR gPort: GrafPort; sagoma: EventRecord; vertici:rect; sfondo:pattern; regione:rgnhandle;
procedure disegna; begin stuffhex(@sfondo,'1234567891234567');{ serie 16 numeri } regione:=newrgn; openrgn; showpen;
setrect(vertici,260,270,460,350); frameroundrect(vertici,24,16); moveto(275,335); lineto(325,285); lineto(375,335); lineto(275,335);
setrect(vertici,365,277,445,325); frameoval(vertici);
hidepen; closergn(regione); disposergn(regione); 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 grafix3d; { modificato da SINEGRID per grafica con TURBO PASCAL 1.1 }
{$U-}
USES Memtypes,QuickDraw,OSIntf,ToolIntf,FixMath,Graf3D;
VAR gPort: GrafPort; gPort3D: Port3d; sagoma: EventRecord; vertici:rect;
procedure disegna; var x,y:integer; begin x:=100; y:=100; textfont(3); textface([bold]); penpat(white); MoveTo(10,10); DrawString('stringa'); lineto(100,100); line(160,120); penpat(gray); setrect(vertici,100,50,150,120); framerect(vertici); paintrect(vertici); pensize(3,3); setrect(vertici,200,10,300,60); frameroundrect(vertici,200,10); fillroundrect(vertici,30,20,gray); setrect(vertici,10,200,100,250); fillarc(vertici,50,50,dkgray); setrect(vertici,300,100,400,200); frameoval(vertici); end;
BEGIN {inizializzazione sottoprogrammi o routine} InitGraf(@thePort); InitGrf3D(@thePort3D); initfonts; InitCursor; HideCursor; OpenPort(@gPort); Open3DPort(@gPort3D); {inizio programma principale} PenPat(white); BackPat(Black); EraseRect(gPort.portRect); FrameRect(gPort.portRect); disegna; WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO; END.