esercizi di grafica con turbo pascal 1.1 su mac

 

 

Program gra9;
{ disegna figure piene con uso di PATTERN standard }
{$U-}
   USES Memtypes,QuickDraw,OSIntf,ToolIntf;
   
   VAR
      gPort:   GrafPort;      
      sagoma: EventRecord;
      vertici:rect;
      sfondo:pattern;
      
procedure disegna;
 begin
   setrect(vertici,20,20,200,200);
   fillrect(vertici,sfondo);
   
   moveto(20,300);
   pensize(15,15);
   penpat(sfondo);
   line(200,0);
   
   setrect(vertici,210,50,300,100);
   fillroundrect(vertici,1,1,sfondo);
   
   setrect(vertici,310,20,400,110);
   fillarc(vertici,80,80,sfondo);
   
   setrect(vertici,310,200,400,300);
   filloval(vertici,sfondo);
  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);
   { procedura operativa modificabile..altre procedure aggiungere }
   disegna;
   WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO;
END.

 

Program gra10;
{ disegna figure piene con uso di PATTERN assegnati con STUFFHEX }
{$U-}
   USES Memtypes,QuickDraw,OSIntf,ToolIntf;
   
   VAR
      gPort:   GrafPort;      
      sagoma: EventRecord;
      vertici:rect;
      sfondo:pattern;
      
      
procedure disegna;
 begin
  stuffhex(@sfondo,'8040200002040800');
   setrect(vertici,20,20,200,200);
   fillrect(vertici,sfondo);
   
   stuffhex(@sfondo,'8240220002240820');
   moveto(20,300);
   pensize(15,15);
   penpat(sfondo);
   line(200,0);
   
   stuffhex(@sfondo,'8646247072040800');
   setrect(vertici,210,50,300,100);
   fillroundrect(vertici,1,1,sfondo);
   
   stuffhex(@sfondo,'4040404040404040');
   setrect(vertici,310,20,400,110);
   fillarc(vertici,80,80,sfondo);
   
   stuffhex(@sfondo,'2325208020202020');
   setrect(vertici,310,200,400,300);
   filloval(vertici,sfondo);
  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);
   { procedura operativa modificabile..altre procedure aggiungere }
   disegna;
   WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO;
END.

Program gra11;
{ disegna poligoni con POLYHANDLE }
{$U-}
   USES Memtypes,QuickDraw,OSIntf,ToolIntf;
   
   VAR
      gPort:   GrafPort;      
      sagoma: EventRecord;
      vertici:rect;
      sfondo:pattern;
      poligono:polyhandle;
      
   procedure disegna;
     begin
     stuffhex(@sfondo,'1234567891234567');{ serie 16 numeri }
       poligono:=openpoly; {definizione poligono}
         moveto(30,290);
         lineto(30,280);
         lineto(50,265);
         lineto(90,265);
         lineto(80,280);
         lineto(95,290);
         lineto(30,290);
        closepoly;
        framepoly(poligono);   
     
     offsetpoly(poligono,25,15);
     pensize(3,2);
     erasepoly(poligono);
     framepoly(poligono);
     
     offsetpoly(poligono,25,15);
     paintpoly(poligono);
     
     offsetpoly(poligono,25,15);
     pennormal;
     fillpoly(poligono,gray);
     framepoly(poligono);
     
     offsetpoly(poligono,25,15);
     fillpoly(poligono,sfondo);
     framepoly(poligono);
     
     killpoly(poligono);
   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);
   { procedura operativa modificabile..altre procedure aggiungere }
   disegna;
   WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO;
END.

Program gra12;
{ disegna figure in cornice con RGNHANDLE }
{$U-}
   USES Memtypes,QuickDraw,OSIntf,ToolIntf;
   
   VAR
      gPort:   GrafPort;      
      sagoma: EventRecord;
      vertici:rect;
      sfondo:pattern;
      regione:rgnhandle;
     
      
   procedure disegna;
     begin
     stuffhex(@sfondo,'1234567891234567');{ serie 16 numeri }
      regione:=newrgn;
      openrgn;
        showpen;
        
        setrect(vertici,260,270,460,350);
        frameroundrect(vertici,24,16);
        moveto(275,335);
        lineto(325,285);
        lineto(375,335);
        lineto(275,335);
        
        setrect(vertici,365,277,445,325);
        frameoval(vertici);
        
        hidepen;
        closergn(regione);
        disposergn(regione);
      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);
   { procedura operativa modificabile..altre procedure aggiungere }
   disegna;
   WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO;
END.

Program grafix3d;
{ modificato da SINEGRID per grafica con TURBO PASCAL 1.1 }
{$U-}
   USES Memtypes,QuickDraw,OSIntf,ToolIntf,FixMath,Graf3D;
   
   VAR
      gPort:   GrafPort;
      gPort3D:   Port3d;      
      sagoma: EventRecord;
      vertici:rect;
      
procedure disegna;
var x,y:integer;
 begin
  x:=100;
  y:=100;
  textfont(3);
  textface([bold]);
  penpat(white);
  MoveTo(10,10); 
  DrawString('stringa');
  lineto(100,100);
  line(160,120);
  penpat(gray); 
   setrect(vertici,100,50,150,120);
   framerect(vertici); 
   paintrect(vertici);
   pensize(3,3);
   setrect(vertici,200,10,300,60);
   frameroundrect(vertici,200,10);
   fillroundrect(vertici,30,20,gray);
   setrect(vertici,10,200,100,250);
   fillarc(vertici,50,50,dkgray);
   setrect(vertici,300,100,400,200);
   frameoval(vertici);
 end; 
BEGIN
{inizializzazione sottoprogrammi o routine}
   InitGraf(@thePort);
   InitGrf3D(@thePort3D);
   initfonts;
   InitCursor;
   HideCursor;
   OpenPort(@gPort);
   Open3DPort(@gPort3D);
{inizio programma principale}   
   PenPat(white);
   BackPat(Black);
   EraseRect(gPort.portRect);
   FrameRect(gPort.portRect);
   disegna;
   WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO;
END.