lunedì 18 novembre 2013

Suddivisione di una circonferenza in settori proporzionali a numeri dati


Si vuole fare in modo che le suddivisioni non siano un numero prefissato.
Numero delle suddivisioni: n
Si definisce uno slider nella variabile n che possa assumere valori interi tra 2 e 6.
Si definiscono poi sei slider nelle variabili n1, n2, n3, n4, n5, n6 che però non vengono visualizzati tutti ma solo in numero di n.
Gli n slider visibili verranno usati per impostare i numeri che determinano l'ampiezza dei settori circolari in cui è suddivisa la cireconferenza.
Il numero di queste variabili dipende dal numero massimo di suddivisioni che vogliamo fare.
Per esempio se n = 5 vengono visualizzati solo gli slider n1, n2, n3, n4, n5.
Quindi n1 ed n2 vengono mostrati sempre mentre n3 solo se si vogliono avere più di due settori, questo si ottiene scrivendo nella linea di editor della finestra Proprietà/Avanzate/ Condizioni per mostrare l'oggetto: n>2.
Allo stesso modo n4 viene mostrato se n>3, n5 solo se n>4 e ne6 solo de n>5.
Si predispone una lista contenente i sei numeri delle variabili n1, n2, ..., ad esempio:
Lnum = {n1, n2, n3, n4, n5, n6}
Non tutti però verranno usati per costruire le suddivisioni della circonferenza, dato che ne verranno usati solo n (numero intero impostato sullo slider) occorre costruire una lista contenente i primi n valori di Lnum.
L = Estrai[Lnum, 1, n]
D'ora in poi le liste successive che costruiscono i settori verranno costruite usando la variabile n.

Occore calcolare la somma dei valori di L: s = Somma[L]
L'ampiezza del settore circolare relativo ad un elemento k si calcola in base alla seguente proporzione: s : (elemento k) = 360° : (angolo di apertura del settore k)
Lista per calcolare l'ampiezza in gradi dei settori circolari:
Lg = Successione[360° Elemento[L, k] / s, k, 1, n]
occorre calcolare anche una lista con i valori cumulativi degli angoli per poter tracciare le suddivisioni.
Lgc = Successione[Somma[Estrai[Lg, 1, k]], k, 1, n]
A questa lista che contiene il valore 360° aggiungiamo anche il valore 0° che occupano la stessa posizione sulla circonferenza.
Lgc' = Aggiungi[0°, Lgc]
Tracciamo sulla circonferenza i punti che determinano le suddivisioni della circonferenza in archi proporzionali:
Lp = Successione[Ruota[P, Elemento[Lgc, k], O], k, 1, n]
Tracciamo i raggi che delimitano i settori circolari:
Ls = Successione[Segmento[O, Elemento[Lp, k]], k, 1, n]
Utilizzando la lista L calcoliamo i valori percentuali degli n numeri inseriti
Lper = Successione[Elemento[L, k] / s 100, k, 1, n]
Finora la lista Lgc' non è stata usata perchè non serviva ma ora inserire dei testi all'interno dei settori circolari bisogna avere un primo ed un ultimo valore nella sequenza degli angoli per determinare le posizioni centrali dei settori
Segue la lista dei testi dove ai valori percentuali viene aggiunto il simbolo %
Lt = Successione[Testo[Elemento[Lper, k] + " %", (2 raggio / 3; Elemento[Lgc', k] + Elemento[Lg, k] / 2)], k, 1, n]
La posizione in cui sono scritti i testi è espressa dal punto scritto in coordinate polari (notare il punto e virgola tra le coordinate) posto a distanza 2/3 dal raggio sulla bisettrice del settore in una posizione angolare ottenuta facendo la media degli angoli che delimitano il settore stesso.
(2 raggio / 3; Elemento[Lgc', k] + Elemento[Lg, k] / 2)
Le liste relative ai testi si possono togliere se si vogliono aggiungere un numero elevato di suddivisioni.
La App funzionante descritta sopra può essere scaricata all'indirizzo di GeoGebraTube: http://www.geogebratube.org/material/show/id/55992

Nessun commento:

Posta un commento