Mirror di ebook, audiolibri e file musicali tratti da Liber Liber


CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions Manuale di Utilizzo di POV-Ray 3.01 - Versione Italiana

4.4.8        Superellissoide



Sometimes we want to make an object that does not have perfectly sharp edges like a box does. Then, the superquadric ellipsoid is a useful object. It is described by the simple syntax:

superellissoid {<r,n>}

Dove r ed n sono numeri reali maggiori di zero e minori o uguali ad uno. Facciamo un superellissoide e sperimentiamo un po'con i valori di r ed n per vedere cosa possiamo ottenere.
Creiamo un file chiamato supellps.pov e lo editiamo come segue :

#include "colors.inc"
camera {
location <10, 5, -20>
look_at 0
angle 15
}

background { color rgb <.5, .5, .5> }
light_source { <10, 50, -100> White }

Aggiungere uno sfondo grigio ci rende più semplice vedere il nostro oggetto. Poi aggiungiamo :

superellipsoid { <.25, .25>
pigment { Red }
}

Salviamo e renderizziamo a 200x150 per vedere cos'è.

Fig. 37-Superellissoide

Sembra un cubo, ma ha gli angoli arrotondati. Ora sperimentiamo diversi valori di r ed n. Per la prossima prova, usiamo <1, 0.2>.

Fig. 38-Superellissoide "cilindrico"

Ora sembra un cilindro, ma gli spigoli sono arrotondati. Proviamo <0.1,1>.

Fig. 39- Superellissoide

Questa è strana ! Non sappiamo esattamente come chiamarla, ma è interessante. Infine proviamo <1,1>.

Fig. 40-Superellissoide

Bene, questa è più familiare...una sfera ! (In effetti si possono usare valori superiori ad uno, fino a circa 8, sia per r che per n, ottenendo oggetti abbastanza interessanti N.d.T.)

Fig. 41-Superellissoide

Dovremmo conoscere un paio di cose riguardo ai superellissoidi in POV-Ray . Primo, dovremmo evitare di assegnare valore zero sia ad r che ad n, dato che POV-Ray restituirebbe un cubo nero al posto del nostro oggetto. Secondo, valori molto piccoli di r ed n possono dare strani risultati e quindi andrebbero evitati. Infine, la soluzione di Sturm (§ 7.5.7.5) non funziona con i superellissoidi.
I superellissoidi sono oggetti finiti e quindi rispondono all'auto-bounding e possono essere usati per CSG. Ora usiamoli per fare qualcosa di utile in una scena. Faremo un pavimento a mattonelle e ci metteremo sopra un paio di superellissoidi. Possiamo partire dal file che abbiamo appena fatto. Lo rinominiamo tiles.pov e lo editiamo in modo che sia così :

#include "colors.inc"
#include "textures.inc"

camera {
location <10, 5, -20>
look_at 0
angle 15
}
background { color rgb <.5, .5, .5> }
light_source{ <10, 50, -100> White }

Nota che abbiamo aggiunto #include "textures.inc" in modo da potere utilizzare texture predefinite. Ora vogliamo definire il superellissoide che sarà la nostra mattonella .

#declare Tile = superellipsoid { <0.5, 0.1>
scale <1, .05, 1>
}

I superellissoidi sono grandi all'incirca 2x2x2 unità a meno che non vengano ridimensionati in altro modo. Se vogliamo disporre un po'di queste mattonelle una di fianco all'altra, dovranno essere traslate in modo da non sovrapporsi.Dovremo scegliere un valore per questa traslazione leggermente superiore a 2 in modo che ci sia un po' di spazio tra le mattonelle da riempre con stucco. Quindi aggiungiamo :

#declare Offset = 2.1

Ora vogliamo costruire una riga di mattonelle. Ogni mattonella sarà traslata, rispetto all'originale di una distanza sempre crescente nelle direzioni +z e -z. Ci riferiamo al nostro valore di offset e lo moltiplichiamo per il 'numero' di ogni mattonella per determinare la posizione di quella mattonella nella riga. Poi uniamo le mattonelle in un singolo oggetto chiamato Row (riga) in questo modo :

#declare Row = union {
object { Tile }
object { Tile translate z*Offset }
object { Tile translate z*Offset*2 }
object { Tile translate z*Offset*3 }
object { Tile translate z*Offset*4 }
object { Tile translate z*Offset*5 }
object { Tile translate z*Offset*6 }
object { Tile translate z*Offset*7 }
object { Tile translate z*Offset*8 }
object { Tile translate z*Offset*9 }
object { Tile translate z*Offset*10 }
object { Tile translate -z*Offset }
object { Tile translate -z*Offset*2 }
object { Tile translate -z*Offset*3 }
object { Tile translate -z*Offset*4 }
object { Tile translate -z*Offset*5 }
object { Tile translate -z*Offset*6 }
}

Questo ci fornisce una singola riga di 17 mattonelle. Più che sufficienti per riempire lo schermo. Ora dobbiamo fare delle copie della riga e traslarle, di nuovo secondo il valore di offset, nelle direzioni +x e -x allo stesso modo.

object { Row }
object { Row translate x*Offset }
object { Row translate x*Offset*2 }
object { Row translate x*Offset*3 }
object { Row translate x*Offset*4 }
object { Row translate x*Offset*5 }
object { Row translate x*Offset*6 }
object { Row translate x*Offset*7 }
object { Row translate -x*Offset }
object { Row translate -x*Offset*2 }
object { Row translate -x*Offset*3 }
object { Row translate -x*Offset*4 }
object { Row translate -x*Offset*5 }
object { Row translate -x*Offset*6 }
object { Row translate -x*Offset*7 }

Finalmente le nostre mattonelle sono complete, ma abbiamo bisogno di un materiale. Per questo motivo, uniamo insieme tutte le righe e le colonne e applichiamo una colorazione marmorizzata ed una finitura brillante ed un po'riflettente.

union{
object { Row }
object { Row translate x*Offset }
object { Row translate x*Offset*2 }
object { Row translate x*Offset*3 }
object { Row translate x*Offset*4 }
object { Row translate x*Offset*5 }
object { Row translate x*Offset*6 }
object { Row translate x*Offset*7 }
object { Row translate -x*Offset }
object { Row translate -x*Offset*2 }
object { Row translate -x*Offset*3 }
object { Row translate -x*Offset*4 }
object { Row translate -x*Offset*5 }
object { Row translate -x*Offset*6 }
object { Row translate -x*Offset*7 }
pigment { White_Marble }
finish { phong 1 phong_size 50 reflection .35 }
}

Ora dobbiamo aggiungere lo stucco. Questo può semplicemente essere un piano bianco. Abbiamo aumentato un poco il parametro ambient in modo da farlo diventare più bianco.

plane { y, 0 //questo è lo stucco.
pigment { color White }
finish { ambient .4 diffuse .7 }
}

Per completare la nostra scena, aggiungiamo cinque diversi superellissoidi, ognuno di un diverso colore, in modo che 'fluttuino' sopra le nostre mattonelle e vi siano riflessi.

superellipsoid {
<0.1, 1>
pigment { Red }
translate <5, 3, 0>
scale .45
}

superellipsoid {
<1, 0.25>
pigment { Blue }
translate <-5, 3, 0>
scale .45
}

superellipsoid {
<0.2, 0.6>
pigment { Green }
translate <0, 3, 5>
scale .45
}

superellipsoid {
<0.25, 0.25>
pigment { Yellow }
translate <0, 3, -5>
scale .45
}

superellipsoid {
<1, 1>
pigment { Pink }
translate y*3
scale .45
}

Renderizziamo la scena a 320x200. Se ci va bene, facciamo un rendering finale a 640x480 +A0.2.

Fig. 42-Alcuni superellissoidi che sorvolano un pavimento!





Static Wikipedia 2008 (no images)


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh