Vai alla Home Page About me Courseware Federica Virtual Campus 3D Gli eBook di Federica
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Massimo Martorelli » 7.Curve Spline


Argomenti della lezione

  • Curve Spline
  • Curve interpolanti
  • Curve Spline cubiche
  • Vettore dei nodi

Curve Spline

Sono particolari curve polinomiali composte da archi di curva che si succedono uno dietro l’altro, assicurando condizioni di continuità nel passaggio da un tratto all’altro.

L’espressione analitica si ottiene imponendo una serie di condizioni numeriche:

  • Passaggio della curva per un insieme di punti
  • Condizioni di continuità tra una polinomiale e la successiva
Fonte: Math.Emich

Fonte: Math.Emich


Curve Spline cubiche

Unione di tratti di curva p.c. che interpolano un insieme di punti noti, ed aventi continuità C2 nei punti intermedi

po, p1,…, pn-1, pn = (n + 1) punti noti da interpolare
p1(u), p2(u),…, pn(u) = n tratti di curva p.c
u\epsilon\left[U_{i-1},U_{i}\right] = parametro locale di ogni i-esimo tratto

Curve Spline cubiche

Curve Spline cubiche


Curve Spline cubiche

Nell’i-esimo tratto la curva polinomiale cubica p(u) è definita dalla sua espressione parametrica:
p_{i}(u)=a_{i0}+a_{i1}u+a_{i2}u^{2}+a_{i3}u^{3}

\left\{ \begin{array}{c}p_{1}(u)=a_{10}+a_{11}u+a_{12}u^{2}+a_{13}u^{3}\\p_{2}(u)=a_{20}+a_{21}u+a_{22}u^{2}+a_{23}u^{3}\\\ldots\\p_{n}(u)=a_{n0}+a_{n1}u+a_{n2}u^{2}+a_{n3}u^{3}\end{array}

Per la risoluzione del sistema sono necessarie 4n condizioni.

Curve Spline cubiche

Il sistema non può essere univocamente risolto, sono necessarie altre due condizioni, infatti:
\left\{ \begin{array}{c}p_{i}(U_{i-1})=p_{i-1}\\p_{i}(U_{i})=p_{i}\end{array}→ 2n equazioni
\left\{ \begin{array}{c}p_{i}^{u}(U_{i})=p_{i+1}^{u}(U_{i})\\p_{i}^{uu}(U_{i})=p_{i+1}^{uu}(U_{i})\end{array}→ 2(n-1) equazioni
Le due condizioni possono essere ottenute imponendo ulteriori condizioni negli estremi:

4n-[2n+2(n-1)]=2

  • Componenti fisse: il tratto di curva in un intorno dell’estremo coincide con una direzione tangente a una linea o curva selezionata oppure specificata immettendo le componenti X, Y e Z
  • A curvatura nulla: il tratto di curva in un intorno dell’estremo coincide con la tangente alla spline nell’estremo stesso
  • Circolare: il tratto di curva in un intorno dell’estremo coincide con una circonferenza passante per i tre punti di definizione più prossimi all’estremo

Vettore dei nodi

La curva Spline, in quanto unione di curve polinomiali cubiche, non può utilizzare un unico intervallou\epsilon\left[0,1\right], ma u\epsilon\left[U_{0},U_{1},\ldots,U_{n}\right] “vettore dei nodi”.


Scelta dei valori dei nodi

Il metodo più semplice è imporre una uniforme spaziatura tra i nodi: U0=0, U1=1 ovvero Ui=i ⇒ Ui-Ui-1=1 (in modo che il loro valore venga incrementato di 1).

Svantaggio: non è detto che i punti sulla curva siano uniformemente spaziali; possono innescarsi oscillazioni non volute.
Il metodo ideale è assegnare all’intervallo tra un nodo e l’altro la lunghezza dell’arco di curva corrispondente: U0=0, U1=U0+L1 ovvero Ui=Ui-1+Li con Li distanza lungo la curva tra pi e pi+1.
Svantaggio: la lunghezza della curva dovrebbe essere calcolata precedentemente alla assegnazione dei valori ai nodi: non è possibile.


Scelta dei valori dei nodi

Un metodo pratico è assegnare all’intervallo tra un nodo e l’altro la distanza fra gli estremi dell’arco corrispondente:
U0=0, U1=U0+d1 ovvero Ui=Ui-1+di.


Limiti delle curve Spline e di Bézier

Sia le curve di Bézier che le Spline non permettono modifiche locali della curva; inoltre, per le curve di Bézier, il grado della curva è legato al numero dei punti di controllo.

Tali limiti sono superati dalle curve B-spline.


  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion

Fatal error: Call to undefined function federicaDebug() in /usr/local/apache/htdocs/html/footer.php on line 93