esercizi di grafica con turbo pascal 1.1 su mac

 

 

Program gra5;
{ esempio per figure geometriche piane  con arco }
{$U-}
   USES Memtypes,QuickDraw,OSIntf,ToolIntf;
   
   VAR
      gPort:   GrafPort;      
      sagoma: EventRecord;
      vertici:rect;
      
procedure arco;
  begin
    setrect(vertici,20,20,100,100);
    fillarc(vertici,50,50,gray);
    pensize(3,3);
    setrect(vertici,110,20,200,100);
    framearc(vertici,50,50);
    setrect(vertici,210,20,300,100);
    paintarc(vertici,50,50);
    setrect(vertici,310,20,360,100);
    fillrect(vertici,gray);
    setrect(vertici,20,200,200,300);
    framearc(vertici,60,60);
    offsetrect(vertici,20,0);
    paintarc(vertici,45,90);
  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);      
   arco;
   WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO;
END.

 

Program gra6;
{ esempio per figure geometriche piane  con ovale }
{$U-}
   USES Memtypes,QuickDraw,OSIntf,ToolIntf;
   
   VAR
      gPort:   GrafPort;      
      sagoma: EventRecord;
      vertici:rect;
      
procedure ovale;
  begin
    setrect(vertici,20,20,200,100);
    frameoval(vertici);
    offsetrect(vertici,25,15);
    pensize(3,3);
    eraseoval(vertici);
    frameoval(vertici);
    offsetrect(vertici,25,15);
    paintoval(vertici);
    offsetrect(vertici,25,15);
    pennormal;
    filloval(vertici,gray);
    frameoval(vertici);
  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);      
   ovale;
   WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO;
END.

Program gra7;
{ CAMBIO COLORE SFONDO E USO DI DRAWSTRING  e stili diversi}
{$U-}
   USES Memtypes,QuickDraw,OSIntf,ToolIntf;
      
   VAR
      gPort:   GrafPort;      
      sagoma: EventRecord;
      vertici:rect;      
procedure testi;
  begin
    { usare come numero font 0,1,2,3,4,5 ,6...9 }
    { es.0 per chicago..1 per courier..6 per palatino..9 per tymes }
    { il testo viene stampato con font e dimensioni assegnati }
    textfont(0);
    moveto(300,10);
    drawstring('testo scritto con stili vari');
    moveto(10,10);
    drawstring('testo');
    moveto(10,30);
    textface([bold]);
    drawstring('testo con grassetto o BOLD ');
   moveto(10,50);
    drawstring('testo');
    moveto(10,70);
    textface([italic]);
    drawstring('testo con grassetto o ITALIC ');
   moveto(10,90);
    drawstring('testo');
    moveto(10,120);
    textface([underline]);
    drawstring('testo con grassetto o UNDERLINE ');
   moveto(10,150);
    drawstring('testo');
    moveto(10,180);
    textface([outline]);
    drawstring('testo con grassetto o OUTLINE ');
   moveto(10,210);
    drawstring('testo');
    moveto(10,240);
    textface([shadow]);
    drawstring('testo con grassetto o SHADOW ');
   textface([]);  { normalizza testo }   
   moveto(100,280);
   drawstring('testo normale'); 
  end;  

BEGIN
{inizializzazione sottoprogrammi o routine}
   InitGraf(@thePort);      
   initfonts;
   InitCursor;
   HideCursor;
   OpenPort(@gPort);   
   
{inizio programma principale}   
   PenPat(black);
   BackPat(white);
   EraseRect(gPort.portRect);
   FrameRect(gPort.portRect);      
   testi;
   WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO;
END.

Program gra8;
{ CAMBIO COLORE SFONDO E USO DI DRAWSTRING  e stili diversi}
{ con penpat black e backpat white si possono usare tutti i font }
{ con altre combinazioni solo alcuni font sono attivabili }
{ penpat black,gray,dkgray......backpat white}
{ penpat white,gray.............backpat black..limiti }
{ penpat black..................backpat gray }
{$U-}
   USES Memtypes,QuickDraw,OSIntf,ToolIntf;
      
   VAR
      gPort:   GrafPort;      
      sagoma: EventRecord;
      vertici:rect;      
procedure testi;
  begin
    { usare come numero font 0,1,2,3,4,5 ,6...9 }
    { es.0 per chicago..1 per courier..6 per palatino..9 per tymes }
    { il testo viene stampato con font e dimensioni assegnati }
    textfont(9);
    moveto(300,10);
    drawstring('testo scritto con stili vari');
    moveto(10,10);
    drawstring('testo');
    moveto(10,30);
    textface([bold]);
    drawstring('testo con grassetto o BOLD ');
   moveto(10,50);
    drawstring('testo');
    moveto(10,70);
    textface([italic]);
    drawstring('testo con grassetto o ITALIC ');
   moveto(10,90);
    drawstring('testo');
    moveto(10,120);
    textface([underline]);
    drawstring('testo con grassetto o UNDERLINE ');
   moveto(10,150);
    drawstring('testo');
    moveto(10,180);
    textface([outline]);
    drawstring('testo con grassetto o OUTLINE ');
   moveto(10,210);
    drawstring('testo');
    moveto(10,240);
    textface([shadow]);
    drawstring('testo con grassetto o SHADOW ');
   textface([]);  { normalizza testo }   
   moveto(100,280);
   drawstring('testo normale'); 
  end;  

BEGIN
{inizializzazione sottoprogrammi o routine}
   InitGraf(@thePort);      
   initfonts;
   InitCursor;
   HideCursor;
   OpenPort(@gPort);   
   
{inizio programma principale}   
   PenPat(black);
   BackPat(gray);
   EraseRect(gPort.portRect);
   FrameRect(gPort.portRect);      
   testi;
   WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO;
END.