HOME OGGETTI 3D LIBRI CORSI TUTORIAL FORUM SHOP CONTATTI   LOGIN









Autore Topic: Esempi di utilizzo di variabili indicizzate  (Letto 2053 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

marcomasetti

  • Newbie
    ...sono qui da poco, il mio miglior amico è il pulsante RICERCA
  • *
  • Post: 183
Esempi di utilizzo di variabili indicizzate
« il: 19 Dicembre 2012, 16:14 »
Il comando DIM, seguito da 1 o 2 parentesi quadre, permette di inserire nel testo variabili indicizzate.
Queste variabili, nel caso di un solo indice, permettono di calcolare il valore di elementi di una successione o di una serie. Ad esempio i valori di certe funzioni, come sin(x), si possono sviluppare in serie e sarebbe possibile calcolarne con questo metodo il valore approssimativo. Tale valore è comunque già presente nel comando omonimo, ma non tutte le funzioni sviluppabili in serie sono ovviamente contenute nei comandi predefiniti. Sempre basandosi su tali variabili è possibile costruire certe successioni cui gli antichi attribuivano valori magici, come i numeri “triangolari”, “pentagonali”, “esagonali” o “stellari”. Rimando al volume  L.Hogben, La matematica nella storia e nella vita, Hoepli, Milano 1938, pp.266 e seguenti. L’aritmetica qui si interseca con la geometria, anche perché questo tipo di ragionamenti può essere utile per costruire forme primitive. Invito ad aprire gli oggetti GDL e a “smontarne” il contenuto.

Allego qui il testo 2D del numero "pentagonale":

n= !variabile n: numero intero cui corrisponde il numero pentagonale in fondo=n*(n-1)/2+n^2

r=1/n           !raggio dei circoli entro cui inserire un numero
l=2*r+r/3     !interasse tra i circoletti

fill 24          !riempimento uniforme al 25% dei circoletti

DIM ni[ ]     !definisco la variabile ni a un solo indice,lasciandola dinamica(cioè senza limiti superiori, non precisando un numero)

for i=1 to 3/2*n^2-n/2  !=n*(n-1)/2+n^2
ni=i
next i    !definisco i valori 1,2,3,... della variabile ni =numeri naturali da 1 a n*(n-1)/2+n^2
!il valore n*(n-1)/2 corrisponde ai circoletti disposti sul triangolo

DEFINE STYLE "st1" "Arial", r*10, 5,0
STYLE "st1"

for j=1 to n
for i=1 to n
x=l/2*(2*i-n-1)
y=l/2*(2*j-n-1)
POLY2_ 2, 7, x,y,   900,r,360,4001
TEXT2        x,y,   ni[i+n*(j-1)] !viene richiamata la variabile indicizzata che aumenta di n ad ogni riga j
next i
next j

DIM mi[ ]

mi[1]=0
mi[2]=n-1
for i=3 to n-1
mi=mi[i-1]+(n-i+1)
next i !viene  definita una nuova serie per i numeri triangolari:ogni riga fa un salto della quantità variabile n-i+1

pen 20
for j=1 to n-2
for i=1 to n-j
x=l/2*(2*i+j-n-1)
y=l/2*(n+1+(j-1)*sqr(3))
POLY2_ 2, 7, x,y, 900,r,360,4001
TEXT2        x,y, n^2+ni[i+mi[j]]
next i
next j

pen 1
POLY2_ 2, 7, 0,l/2*(n+1+(n-2)*sqr(3)), 900,r,360,4001
TEXT2        0,l/2*(n+1+(n-2)*sqr(3)), n^2+ni[1+mi[n-1]]
!il risultato finale è stato isolato per cambiare il valore penna