4.4.2.1 Tipi
di Componenti ed Altre Funzioni.
Quello che abbiamo visto fino ad ora
è interessante, ma limitato. POV-Ray ha un po' di trucchi extra
che rendono più utili i blob. Per esempio, come abbiamo visto ,
possiamo assegnare texture alle singole componenti dei blob e possiamo
anche applicare trasformazioni individuali (traslare, ruotare, scalare)
per stringere, torcere e schiacciare parti del blob a seconda delle nostre
necessità. Forse ancora più interessante, il codice del blob
è stato esteso a componenti cilindriche.
Prima di passare ai cilindri, dovrebbe forse essere detto che la vecchia
descrizione delle componenti usata nelle precedenti versioni di POV-Ray
funziona ancora. Allora tutti i componenti erano sfere e quindi non era
necessario specificare sphere
oppure cylinder.
Una componente 'vecchio stile' aveva la forma :
component STRENGTH, RADIUS, <CENTER>
Che ha lo stesso effetto di una componente
sferica, come abbiamo già visto sopra. Questo serve solo per garantire
la compatibilità all'indietro. Se abbiamo già file di POV-Ray
con blob delle versioni precedenti, questo è il momento in cui abbiamo
bisogno di riconoscere quelle componenti. Notiamo che le componenti 'vecchio
stile' non mettevano parentesi graffe attorno a STRENGTH,
RADIUS, <CENTER> e naturalmente,
non possiamo trasformarle o assegnare loro materiali indipendentemente
e così se stiamo semplicemente traducendo un vecchio file contenente
blob in un nuovo file di POV-Ray convertire componenti 'vecchio stile'
nelle nuove componenti (comunque sferiche) non porterebbe molti vantaggi.
Ed ora, qualcosa di diverso : le componenti cilindriche. Si potrebbe
obiettare che tutto quello di cui avevamo bisogno per descrivere una componente
cilindrica in un blob era di mettere in fila molte componenti sferiche.
Che va bene, se ci piace dovere scrivere di più e anche se assumiamo
che questo cilindro sia orientato lungo un asse. Altrimenti dovremmo ricavarci
la posizione matematica di ogni componente per tenerle in linea. Ora non
più ! Sono arrivate le componenti cilindriche.
Rimpiazziamo il blob dell'ultimo esempio con questo e renderizziamo. A
proposito, possiamo anche sbarazzarci delle sfere trasparenti.
blob {
threshold .65
cylinder { <-.75,-.75,0>, <.75,.75,0>, .5, 1 }
pigment { Blue }
finish { phong 1 }
}
![]() |
Fig. 17-Blob cilindrico
Abbiamo solo una componente cilindrica in modo da poterne vedere la forma iniziale. Non è proprio un vero cilindro, assomiglia di più ad una salsiccia, essendo un cilindro chiuso da due semisfere. Pensiamolo come una linea di componenti sferiche lungo una linea retta. Come per la stessa dichiarazione della componente : semplice, logica, esattamente come ci saremmo aspettati (ammesso che siamo rimasti svegli fino ad ora) : assomiglia molto alla dichiarazione di un oggetto 'cilindro', con vettori che specificano le due estremità ed un valore che fornisce il raggio del cilindro. Ovviamente, l'ultimo valore è la forza della componente. Come per le componenti sferiche, la forza determinerà la natura ed il grado dell'interazione di questa componente con le sue compagne. Allora, diamo a questo ragazzo qualcosa con cui interagire, no ?
![]() |
![]() |
![]() |