Corso di AMOS
Torna all'elenco delle lezioni LEZIONE 5: Grafica con AMOS

Amiga ha sempre stupito per la buona grafica che è in grado di fornire. Con AMOS è possibile programmare la grafica in maniera molto semplice e chiara, grazie alla leggendaria versatilità dei potenti comandi che vi illustreremo.
Questi comandi sono creati per gestire la grafica diretta, cioè disegnare linee, punti e cerchi gestendo anche la loro colorazione. Con AMOS è ovviamente possibile anche utilizzare schermate preparate con programmi di disegno come Deluxe Paint o altri ancora, ma questo è un argomento che tratteremo nelle prossime lezioni.

Ecco i comandi interessati a questo argomento:


Bar x1,y1 To x2,y2
Traccia un rettangolo e lo riempie del colore settato con il comando Ink (spiegato di seguito in questa lezione).

Es.: Bar 0,0 TO 100,50

Traccia un rettangolo pieno che parte dall'estremo margine sinistro (0,0), di larghezza 100 ed altezza 50.


Box x1,y1 To x2,y2
Traccia un rettangolo vuoto di angolo superiore sinistro x1,y1 e angolo inferiore destro x2,y2.


Circle x,y,r
Traccia un cerchio di centro x,y e di raggio r.


Clip x1,y1 To x2,y2
Limita tutte le operazioni di disegno impartite dai comandi grafici all'interno del rettangolo definito. Le coordinate si inseriscono come nei comandi Box e Bar. Clip impartito senza coordinate annulla l'ultimo Clip eseguito.


Colour n,$RGB
Assegna ad un indice il colore definito dalle porzioni RGB selezionate. Più precisamente, uno screen a 32 colori contiene 32 indici che vanno( da 0 a 31) ad ognuno dei quali posso assegnare un colore a mio piacimento interagendo con i tre valori RGB (Rosso, Verde e Blu) ognuno dei quali varia da 0 ad F, cioè il numero 15 espresso in esadecimale.
Per chi ha esperienza di disegno con Deluxe Paint, Personal Paint o altri programmi simili, quando si modifica un colore, dopo averlo selezionato, si lavora con tre slider per ottenere il colore desiderato. Muovendo questi slider, non si fa altro che cambiare i valori R-G-B di quel indice.

Es.: Colour 0,$A74

Assegna all'indice 0 il colore che risulta mescolando il valore A del rosso, il valore 7 del verde e il valore 4 del blu. Il massimo che si può raggiungere e $FFF, cioè il bianco; notare che viene usato il sistema esadecimale, che permette di inserire valori superiori al 9 sostituendoli con una lettera, quindi per esempio per indicare il valore 10 useremo la lettera A ... per indicare il valore 11 useremo la lettera B ... e così via, fino al valore massimo di 15 che indicheremo con F .


=Colour(n)
Ritorna il valore del colore assegnato all'indice n, il quale risulterà però espresso in decimale. Per vederlo più chiaramente espresso in esadecimale bisogna utilizzare la seguente sintassi:

Print Hex$(Colour(n))
Tale stringa nel caso che il colore dell'indice n sia bianco, stamperà $FFF.


Draw x1,y1 To x2,y2
Traccia una linea dal pixel x1,y1 al pixel x2,y2. Dopo aver impartito tale ordine, se noi digitiamo: Draw To x3,y3, la linea proseguirà fino a giungere al pixel x3,y3.


Ellipse x,y,r1,r2
Traccia un ellisse col centro nel pixel x,y, con raggio orizzontale avente valore r1 e raggio verticale avente valore r2.


Ink c[,paper][,border]
Fissa rispettivamente il colore di foreground, di backgound e il bordo (per figure piene) per operazioni di disegno.

Es.: Ink 1,0,2

Fissa il colore 1 per il primo piano, il colore 0 per lo sfondo, ed il colore 2 per il contorno. Il secondo e terzo valore sono opzionali. I comandi grafici (Circle, Box, Bar, etc.) successivi a questa istruzione utilizzeranno il colore settato con Ink


Paint x,y,modo
Colora un area chiusa e cui appartiene il pixel x,y col colore definito con Ink (modo può essere 1 o 0).


Palette lista colori
Fissa le porzioni RGB dei colori compresi nella lista

Es.: Palette $FFF,,$000 Cambia il colore 0 e il colore 2).


Plot x,y[,c]
Disegna un pixel di coordinate x,y e di colore c


=Point x,y
Ritorna l'indice del colore del pixel presente nelle coordinate x,y


Polygon x1,y1 To x2,y2 To ...xn,yn
Traccia un poligono pieno con colore definito da Ink unendo i pixel definiti in x1,y1, x2,y2 fino alle coordinate xn,yn.


Polyline x1,y1 To x2,y2 to ...xn,yn
Comando analogo a Polygon con la sola differenza che traccia una figura vuota.


Set Line maschera
Definisce una maschera, cioè un pattern di 16 bits per il tracciamento di linee.

Es.:

Cls 0
Set Line $FFF
Draw 0,30 To 320,30
Set Line %1010101010101010
Draw 0,60 To 320,60

Traccia una linea piena ed una tratteggiata.


Set Paint n
Attiva (n=1) e disattiva (n=0) il modo Outline per il tracciamento del bordo in figure piene usando il colore definito con Ink


Set Pattern n
Stabilisce il tipo di riempimento per figure chiuse (sè n=0 il riempimento è uniforme col colore di Ink; se n>0 è fissato uno dei 34 tipi di riempimento de default; se n<0 il riempimento sarà definito da uno sprite del banco 1, la cui larghezza non deve superare i 16 pixels e l'altezza può essere una potenza di 2 dalla 2 elevato alla 0' alla 2 elevato alla 6'; il numero dello sprite sarà calcolato con la formula:

Sprite Image = Pattern * -1


=XGR
Ritorna la coordinata X del cursore grafico. Utile in operazioni di disegno complesse.


=YGR
Ritorna la coordinata Y del cursore grafico.

Es.: Print "X= ";XGR+"Y= ";YGR

Stampa le coordinate del cursore grafico.

-IL CURSORE GRAFICO-

A differenza del cursore di testo, argomento trattato in una delle precedenti lezioni, il cursore grafico permette di posizionare qualsiasi parte grafica, quindi anche il testo, usando spostamenti mirati al singolo pixel utilizzando coordinate X orizzontali che vanno in crescendo partendo dal pixel 0 posto all'estrema sinistra proseguendo verso destra e Y verticali sempre da 0 partendo dall'alto verso il basso.

Ok! Vi è stato elencato il parco comandi di AMOS inerente alla grafica diretta. Nella prossima lezione parleremo delle procedure, cioè un modo per partizionare il prorprio programma dividendolo in più parti indipendenti, col fine di muoversi meglio fra le righe del listato, soprattutto quando questo è molto lungo.
Inoltre spiegheremo i comandi per creare strutture cicliche e blocchi decisionali.
Questa parte potrebbe risultare un pò noiosa, ma è comunque obbligatorio affrontarla, in quanto, senza di essa, un programma non potrebbe aver luogo.
Una volta sbucciata:-) questa "patata bollente" ed affrontate altre parti indispensabili come i banchi di memoria, le funzioni matematiche e qualche altro argomento utile, saremo finalmente pronti ad affrontare la parte più interessante del corso che prevede una gestione avanzata della grafica mediante l'utilizzo di schermate da noi create con altri programmi come il Deluxe Paint, l'uso degli sprite e tutto ciò che concerne la parte audio.

Alla prossima lezione.


 Il corso di AMOS è scritto da:   Impaginazione by:
Barbieri Adriano
& Joseph Lombardo
Trombini Davide

[Index]    [4° Lezione]    [6° Lezione]


Copyright AMiWoRLD