esercizi di grafica con turbo pascal 1.1 su mac
PROGRAM grafica4; { funzioni trigonometriche sinusoide piena e cosinusoide linea }
uses memtypes,quickdraw,Turtle; var seno,radianti:real; is,ic,a,x:integer;
procedure pausa; begin writeln('premi return'); readln; end;
begin move(1,100); pensize(2,4); for a:=0 to 360 do begin radianti:=a*3.14/45; seno:=sin(radianti); is:=trunc(50*seno); ic:=trunc(80*seno); moveto(x,100); forwd(is); moveto(x,100+ic); forwd(1); moveto(x,100); x:=x+1; end; moveto(1,100); lineto(500,100); moveto(1,20); lineto(1,200); pausa; end.
PROGRAM grafica5; { funzioni trigonometriche sinusoide piena e cosinusoide linea } { cerchio }
uses memtypes,quickdraw,Turtle; var seno,coseno,radianti:real; is,ic,a,x:integer;
procedure pausa; begin moveto(10,230); drawstring('premi return'); readln; end;
begin moveto(10,10); drawstring('traccia sinusoide piena e cosinusoide'); pensize(2,2); x:=1; for a:=0 to 360 do begin radianti:=a*3.14/45; seno:=sin(radianti); is:=trunc(50*seno); ic:=trunc(80*seno); moveto(x,100); forwd(is); moveto(x,100+ic); forwd(1); moveto(x,100); x:=x+1; end; moveto(20,250); drawstring('traccia assi cartesiani'); pensize(5,5); moveto(1,100); lineto(500,100); moveto(1,20); lineto(1,200); pausa; clear; writeln('traccia cerchio'); pensize(1,1); for a:=0 to 360 do begin radianti:=a*3.14/180; seno:=sin(radianti); coseno:=cos(radianti); is:=trunc(50*seno); ic:=trunc(50*coseno); moveto(200+is,100+ic); forwd(1); end; pausa; clear; writeln('traccia cerchio pieno lobato'); pensize(1,1); for a:=0 to 360 do begin radianti:=a*3.14/180; seno:=sin(radianti); coseno:=cos(radianti); is:=trunc(50*seno); ic:=trunc(50*coseno); moveto(200+is,100+ic); forwd(is ); end; pausa; end.
program curva;
{ Turtlegraphics programma dimostrativo per disegnare curva C } { modificato in italiano da C_Curve originale }
uses memtypes, quickdraw, osintf, toolintf,SANE, Turtle;
const minimo = 5; radice2 = 1.414;
var gporta : grafport; sagoma: eventrecord; x, y : integer;
Procedure disegna(distanza : real; angolo : integer); { Procedure disegna un punto o serie , in funzione dei parametri}
var d : integer;
begin d := trunc(distanza); setheading(angolo); forwd(d) end; { Procedure disegna fine}
Procedure curva (distanza : real; angolo: integer); { procedure curva traccia nuova linea o calcola nuova serie valori da usare per nuovo segmento da tracciare }
begin if distanza <= minimo then disegna(distanza, angolo) else begin curva(distanza/ radice2, angolo + 45); curva(distanza / radice2, angolo - 45) end; end; { Procedure curva }
begin { Main programma inizio} clear; SetPosition(-125,75); curva(200,90); while not(oseventavail(mdownmask + keydownmask, sagoma)) do end. { Main fine programma main}