7.5.2.8 Prisma
Il prisma è un oggetto generato
dalla traslazione di una o più curve chiuse ed estese su due dimensioni
lungo un asse. Queste curve sono definite da un insieme di punti che vengono
collegati insieme da spline lineari, quadratiche o cubiche.
La sintassi del prisma è :
prism {
[ linear_sweep | conic_sweep ]
[ linear_spline | quadratic_spline | cubic_spline ]
ALTEZZA1,
ALTEZZA2,
NUMERO_TOTALE_DI_PUNTI,
<PUNTO_1>, <PUNTO_2>, ..., <PUNTO_n>
[ open ]
[ sturm ]
}
L'oggetto prisma ti permette
di inserire un qualunque numero di frasi che definiscono sotto - prismi
all'interno di una frase prism{...}
(purché usino gli stessi tipi di spline e di estrusione). Ovunque
si sovrappone un numero pari di sotto - prismi, appare un 'buco'.
La sintassi che definisce il prisma dipende dal tipo di spline usato. Questa
è la sintassi del prisma con spline lineare :
prism {
linear_spline
ALTEZZA1,
ALTEZZA2,
NUMERO_TOTALE_DI_PUNTI,
<A_1>, <A_2>, ..., <A_na>, <A_1>,
<B_1>, <B_2>, ..., <B_nb>, <B_1>,
<C_1>, <C_2>, ..., <C_nc>, <C_1>,
...
}
Ciascuno dei sotto - prismi deve essere
chiuso ripetendo il primo punto al termine della sequenza. Se ciò
non avviene, POV-Ray visualizza un messaggio di avvertimento ed il prisma
non viene calcolato (ma con le spline lineari, viene chiuso automaticamente
ed il calcolo prosegue). Ciò implica che tutti i punti di un prisma
devono essere diversi gli uni dagli altri, tranne naturalmente il primo
e l'ultimo che devono essere identici.. Ciò si applica a tutti i
tipi di spline, sebbene i punti di controllo delle spline quadratiche
e cubiche possano essere scelti arbitrariamente.
L'ultimo sotto - prisma di un prisma a spline quadratica è chiuso
automaticamente, come l'ultimo sotto - poligono contenuto nei poligoni,
se il primo e l'ultimo punto non coincidono. Ciò rende molto semplice
la conversione tra poligoni e prismi. Le spline quadratiche e cubiche non
sono mai chiuse automaticamente.
La sintassi per un prisma a spline quadratica è la seguente :
prism {
quadratic_spline
ALTEZZA1,
ALTEZZA2,
NUMERO_TOTALE_DI_PUNTI,
<CL_A>, <A_1>, <A_2>, ..., <A_na>, <A_1>,
<CL_B>, <B_1>, <B_2>, ..., <B_nb>, <B_1>,
<CL_C>, <C_1>, <C_2>, ..., <C_nc>, <C_1>,
...
}
I sotto - prismi a spline quadratica
hanno bisogno di un punto di controllo aggiuntivo all'inizio di ogni sequenza
di punti, per determinare la direzione della curva al suo inizio.
Infine, la sintassi per un prisma a spline cubica.
prism {
cubic_spline
ALTEZZA1,
ALTEZZA2,
NUMERO_TOTALE_DI_PUNTI,
<CL_A1>, <A_1>, <A_2>, ..., <A_na>, <A_1>,
<CL_A2>,
<CL_B1>, <B_1>, <B_2>, ..., <B_nb>, <B_1>,
<CL_B2>,
<CL_C1>, <C_1>, <C_2>, ..., <C_nc>, <C_1>,
<CL_C2>,
...
}
In aggiunta alla serie di punti (chiusa,
nel senso che il primo e l'ultimo devono coincidere), ogni sotto - prisma
deve avere due punti aggiuntivi, uno all'inizio ed uno alla fine della
sequenza, per determinare la direzione della spline all'inizio ed alla
fine.
Il parametro NUMERO_TOTALE_DI_PUNTI
determina quanti punti (a due dimensioni, giacenti nel piano x-z) formano
le curve, compresi i punti di controllo necessari per le spline quadratiche
e cubiche. Le curve vengono poi traslate lungo l'asse delle y da ALTEZZA1
ad ALTEZZA2,
per formare il prisma. Per default viene usata una traslazione lineare.
Le pareti del prisma sono cioè perpendicolari al piano x-z e la
dimensione della curva non cambia durante la traslazione.
Si può anche usare la traslazione conica (specificata dalla parola
chiave conic_sweep)
che dà un prisma con pareti simili a quelle di un cono, rimpicciolendo
la curva nel corso della traslazione.
Come accade per i cilindri, il prisma è normalmente chiuso alle
estremità. Si possono aprire le estremità usando la parola
chiave open.
In questo caso, si dovrebbe evitare di utilizzare il prisma in oggetti
CSG in quanto il risultato potrebbe non corrispondere alle aspettative.
L'esempio seguente crea un semplice prisma che assomiglia ad una fetta
di torta :
prism {
linear_sweep
linear_spline
0, 1,
4,
<-1, 0>, <1, 0>, <0, 5>, <-1, 0>
pigment {Red}
}
Per una dettagliata spiegazione del
concetto di spline, leggi la descrizione dell'oggetto 'lathe' (vedi il
paragrafo "Oggetti Torniti").
Il metodo di risoluzione di Sturm, più lento ma più accurato,
può essere utilizzato solo con i prismi a spline cubica,
nel caso in cui l'oggetto non venga renderizzato correttamente. I prismi
a spline lineare e quadratica non hanno bisogno di questo metodo.
![]() |
![]() |
![]() |