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).

— Lezione successiva —

— Lezione precedente —