esercizi di grafica con turbo pascal 1.1 su mac
PROGRAM grafica;
{ ESEMPIO GRAFICA con TURTLE GRAPHICS UNIT } { centro area x=0 ...y=0 } { verso sinistra x negativo,versa destra x positivo +250..-250} { verso alto se Y positivo...verso basso se Y negativo +150...-150} {-----------------------------------------------------------} { procedure e funzioni :cfr.UNIT TURTLE in TURTLE FOLDER } { clear...........cancella area grafica} { home..........porta al centro area 0,0} { WRAP...NOWRAP...permette o impedisce uscita con rientro area } { PENUP...HIDEPEN.......PENDOWN....SHOWPEN ..nasconde,mostra penna} { turtledelay(intero numero millesimi secondo)...pausa} { SETHEADING(valore angolo intero)...orienta secondo angolo} { SETPOSITION(intero,intero)....posiziona in x,y assegnati} { turnright(valore angolo intero)...ruota a destra gradi angolo} { turnleft(valore angolo intero).....ruota a sinistra gradi angolo} { FORWD(lunghezza intera).............disegna linea assegnata } { back(lunghezza intera)................disegna indietro linea } { writeln(HEADING)...stampa valore orientamento} { writeln(Xcor).........stampa ascissa corrente } { writeln(Ycor).........stampa ordinata corrente } { -----------------------------------------------------}
uses memtypes,quickdraw,Turtle; var a,b:integer; begin clear; home; a:=90; b:=100; forwd(b); turnright(a); forwd(b); writeln('premi return'); readln; end.
PROGRAM grafica1;
{ ESEMPIO GRAFICA con TURTLE GRAPHICS UNIT } { centro area x=0 ...y=0 } { verso sinistra x negativo,versa destra x positivo +250..-250} { verso alto se Y positivo...verso basso se Y negativo +150...-150} {-----------------------------------------------------------} { procedure e funzioni :cfr.UNIT TURTLE in TURTLE FOLDER } { clear...........cancella area grafica} { home..........porta al centro area 0,0} { WRAP...NOWRAP...permette o impedisce uscita con rientro area } { PENUP...HIDEPEN.......PENDOWN....SHOWPEN ..nasconde,mostra penna} { turtledelay(intero numero millesimi secondo)...pausa} { SETHEADING(valore angolo intero)...orienta secondo angolo} { SETPOSITION(intero,intero)....posiziona in x,y assegnati} { turnright(valore angolo intero)...ruota a destra gradi angolo} { turnleft(valore angolo intero).....ruota a sinistra gradi angolo} { FORWD(lunghezza intera).............disegna linea assegnata } { back(lunghezza intera)................disegna indietro linea } { writeln(HEADING)...stampa valore orientamento} { writeln(Xcor).........stampa ascissa corrente } { writeln(Ycor).........stampa ordinata corrente } { -----------------------------------------------------} { area 1,1.....480,1......1,270.....480,270 } { moveto(colonna,riga).......sposta in posizione assegnata} { lineto(colonna,riga)ÉÉÉdisegna fino a posizione assegnata} { move(colonna,riga)...........sposta in posizione assegnata} { line(colonna,riga)..............disegna segmento } { penpat(white)....penpat(black) } { backpat(white)..backpat(black) } { =============================================== }
uses memtypes,quickdraw,Turtle; var a,b:integer; begin clear; home; a:=90; b:=100; forwd(b); turnright(a); forwd(b); writeln('premi return'); readln; clear; home; { disegna cornice area grafica } moveto(1,1); lineto(480,1); lineto(480,270); lineto(1,270); lineto(1,1); readln; { disegna diagonali } lineto(480,270); moveto(1,270); lineto(480,1); readln; clear; home; setposition(-200,140); move(50,50); line(250,50); write('testo'); backpat(black); penpat(black); lineto(200,200); readln; end.
PROGRAM grafica2; { funzioni trigonometriche sinusoide }
uses memtypes,quickdraw,Turtle; var seno,radianti:real; is,a,x:integer;
procedure pausa; begin writeln('premi return'); readln; end;
begin move(1,150); for a:=0 to 360 do begin radianti:=a*3.14/30; seno:=sin(radianti); is:=trunc(30*seno); move(x,50+is); forwd(1); moveto(x,50+is); x:=x+1; end; moveto(1,100); lineto(500,100); moveto(1,20); lineto(1,200); pausa; end.
PROGRAM grafica3; { schema minimo per disegnare con turtle } { scrivere nuovo programma e cambiare nome } { unita' da attivare con USES } { drawchar('A')...in posizione fissata con MOVE..MOVETO } { drawstring('stringa')..in posizione fissata con MOVE..MOVETO } { PENSIZE(intero,intero)....spessore verticale,orizzontale penna}
uses memtypes,quickdraw,Turtle;
begin clear; home; drawstring('stringa con drawstring'); moveto(10,10); drawchar('A'); moveto(20,10); drawstring('carattere A con drawchar '); moveto(200,200); pensize(5,10); lineto(300,200); readln; end.
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.