7.5.4.2 Polinomiale,
Cubica e Quartica
Superfici polinomiali di ordine maggiore
possono essere definite usando una polinomiale (parola chiave poly).
La sintassi è :
poly { ORDINE, <T1, T2, T3, .... Tm>
}
Dove ORDINE
è un numero interno compreso tra 2 e sette che specifica l'ordine
dell'equazione e T1, T2, ... Tm
sono numeri decimali che specificano i coefficienti dell'equazione. Ci
sono m termini di questo tipo dove
m = ((ORDINE+1)*(ORDINE+2)*(ORDINE+3))/6.
Un metodo alternativo per specificare
polinomiali di terzo grado è :
cubic { <T1, T2,... T20> }
Anche le polinomiali di quarto grado
possono essere specificate con :
quartic { <T1, T2,... T35> }
Qui di seguito diamo una descrizione
più matematica delle quartiche per coloro che sono interessati.
Le superfici quartiche sono superfici di 4° ordine che possono essere
usate per descrivere un ampio insieme di oggetti, inclusi i tori. L'equazione
generale di una quartica in tre variabili è (tenetevi forte) :
a00 x^4 + a01 x^3 y + a02 x^3 z+ a03 x^3
+ a04 x^2 y^2+
a05 x^2 y z+ a06 x^2 y + a07 x^2 z^2+a08 x^2 z+a09 x^2+
a10 x y^3+a11 x y^2 z+ a12 x y^2+a13 x y z^2+a14 x y z+
a15 x y + a16 x z^3 + a17 x z^2 + a18 x z + a19 x+
a20 y^4 + a21 y^3 z + a22 y^3+ a23 y^2 z^2 +a24 y^2 z+
a25 y^2 + a26 y z^3 + a27 y z^2 + a28 y z + a29 y+
a30 z^4 + a31 z^3 + a32 z^2 + a33 z + a34 = 0
Per dichiarare una superficie di 4°
ordine, è necessario che ciascuno dei coefficienti (a0...a34) sia
in un vettore di 35 termini.
Per esempio, definiamo un toro nel modo complicato. Un toro può
essere rappresentato dall'equazione :
x^4 + y^4 + z^4 + 2 x^2 y^2 + 2 x^2 z^2
+ 2 y^2 z^2 -
2 (r_0^2 + r_1^2) x^2 + 2 (r_0^2 - r_1^2) y^2 -
2 (r_0^2 + r_1^2) z^2 + (r_0^2 - r_1^2)^2 = 0
Dove r_0 è il raggio maggiore
del toro, la distanza tra il centro del foro della 'ciambella' e la metà
dell'anello e r_1 è il raggio minore del toro, la distanza cioè
tra la metà dell'anello e la superficie esterna. L'equazione definisce
un toro che ha raggio maggiore 6.3 e raggio minore 3.5 (il diametro è
così appena inferiore a 20).
// Toro di raggio maggiore sqrt(40) e raggio
minore sqrt(12)
quartic {
< 1, 0, 0, 0, 2, 0, 0, 2, 0,
-104, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 2, 0, 56, 0,
0, 0, 0, 1, 0, -104, 0, 784 >
sturm
bounded_by { // bounded_by accelera il rendering
sphere { <0, 0, 0>, 10 }
}
}
Polinomiali, cubiche e quartiche sono
come e quadriche, nel senso che non è necessario capirle per usarle.
Il file shapesq.inc ha molte quartiche predefinite. La sintassi
necessaria per usare una quartica predefinita è :
object { Nome_Quartica}
Le polinomiali usano calcoli molto
complessi e non sempre risulteranno perfette. Se la superficie non è
regolare, ha punti disposti in modo strano o casuale, prova ad usare la
parola chiave sturm
nella definizione. Ciò farà eseguire a POV-Ray dei calcoli
più lenti, ma più accurati. Normalmente, ma non sempre, ciò
risolverà il problema. Se sturm
non funziona, prova a ruotare o traslare l'oggetto di poco. Vedi la sottodirectory
math nella directory dei file scena per esempi dell'uso delle polinomiali
nelle scene.
Ci sono talmente tante quartiche così diverse, che non possiamo
nemmeno iniziare ad elencarle tutte. Se l'argomento ti interessa e sei
portato per la matematica, un ottimo libro di riferimento per curve e superfici,
dove troverai altre formule di quartiche, è il seguente :
"The CRC Handbook of Mathematical
Curves and Surfaces"
David von Seggern
CRC Press, 1990
![]() |
![]() |
![]() |