Su di un'immagine quadrata è disegnata una circonferenza con n stelle equidistanti colorate con gradiente.La costante define('DIMSTAR', 150); contiene le dimensioni del contenitore quadrato di gradiente e stella. Ogni stella è creata inscrivendo 2 poligoni in circonferenze di diverso raggio ed unendo alternativamente i punti delle 2 circonferenze.La lunghezza dei raggi delle stelle è data dalla differenza dei raggi fra le due circonferenze.La distanza fra le stelle è determinata dalla loro quantità, mentre la rotazione sul proprio asse ed il numero dei raggi definito a piacere.I punti di ogni stella sono calcolati per ciascuna di esse ruotandole come da istruzioni ricevutute con
Essendo, le stelle, inscritte in circonferenza, ruotando sul proprio asse centrale non determinano un ingrandimento dell'immagine che viene poi copiata nella figura finale.Sono salvate anche le immagini in elaborazione per mostrare il funzionamento dello script.
Le componenti dello script, completamente commentato, sono:
es_134_Imma_Gra.png, contiene il gradiente creato
es_134_Imma_Stella.png, stella rossa per determinarne limiti dove copiare il gradiente
es_134_stelle_e_gradiente.png, risultato finale, contiene stelle con gradiente in circonferenza
Variabili:
$DimensioneImmagine, dimensione dell'immagine stella e del gradinete necessario a colorarla.
Usato come costante define('DIMSTAR', $DimensioneImmagine); nello script
L'immagine finale è 4 volte più grande
La dimensione dell'immagine contenitore viene calcolata su questa.$StelleQuantita, quantità delle stelle che comporranno la figura risultato finale $VerticiQuantita, Quantità punte di ciascuna stella. $VerticiInizio, punto di disegno, espresso in gradi, del priomo raggio della stella. $Gradiente, gradiente usato nello script $GradientiColore, nomi dei gradienti disponibili nello script
Funzioni dello script e loro variabili:
RendeImmagineTrasparente(), rende trasparente immagine passata
CreaGradiente(), disegna un gradiente sferico del colore settato
DeterminaValori(DIMSTAR, $VerticiQuantita, $VerticiInizio);
$VerticiQuantita, quantità dei raggi della stella
$VerticiInizio, espresso in gradi, posizione del primo raggio
ritorna $PuntiXYa o $PuntiXYb, array dei punti xy cartesiani dei vertici
DisegnaStella(), disegna una stella colorata usando i valori tornati da DeterminaValori()$PuntiXYa, $PuntiXYb, punti x,y sul paino cartesiano $Colore, colore della stella
StelleSuContenitore(), disegna le stelle sull'immagine risultato$Immagine, immagine risultato$Imma_Gra, immagine con gradiente$Imma_Stella, immagine con stella$StarX, $StarY, coordinate cartesiane della stella