Utilizzo di cookies
Script GD libray con PHP Modelli Creare immagine Colore e trasparenza Disegnare Pennelli Misurare Filtri Testo Copy Salvare Miscellanea
GD library con PHP
Diagrammi circolari o a Torta
Imagearc e calcoli trigonometrici


e-book
cartaceo

Il grafico circolare (noto come grafico a torta, areogramma, o diagramma a torta) è un metodo utile alla rappresentazione di valori misurabili su classi di categorie, al fine di evitare di stabilire, anche involontariamente, un ordine che non esiste.
Il grafico a torta viene costruito dividendo una circonferenza in spicchi le cui dimensioni angolari sono proporzionali a ciascun valore rappresentato nel grafico.
Quando i valori rappresentati con questo tipo di grafico sono più di uno, ognuno di essi sarà riprodotto come frazione di 360 che sono i gradi dell'angolo giro. 
Per i grafici a torta con GD, occorrono funzioni che disegnano archi di cerchio centrati alle coordinate, cioè imagearc() e imagefilledarc() con le sue costanti.
Il sistema considera l'inizio della circonferenza, 0 gradi, a partire da ore 3 avanzando in senso orario, a ore 6 abbiamo 90 gradi, ore 9, 180 gradi e così via fino alla circonferenza completa.
Da programmazione è possibile far iniziare il primo spicchio della torta dove è ritenuto più opportuno anche se nella maggior parte dei casi non è necessario.
Nel caso di grafici con numerose voci, e quindi altrettanti spicchi di torta, può capitare che sul monitor questi non vengano ben apprezzati nelle loro dimensioni per aver sbagliato la scelta dei colori contigui.
Sempre con voci molteplici, in grafici creati dinamicamente, la quantità dei colori può risultare insufficiente.
In questo caso è buona norma instaurare un meccanismo che permetta allocare automaticamente i colori meglio se in tinte  contrastanti fra loro.


Nei diagramma circolari,  la legenda, solitamente con percentuale di ciascun valore, è leggibile subito al di fuori del grafico, all'estremità esterna di ciascun arco.Per poter presentare questo tipo di legenda occorre che nello script vengano effettuati i calcoli necessari a stabilire i punti dove mostrare i dati.

Da un punto di vista tecnico, un grafico a torta (o diagramma circolare) è una circonferenza.Tale circonferenza è disegnata su di un piano cartesiano con punto d'origine x=0, y=0 in alto a sinistra.Della circonferenza conosciamo il centro X,Y sul piano cartesiano, ed  il raggio. 

Questo diagramma circolare è suddiviso in spicchi le cui ampiezze angolari, e quindi gli archi, sono proporzionali ai valori rappresentati.Degli archi conosciamo la quantità e quindi possiamo calcolarne gli estremi.

Per inserire i valori intorno alla circonferenza ed in corrispondenza degli archi, occorre calcolare le coordinate sul piano cartesiano, del punto dell'arco che ci interessa.

Con le seguenti operazioni è calcolato il punto X,Y d'inizio dell'arco.Convertire il numero di gradi in equivalenti radianti e calcolarne il coseno ed il seno.


cos = cos(deg2rad(InizioArco)); sin = sin(deg2rad(InizioArco));
Quindi calcolare i punti X,Y sul piano cartesiano.


X =  round(cos*(0) - sin*(Raggio));Y =  round(sin*(0) + cos*(Raggio));
Conosciuti questi punti, occorre tenere presente che:

Con GD gli archi sono in senso orario, mentre in trigonometria in senso antiorario.Su schermo l'origine X,Y è in alto a sinistra.La scrittura dati, ai punti X,Y calcolati, avviene da sinistra verso destra e potrebbe andare a sovrapporsi al grafico stesso.