Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[ Lungo ] Teoria curve NURBS e Spline in generale

26 views
Skip to first unread message

Il Razziatore

unread,
Aug 26, 2006, 8:36:56 PM8/26/06
to
Ciao a tutti,
spero che qualcuno mi possa aiutare. Sto per dare l'esame di informatica
grafica, anzi per la precisione quello che viene prima di informatica
grafica { PAC: Progettazione Assistita al Calcolatore }. Dove si fa
tutta la teroia che c'è dietro ai CAD e all'informatica grafica. Ho
alcuni dubbi [ alcuni molto grossi ]. E visto che il prof non sa
spiegare e il suo libro e scritto con i piedi... vi volevo chiedere
umilmente aiuto, lo so che non è proprio attinente al NG ma non so
proprio a chi altro chiedere...

Non ho avuti problemi con le curve di Bezier ne di Hermite. Ne con le
varie forme algebriche { c(u) = au+b } ne con le forme geometirche {
c(u) = UBG } il mio problema nasce con le Spline.. e poi si complica
sempre di più fino ad arrivare alle NURBS dove in pratica non ho capito
un H { senza offesa per il povero Hermite }.

Vediamo un po' cosa ho capito e cosa non ho capito sperando che potete
essermi utili.

Allora le spline sono curve compisite che al loro interno utilizzano
altre curve dello stesso grado.

Ad esempio si possono usare tutte curve cubiche di Hermite per formare
una spline cardinale cubiche con continuta C1 { che piffero è C1, C2 C3? }

Uno dei problemi principali e che il prof nel libro usa le cose sensa
psiegarle e quando le spiega usa 300 lettere per dire la stessa cosa
introducendo solo confusione:

k = grado curva
m + 1 = k + 1=> numero punti { ma perchè + 1? }

{ m = k, fin da subito si vede che il prof usa 2 lettere per idicare la
stessa cosa =_=" solo che in un caso { grado } usa una lettera,
nell'altro { numero dei punti } l'altra... }

h = k + 1 => ordine
n = m + k + 1 = 2k + 1 { definisce n ma non dice cos'è! }
n + 1 = 2k + 2 = numero nodi { di nuovo perke + 1? }
k + 2 => numero nodi cosecutivi da prendere per fare un segmento
m - 2 => numero di segmenti che formano la spline

ora è tutto giusto? Mi sono dimenticato qualcosa?


E fin qui tutto ok... { ci vuole solo un po' di "intuito" per seguire le
sue paranoie }... non c'è nulla di troppo sconvolgente ma quando si
passa alle B-spline uniformi il libro { fatto con i peidi } non spiega
come si arriva all'equazione

Qi( u ) = U3 1/6 * ( ... ) G3

ovver quello che non spiega e come si ottien e B3 mette li i valori ma
non spiega ne da dove escano furoi, ne da dove esce fuori 1/6 che
moltiplica la matrice.

Sempre sulle Bsplice c'è la possibilita di invece usare un parametro u
che varita tra 0 e 1 per ogni curva i-esima di usare un unico parametro
u globale t che varia da 3 a m. con la formula:

q( t ) = Unione i che va da 3 a m di Qi( t - i )

e qui introduce i nodi { ogni valore intero di t }... ma sinceramente
non so bene come interpretare sta fortmula quale è l'unione di 2 curve?
:|. L'unica cosa che mi viene mente e che Qi essendo definita tra 0 e 1
quando t - i è fuori questo intervallo non genera la curva quindi
l'unione e semplicemente menterne una insieme all'altra... ma non c'è
scritto l'ho dovuto impotizare io [ e i miei compagni mi guardavno con
facce poco convinte O___o ]

il giochetto dei nodi si complica nelle BSpline non uniformi... e questo
pezzo sinceramente non l'ho capito....

"Si noti che una B-spline cubica con un signo segmento di curva richiede
4 piunti di controllo. Di conseguenze, il numero di nodi dev essere 8,
ovvero 4 + 3 + 1 parametrizzando la spline nell'intervallo [0,1], la
swquenza nodala sarà pertanto:

( 0, 0, 0, 0, 1, 1, 1,1 )

I quqnto polinomi di base da combinare con i punti di controllo e le
associate sottosequanze nodali saranno

B0,4 e ( 0, 0, 0, 0, 1 )
B1,4 e ( 0, 0, 0, 1, 1 )
B2,4 e ( 0, 0, 1, 1, 1 )
B3,4 e ( 0, 1, 1, 1, 1 )

E possibile mostrare che la B-spline non unifome cubica eorrispondente
alla sequzna nodale è la curva cubia di bèzier."

... da dove derivano sti vanegiamenti? Perchè la sequenza nodale deve
essere quella e non un altra? :|

altra citazione:

"SEgmenti di spline sono definiti funzioni vettoriali polinomiali di un
signolo paramento. Tali funzioni sono denotate come Qi(t) con k <= i <=
m . Un segmento di spline Qi( t) è ottenuto per combinazione
dell'i-esimo punto di controllo e del k punti precentedi con la base
polinomile di oridne h associta agli stessi indici. E facile vedere che
il numero di segmenti di spline è m - k +1"

quando l'ho letto ho detto "ma ma ma..."

k = grado curva
m + 1 = k + 1=> numero punti { ma perchè + 1? }
m - 2 => numero di segmenti che formano la spline

forse voleva dire n ?

che cosa vuol dire quando da una squenza nodale

( 1, 2, 3, 4, 5, 6, 7 )

si passa a

( 1, 1, 2, 3, 4, 5, 6 )

ovvero si aumenta la molticiplità? Che relazione c'è tra i nodi e punti
di controllo? { I puinti di controllo ok, li saprei anche scegliere, ma
i nodi? }

infine arriviamo al culmine con la formula di Cox & Boor non si capice un H!

Qualcuno ha un esempio su come si usa? Io ho provato a calcolarmi
B1,3(t) nel intervallo t [ti, ti+h] e viene fuori una mostruosità:

B1,3(t) = ( t - t1 ) / ( t3 + t1 ) B1,2(t) + ( t4 - t ) / ( t4 - t2 )
B2,2(t)

dove B1,2 e B2,2 si calcono allo stesso modo fino ad arrivare a B1,1
B2,1 e B3,1 che cade nel caso base...

ma prima di tutto t1 t2 t3 non erano valori nodali :| sinceramnete non
si capisce un H

qualcuno sa darmi qualche spiegazione? Ho l'esame il 12 settembre e non
so dove trovare sta robba...


--
Il Razziatore,
The Only Good Windows is an uninstalled Windows
-----------------------------------------------
MSN : IlRazz...@netscape.net
ICQ : 67552596
Yhaoo : Razziatore82
-----------------------------------------------
Founder of MediaPlayer Project
http://mpp.iwebland.com

Lorenzo Chiodi

unread,
Aug 27, 2006, 7:42:17 AM8/27/06
to
On 27 Aug 2006 02:36:56 +0200, Il Razziatore <IlRazz...@gmail.com>
wrote:

>Allora le spline sono curve compisite che al loro interno utilizzano
>altre curve dello stesso grado.
>
>Ad esempio si possono usare tutte curve cubiche di Hermite per formare

>una spline cardinale cubiche con continuta C1 { che piffero č C1, C2 C3? }

Ma tu hai seguito qualche corso di analisi matematica?
BTW: continuita' Ck(I) significa che la derivata k-esima esiste ed e'
continua nell'intervallo I.
es. C0(I) e' l'insieme delle funzioni continue su I;
C1(I) e' l'insieme delle funzioni derivabili su I la cui derivata e'
una funzione continua ecc...

Su Nurbs e BSpline non so quasi nulla ma sulle Spline Cubiche Naturali
mio fratello aveva scritto tempo fa un tutorial che trovi qui
http://www.webalice.it/lorenzo.chiodi/Zompi_Tutorial_01.zip
Occhio pero' che per capirlo devi avere delle basi di analisi
matematica ed algebra (continuita' di funzioni, derivate, ecc... ).


0 new messages