Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
Guida Pascal - Appendice 8 La grafica

Guida Pascal

Capitolo 27° - Appendice 8 La grafica

<< Precedente Prossimo >>
Il linguaggio del Pascal mette a disposizione una serie di funzioni e procedure finalizzate al disegno di figure sullo schermo e alla modifica dei pixel che lo compongono. Per inizializzare la modalità grafica sono necessarie alcune righe di codice, queste:

(*...*)
var gd,gm:integer;
(*...*)
gd:=detect; (*Rileva la scheda video*)
InitGraph(gd,gm,); (*Inizializza la modalità grafica*)
if graphresult<>grOK then (*Se si sono verificati errori...*)
  halt; (*...termina immediatamente il programma*)
(*...*)
CloseGraph;
(*...*)


La procedure InitGraph accetta 3 parametri: il primo è un valore numerico che la funzione detect assegna automaticamente alla variabile gd e rappresenta il tipo di scheda video; il secondo è un valore che rappresenta il driver sul quale dovrà girare la modalità grafica (vedi appendice 5, la funzione GetDir); il terzo è una stringa che rappresenta lindirizzo del file di estensione *.bgi il quale contiene i dati per inizializzare il driver alla modalità grafica (in questo caso la stringa è vuota perché si suppone che il file si trovi nella stessa directory del programma).
Graphresult è una variabile che contiene, se se ne sono verificati, un valore indicante lerrore avvenuto: la costante grOK indica che non sono avvenuti errori e la modalità grafica è stata inizializzata con successo.
Halt è una procedura, tra laltro usata abbastanza spesso, che termina allistante il programma.
CloseGraph è una procedura che va posta alla fine del programma per chiudere la modalità grafica (se il programma inizia e finisce in modalità grafica, che chiameremo dora in poi mg, senza cambi di modalità, allora questa istruzione può anche essere tralasciata, poiché lend finale chiuderà automaticamente tutto).
Se si vuole tornare alla modalità normale, si usa la procedura RestoreCrtMode: tutto ciò che è stato disegnato verrà cancellato.

Prima di illustrare brevemente le procedure e le funzioni più usate, vorrei soffermarmi un attimo sulla scrittura di testi a schermo. Infatti, nella mg, la procedura write (e anche writeln e writebuf) non funziona e viene usata, quindi, listruzione OutText(s:string), assai svantaggiosa per 2 motivi: non supporta parametri multipli, ossia accetta uno e un solo parametro di tipo stringa, quindi non potrete scrivere a video, nella stessa istruzione, i valori delle variabili (per esempio, non scriverete

OutText(Nino ha ,x, anni)


ma

var s:string;
    x:byte;
OutText(Nino ha); 
str(x,s); (*converte l'intero x nella stringa s*)
OutText(s);
OutText( anni);


Inoltre, secondo svantaggio, non è possibile scrivere numeri e caratteri speciali (come ,|,< ecc..): se ci provate troverete una macchia informe di pixel colorati.
Una forma più complessa di OutText è OutTextXY(x,y:word;s:string), che sposta il cursore al pixel di coordinate (x;y) e scrive la stringa s.

Un breve elenco delle procedure e funzioni + importanti (P=procedure, F=funzione):
  • P Arc(x,y,a1,a2:word)    
    Disegna una arco che rappresenta la parte di circonferenza con centro in (x;y) compresa tra gli angoli a1 e a2
  • P Circle(x,y,d:word)    
    Disegna un cerchio di diametro d alle coordinate x;y
  • F GetColor        
    Restituisce il colore con cui si sta disegnando
  • F GetMaxX     
    Restituisce il massimo numero delle ascisse
  • F GetMaxY         
    Restituisce il massimo numero delle ordinate
  • F Getpixel(x,y:word)
    Restituisce il colore del pixel alle coordinate x e y
  • F GraphResult         
    Restituisce il numero di un errore se linizializzazione della modalità grafica è fallita
  • P initGraph(gd,gm:integer;path:string)    
    Gd e gm sono parametric che indicano le caratteristiche della scheda video; in base a quelle viene inizializzata la modalità grafica. In path viene specificato il percorso del file bgi che serve al funzionamento della modalità grafica
  • P Line(x, y, x1, y1:word)    
    Traccia una linea da x,y a x1,y1
  • P MoveTo(x, y:word)    
    Muove il cursore al punto di coordinate x e y
  • P OutText    (s:string)    
    Scrive una e una sola stringa s a schermo
  • P OutTextXY(x,y:word;s:string)    
    Muove il cursore a (x; y) e scrive s
  • P PutPixel(x, y, c:word)    
    Illumina un pixel a (x; y) del colore c (range: 1..15)
  • P rectangle(x, y, x1, y1:word)    
    Disegna un rettangolo date le coordinate
  • P SetColor(c:byte)    Definisce il colore per disegnare in c
<< Precedente Prossimo >>
A proposito dell'autore

Programmatore e analista .NET 2005/2008/2010 (in particolare C# e VB.NET), anche nell'implementazione Mono per Linux. Conoscenze approfondite di Pascal, PHP, XML, HTML 4.01/5, CSS 2.1/3, Javascript (e jQuery). Conoscenze buone di C, LUA, GML, Ruby, XNA, AJAX e Assembly 68000. Competenze basilari di C++, SQL, Hlsl, Java.