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.