esercizi di grafica con turbo pascal 1.1 su mac
Program SFONDI2; { ESEMPI DI sei tratteggi da usare per riempire figure o linee spesse }
{$U-}
USES Memtypes,QuickDraw,OSIntf,ToolIntf;
type datiicone=array[0..95] of integer;
VAR gPort: GrafPort; sagoma: EventRecord; vertici:rect; sfondo:array[0..5] of datiicone; sfondo1:pattern;
procedure preparaicone; begin stuffhex(@sfondo[0],'1234567899876543'); stuffhex(@sfondo[1],'101010101010101010'); stuffhex(@sfondo[2],'1212121212121212'); stuffhex(@sfondo[3],'1203450654076507'); stuffhex(@sfondo[4],'9875679875679877'); stuffhex(@sfondo[5],'9871239871237654'); END;
procedure disegna;
var x1,y1,x2,y2,a,contatore:integer; begin x1:=10;y1:=10; x2:=x1+50;y2:=y1+50; begin for contatore:=0 to 5 do begin for a:=1 to 8 do begin setrect(vertici,x1,y1,x2,y2); framerect(vertici); fillrect(vertici,sfondo1); x1:=x1+60;x2:=x1+50; end; x1:=10;y1:=y1+60;x2:=x1+50;y2:=y1+50; end; end; end;
BEGIN {inizializzazione sottoprogrammi o routine} InitGraf(@thePort); initfonts; InitCursor; HideCursor; preparaicone; 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 SFONDI; { ESEMPI DI sei tratteggi da usare per riempire figure o linee spesse }
{$U-}
USES Memtypes,QuickDraw,OSIntf,ToolIntf;
VAR gPort: GrafPort; sagoma: EventRecord; vertici:rect; sfondo1,sfondo2,sfondo3,sfondo4,sfondo5,sfondo6:pattern;
procedure preparaicone; begin stuffhex(@sfondo1,'1234567899876543'); stuffhex(@sfondo2,'101010101010101010'); stuffhex(@sfondo3,'1212121212121212'); stuffhex(@sfondo4,'1203450654076507'); stuffhex(@sfondo5,'9875679875679877'); stuffhex(@sfondo6,'9871239871237654'); END;
procedure disegna(x1,y1:integer;sfondo:pattern); var x2,y2,a:integer; begin x2:=x1+50;y2:=y1+50; for a:=1 to 8 do begin
setrect(vertici,x1,y1,x2,y2); framerect(vertici); fillrect(vertici,sfondo); x1:=x1+60;x2:=x1+50; end; end;
BEGIN {inizializzazione sottoprogrammi o routine} InitGraf(@thePort); initfonts; InitCursor; HideCursor; preparaicone; OpenPort(@gPort);
{inizio programma principale} PenPat(white); BackPat(Black); EraseRect(gPort.portRect); FrameRect(gPort.portRect); { procedura operativa modificabile..altre procedure aggiungere } disegna(10,10,sfondo1); disegna(10,70,sfondo2); disegna(10,140,sfondo3); disegna(10,200,sfondo4); disegna(10,270,sfondo5); disegna(10,330,sfondo6);
WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO; END.
Program SFONDI2; { ESEMPI DI sei tratteggi da usare per riempire figure o linee spesse }
{$U-}
USES Memtypes,QuickDraw,OSIntf,ToolIntf;
VAR gPort: GrafPort; sagoma: EventRecord; vertici:rect; sfondo:array[0..5] of pattern;
procedure preparaicone; begin stuffhex(@sfondo[0],'1234567899876543'); stuffhex(@sfondo[1],'101010101010101010'); stuffhex(@sfondo[2],'1212121212121212'); stuffhex(@sfondo[3],'1203450654076507'); stuffhex(@sfondo[4],'9875679875679877'); stuffhex(@sfondo[5],'9871239871237654'); END;
procedure disegna;
var x1,y1,x2,y2,a,contasfondo:integer; begin x1:=10;y1:=10; x2:=x1+50;y2:=y1+50; begin for contasfondo:=0 to 5 do begin for a:=1 to 8 do begin setrect(vertici,x1,y1,x2,y2); framerect(vertici); fillrect(vertici,sfondo[contasfondo]); x1:=x1+60;x2:=x1+50; end; x1:=10;y1:=y1+60;x2:=x1+50;y2:=y1+50; end; end; end;
BEGIN {inizializzazione sottoprogrammi o routine} InitGraf(@thePort); initfonts; InitCursor; HideCursor; preparaicone; 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 SFONDI3; { ESEMPI DI tratteggi da usare per riempire figure o linee spesse }
{$U-}
USES Memtypes,QuickDraw,OSIntf,ToolIntf;
VAR gPort: GrafPort; sagoma: EventRecord; vertici:rect; sfondo:array[0..19] of pattern; x1,y1,x2,y2,contasfondo,a:integer;
procedure preparaicone; begin stuffhex(@sfondo[0],'1234567899876543'); stuffhex(@sfondo[1],'101010101010101010'); stuffhex(@sfondo[2],'1212121212121212'); stuffhex(@sfondo[3],'1203450654076507'); stuffhex(@sfondo[4],'9875679875679877'); stuffhex(@sfondo[5],'9871239871237654'); stuffhex(@sfondo[6],'1345678456987687'); stuffhex(@sfondo[7],'0365748923987456'); stuffhex(@sfondo[8],'1212563458709860'); stuffhex(@sfondo[9],'9734562345566679'); stuffhex(@sfondo[10],'9999999999999999'); stuffhex(@sfondo[11],'8888888888888888'); stuffhex(@sfondo[12],'7777777777777777'); stuffhex(@sfondo[13],'6666666666666666'); stuffhex(@sfondo[14],'5555555555555555'); stuffhex(@sfondo[15],'4444444444444444'); stuffhex(@sfondo[16],'3333333333333333');
stuffhex(@sfondo[17],'9871239871237654'); stuffhex(@sfondo[18],'1234567899876543'); stuffhex(@sfondo[19],'101010101010101010');
END;
procedure disegna1; {prima serie } begin x1:=10;y1:=10; x2:=x1+40;y2:=y1+50; for contasfondo:=0 to 9 do begin setrect(vertici,x1,y1,x2,y2); framerect(vertici); fillrect(vertici,sfondo[contasfondo]); x1:=X1+50;x2:=x1+40;y2:=y1+50; END; end;
{ seconda serie } procedure disegna2; BEGIN x1:=10;y1:=80; x2:=x1+40;y2:=y1+50; for contasfondo:=10 to 19 do begin setrect(vertici,x1,y1,x2,y2); framerect(vertici); fillrect(vertici,sfondo[contasfondo]); x1:=X1+50;x2:=x1+40;y2:=y1+50; END; end;
{terza serie } procedure disegna3; BEGIN x1:=10;y1:=150; x2:=x1+40;y2:=y1+50; for contasfondo:=19 to 20 do begin setrect(vertici,x1,y1,x2,y2); framerect(vertici); fillrect(vertici,sfondo[contasfondo]); x1:=X1+50;x2:=x1+40;y2:=y1+50; END; END;
BEGIN {inizializzazione sottoprogrammi o routine} InitGraf(@thePort); initfonts; InitCursor; HideCursor; preparaicone; OpenPort(@gPort);
{inizio programma principale} PenPat(white); BackPat(Black); EraseRect(gPort.portRect); FrameRect(gPort.portRect); { procedura operativa modificabile..altre procedure aggiungere } disegna1; disegna2;disegna3;
WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO; END.