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}