QUINDICESIMA LEZIONE: Leonardo
5, Informazione
Quesito: “come faccio a trasmettere,
gestire, organizzare delle informazioni, in modo ottimale, utilizzando un metodo
che sia efficiente, intelligente, interattivo?”
Utilizzando i sistemi gerarchici.
Che si intende per informazione?
De Fusco ne da una definizione obsoleta:
“elemento di conoscenza recato da un messaggio che ne è il supporto
e di cui essa costituisce il messaggio”
Per noi l’INFORMAZIONE è IN FORMAZIONE
Se torniamo al discorso del database,
diciamo che ogni cella contiene un dato, un bit.
C’è un rapporto tra dato e prefigurazione: posso disegnare una
forma
quando diventa informazione? quando ho un modello, una forma in cui calare l’oggetto:
se stessimo parlando di numeri sarebbe uno zero
se stessimo parlando di lettere sarebbe una O
se stessimo parlando di musica sarebbe una semibreve
se stessimo in una rappresentazione
grafica, sarebbe una figura composta da bitmap (logica raster) o una figura
geometrica (logica vettoriale)
ecc. ecc. ecc.
Nell’informatica questo oggetto non può esistere se non nasce già in un modello, non può essere più cose, perché prima viene definito il contesto, e poi vi viene calato l’oggetto.
Suppongo di dover trasmettere una
forma tridimensionale, situata all’interno di una terna tri-ortogonale;
il mio codice sarà così costituito:
shape nome
posizione x y z
scheda database
deformazione rotazione, scala (uniforme sui 3 assi o no) rispetto ad una forma
data: si tratta di informazioni parametriche; significa che ho già trasmesso
la forma originale, cioè primitiva, utilizzando sei righe di codice,
una per ogni faccia del solido
Si introduce il concetto di sistemi
gerarchici: ovvero programmi che lavorano con queste primitive, che possiamo
chiamare instance o external reference.
L’utente stesso può creare delle instance esterne, che nomina e
poi duplica, assegnando a ciascuna copia posizione, rotazione e scala a piacimento.
In sostanza si lavora su due livelli:
a. creazione di una o più instance (oggetti)
b. duplicazione con eventuali modifiche ed inserimento nell’ambiente di
lavoro
Vediamo un esempio di instance, per
la quale vengono forniti i quattro vertici di ciascuna delle sei facce:
Cubo=
0; pen 0.000 0.000 0.000
1; fill 65535.000 65535.000 65535.000
2; shape -242.000 32.500 50.000
3; normal 0.000 0.000 -1.000
4; polygon -339.000 151.000 0.000
5; polygon -145.000 151.000 0.000
6; polygon -145.000 -86.000 0.000
7; polygon -339.000 -86.000 0.000
8; normal 0.000 0.000 1.000
9; polygon -339.000 -86.000 100.000
10; polygon -145.000 -86.000 100.000
11; polygon -145.000 151.000 100.000
12; polygon -339.000 151.000 100.000
13; normal 0.000 1.000 0.000
14; polygon -339.000 151.000 0.000
15; polygon -339.000 151.000 100.000
16; polygon -145.000 151.000 100.000
17; polygon -145.000 151.000 0.000
18; normal 1.000 0.000 0.000
19; polygon -145.000 151.000 0.000
20; polygon -145.000 151.000 100.000
21; polygon -145.000 -86.000 100.000
22; polygon -145.000 -86.000 0.000
23; normal 0.000 -1.000 0.000
24; polygon -145.000 -86.000 0.000
25; polygon -145.000 -86.000 100.000
26; polygon -339.000 -86.000 100.000
27; polygon -339.000 -86.000 0.000
28; normal -1.000 0.000 0.000
29; polygon -339.000 -86.000 0.000
30; polygon -339.000 -86.000 100.000
31; polygon -339.000 151.000 100.000
32; polygon -339.000 151.000 0.000
33; end 0.000 0.000 0.000
Il concetto di normal serve a capire cosa è interno e cosa è esterno
in una fase di rendering
A questo punto l’inserimento nell’ambiente di lavoro di figure analoghe, può avvenire in maniera molto più veloce, sarà sufficiente fornire origine, rotazione e scala rispetto all’instance di partenza:
0; object OggettoCubo
1; origin 0.000 0.000 0.000
2; rotate 0.000 0.000 0.000
3; scale 1.000 1.000 1.000
4; object OggettoCubo
5; origin -269.448 -167.075 0.000
6; rotate 0.000 0.000 0.000
7; scale 0.176 0.141 1.000
8; object OggettoCubo
9; origin 164.264 10.509 0.000
10; rotate 0.000 0.000 0.000
11; scale 0.542 0.435 1.000
12; object OggettoCubo
13; origin 72.264 -187.491 0.000
14; rotate 14.690 17.448 4.495
15; scale 0.542 0.435 1.000
16; object OggettoCubo
17; origin 374.155 75.657 0.000
18; rotate 6.812 15.612 23.935
19; scale 0.670 0.516 1.000
20; return 0.000 0.000 0.000
Il sistema è interattivo,
perché la ridefinizione dell’instance, comporta l’immediato
aggiornamento di tutte le sue copie.
E’ inoltre possibile riunire più oggetti in gruppi, nasce così
un livello intermedio:
a. creazione di una o più instance (oggetti)
b. creazione di gruppi o ambienti, in cui sono inseriti gli oggetti del livello
precedente, con una propria posizione, rotazione e scala; ottengo quindi delle
configurazioni
c. inserimento nell’ambiente di lavoro delle configurazioni, anch’esse
con posizione, rotazione e scala variabile rispetto all’originale
Il sistema è altamente interattivo, perché consente di intervenire,
apponendo modifiche sia al primo livello (con conseguente aggiornamento dei
successivi), sia al secondo livello (con conseguente aggiornamento del terzo).