esercizi di grafica con turbo pascal 1.1 su mac
Program seno1; { sinusoide e cosinusoide piene e con diverso colore }
{$U-}
USES Memtypes,QuickDraw,OSIntf,ToolIntf;
VAR gPort: GrafPort; sagoma: EventRecord; vertici:rect;
procedure fine; begin textsize(24); textface([shadow]); textfont(0); moveto(10,30); drawstring('premi return per finire'); end;
procedure disegna; var a,b,y,seno,coseno,altezza1,altezza2:integer; radiante:real;
begin b:=10; y:=200; altezza1:=80; altezza2:=100; for a:=0 to 360 do begin radiante:=a*3.14/60; seno:=trunc(sin(radiante)*altezza1); coseno:=trunc(cos(radiante)*altezza2); moveto(b,y); penpat(white); lineto(b,y+seno); penpat(gray); lineto(b,y+coseno); b:=b+1; end; 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); disegna; fine; WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO; END.
Program seno2; { sinusoide e cosinusoide puntiformi e con diverso colore }
{$U-}
USES Memtypes,QuickDraw,OSIntf,ToolIntf;
VAR gPort: GrafPort; sagoma: EventRecord; vertici:rect;
procedure fine; begin textsize(24); textface([shadow]); textfont(0); moveto(10,30); drawstring('premi return per finire'); end;
procedure titolo; begin textface([shadow]); textface([outline]); textfont(0); textsize(18); moveto(20,370); drawstring('sinusoide e cosinusoide'); end;
procedure disegna; var a,b,y,seno,coseno,altezza1,altezza2:integer; radiante:real;
begin b:=10; y:=200; altezza1:=80; altezza2:=100; { assi cartesiani } moveto(10,y); lineto(400,y); moveto(10,10); lineto(10,370); { traccia sinusoide e cosinusoide } for a:=0 to 360 do begin radiante:=a*3.14/60; seno:=trunc(sin(radiante)*altezza1); coseno:=trunc(cos(radiante)*altezza2); moveto(b,y+seno); penpat(white); line(0,1); penpat(gray); moveto(b,y+coseno); line(0,1); b:=b+1; end; 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); titolo; disegna; fine; WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO; END.
Program seno3; { sinusoide e cosinusoide puntiformi e con diverso colore e spessore } { sinusoide e cosinusoide piene }
{$U-}
USES Memtypes,QuickDraw,OSIntf,ToolIntf;
VAR gPort: GrafPort; sagoma: EventRecord; vertici:rect;
procedure fine; var d:integer; begin textsize(24); textface([shadow]); textfont(0); moveto(10,30); drawstring('premi return per finire'); for d:=1 to 5 do sysbeep(1); end;
procedure titolo; begin textface([shadow]); textface([outline]); textfont(0); textsize(18); moveto(20,370); drawstring('sinusoide e cosinusoide'); sysbeep(1); end;
procedure disegna; var a,b,y,seno,coseno,altezza1,altezza2:integer; radiante:real;
begin b:=10; y:=200; altezza1:=80; altezza2:=100; { assi cartesiani } moveto(10,y); lineto(400,y); moveto(10,10); lineto(10,370); { traccia sinusoide e cosinusoide } for a:=0 to 360 do begin radiante:=a*3.14/60; seno:=trunc(sin(radiante)*altezza1); coseno:=trunc(cos(radiante)*altezza2); moveto(b,y+seno); penpat(white); pensize(10,5); line(0,1); pensize(5,5); penpat(gray); moveto(b,y+coseno); line(0,1); b:=b+1; end; end;
procedure disegna1; var a,b,y,seno,coseno,altezza1,altezza2:integer; radiante:real;
begin b:=10; y:=200; altezza1:=80; altezza2:=100; { traccia sinusoide e cosinusoide } for a:=0 to 360 do begin radiante:=a*3.14/60; seno:=trunc(sin(radiante)*altezza1); coseno:=trunc(cos(radiante)*altezza2); moveto(b,y); penpat(white); lineto(b,y+seno); penpat(gray); moveto(b,y); lineto(b,y+coseno); b:=b+1; end; 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); titolo; disegna; disegna1; fine; WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO; END.