Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Le matrici: definizioni
A = ..
.. .
..
.
.
.
am1 am2 . . . amn
i = 1, . . . , m, j = 1, . . . , n.
T
,
A
=
A = ..
.
..
..
..
..
.
..
..
.
.
.
.
.
.
am1 am2 am3 . . . amn
a1m a2m . . . amn
Per esempio
A=
1 3 5 7
2 4 6 8
3
AT =
5
7
2
4
.
6
8
1
3
A=
5
7
3
4
5
6
5
5
6
6
7
6
;
6
8
1 3 5 7
0 4 5 6
A=
0 0 6 6 ;
0 0 0 8
1 0 0 0
3 4 0 0
A=
5 5 6 0 ;
7 6 6 8
matrice diagonale: aij = 0, per i 6= j, ovvero gli elementi al di fuori
della la diagonale principale sono tutti nulli, per esempio:
1 0 0 0
0 4 0 0
A=
0 0 6 0 ;
0 0 0 8
matrice identit`
a: aij = 0, per i 6= j, e aii = 1 per ogni i, quindi si
tratta di una matrice diagonale con tutti gli elementi principali uguali
a 1, e che solitamente si indica con In , dove n `e lordine della matrice
oppure semplicemente con I se non risulta essenziale evidenziarne la
dmensione:
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
.
I6 = I =
0
0
0
1
0
0
0 0 0 0 1 0
0 0 0 0 0 1
La matrice con tutti gli elementi nulli si chiama anche matrice nulla e
si pu`o indicare con O.
La matrice i cui elementi sono gli opposti degli elementi di A si chiama
opposta di A e si indica con A.
1.2
A+B =
.
..
..
..
.
.
.
am1 + bm1 am2 + bm2 . . . amn + bmn
A = ..
..
.. .
.
.
.
am1 am2 . . . amn
Le operazioni appena introdotte godono delle seguenti propriet`a:
(A + B) + C = A + (B + C) : propriet`
a associativa della somma;
a commutativa della somma;
A + B = B + A : propriet`
A + O = A : la matrice nulla `
e elemento neutro della somma;
A + (A) = O : esistenza dellopposto per la somma;
(A + B) = A + B;
( + )A = A + A;
Definizione 1.2.3 Assegnate due matrici A, B Rmn si definisce differenza tra A e B, e si denota con A B, la matrice C Rmn ottenuta
sommando A con la matrice opposta di B: sono:
AB =
.
..
..
..
.
.
.
am1 bm1 am2 bm2 . . .
amn bmn
Si noti che affinch`e tale prodotto abbia senso `e necessario che il numero delle
colonne della prima matrice coincida con il numero delle righe della seconda.
Questo significa che, in generale, dato il prodotto AB non ha nemmeno senso
considerare il prodotto BA. Se, assegnate due matrici, `e possibile calcolarne
il prodotto allora le matrici si dicono conformabili, altrimenti si dicono non
conformabili.
Esempio 1.2.1 Siano A e B le seguenti matrici:
1
3
2
0 1 1
2 3
0 1
;
B=
A=
2
0
1
5 1 3
1
5
0 1
= 2 1 + 3 0 + 0 (1) + (1) 5 = 3
= 2 3 + 3 (1) + 0 0 + (1) 0 = 3
= 2 2 + 3 (1) + 0 1 + (1) (1) = 2
= 5 1 + 1 0 + (3) (1) + 1 5 = 13
= 5 3 + 1 (1) + (3) 0 + 1 0 = 14
= 5 2 + 1 (1) + (3) 1 + 1 (1) = 5.
3 3 2
13 14 5
3 1
A = 1 2
3 1
le seguenti matrici:
2 1 1
0
1 ;
B = 0 1 1 .
2 1 1
1
=32+10+02=6
=31+11+01=4
= 3 (1) + 1 1 + 0 1 = 2
= 1 2 + 2 0 + 1 2 = 0
= 1 1 + 2 1 + 1 1 = 2
= 1 (1) + 2 1 + 1 1 = 4
=32+10+12=8
=31+11+11=5
= 3 (1) + 1 1 + 1 1 = 1.
6 4 2
C = 0 2 4 .
8 5 1
2 3 0
D= 2 3 2
8 5 2
A(B + C) = AB + AC : propriet`
a distributiva del prodotto
rispetto alla somma;
(AB) = (A)B;
A I = I A = A : la matrice identit`
a `
e elemento neutro del
prodotto;
(AB)T = B T AT .
Una matrice che si ottiene da I scambiando alcune righe (o colonne) viene
detta matrice di permutazione. Come conseguenza nella definizione di prodotto tra matrici si possono definire anche le potenze di una matrice, per
esempio:
A2 = A A,
A3 = A A A
e, in generale,
Ak = A
| A{z. . . A} .
k volte
0 0 1
0 1 0
P =
1 0 0
0 0 0
di permutazione di ordine 4:
0
0
0
1
e calcoliamo il prodotto
0 0
0 1
PA =
1 0
0 0
3 9
4
2 6
8
=
8 1 2
4 5
9
1 2 3
2 6 7
A=
3 9 6
4 5 7
P A:
1
0
0
0
0
1 2
2 6
0
0 3 9
1
4 5
3
7
6
7
4
8
8
9
6
7
3
7
8
8
.
4
9
3 2 1 4
1 2 3 4
0 0 1 0
2 6 7 8 0 1 0 0 7 6 2 8
AP =
3 9 6 8 1 0 0 0 = 6 9 3 8 .
7 5 4 9
4 5 7 9
0 0 0 1
Invece la moltiplicazione a destra di una matrice di permutazione per A ha
leffetto di scambiare le colonne di A.
Operazioni a blocchi
Definizione 1.2.5 Una matrice A Rnm si dice partizionata in p q
blocchi se viene suddivisa nel seguente modo:
A = ..
..
.
.
Ap1 Ap2 . . . Apq
P
P
dove ogni Aij `e di dimensioni mi nj e pi=1 mi = m, qj=1 nj = n.
a11
a12 . . .
a1k
a1,k+1 . . .
a1n
a21
a22 . . .
a2k
a2,k+1 . . .
a2n
.
.
..
.
...
...
...
.
.
.
.
.
.
.
ak2 . . .
akk
ak,k+1 . . .
akn
A = ak1
..
..
..
...
...
...
..
.
.
.
an,k+1 . . .
ann
an1
an2 . . .
ank
e, posto
A11 =
(1.1)
(1.2)
A12 =
A21
A22 =
(1.3)
(1.4)
mentre per il prodotto si applica una regola simile al prodotto righe per
colonne, con la differenza che in questo caso gli elementi sono, a loro volta,
matrici di dimensioni opportune.
B11 B12
A11 A12
AB =
B21 B22
A21 A22
=
10
1 2 0 7 5 0
2 4 1 2 2 0
0 2 2 2 3 0
A=
1 0 0 7 2 0
3 3 2 0 3 0
1 2 3 6 7 1
1 3 9 9 8 0
che A e B siano
0
B=
0
1
le seguenti matrici:
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1 2 0 7 5 0 0
2 4 1 2 2 0 0
0 2 2 2 3 0 0
A
O
11
A=
1 0 0 7 2 0 0 = A21 I2
3 3 2 0 3 0 0
1 2 3 6 7 1 0
1 3 9 9 8 0 1
1 0 0 0 0 1 2
0 1 0 0 0 3 4
0 0 1 0 0 5 6
I5 B12
B= 0 0 0 1 0 7 8 =
O B22
0 0 0 0 1 9 1
0 0 0 0 0 1 2
0 0 0 0 0 3 4
1
3
5
7
9
1
3
2
4
6
8
1
2
4
1.2.1
11
det A =
j=1
a11
..
.
a
Aij = i1,1
ai+1,1
.
..
an1
a1,j1
..
.
a1,j+1
..
.
. . . ai1,j1 ai1,j+1
. . . ai+1,j1 ai+1,j+1
..
..
...
.
.
. . . an,j1
an,j+1
n
X
i=1
a1n
..
.
. . . ai1,n
. . . ai+1,n
..
...
.
. . . ann
...
...
12
2
X
j=1
n
Y
i=1
aii ;
13
det I = 1;
det AT = det A;
se una matrice A ha una riga (o una colonna) `e nulla, oppure una riga
(o una colonna) `e proporzionale ad unaltra riga (o colonna) oppure
`e combinazione lineare di due (o pi`
u) righe (o colonne) di A allora
det A = 0;
se si moltiplica una riga (o una colonna) di A per un numero reale
allora il determinante di A risulta moltiplicato per ;
se R allora det A = n det A.
Esempio 1.2.5 Calcoliamo il determinante della seguente matrice di ordine
3:
2 1 1
A = 0 4 3 .
2 1 1
Calcoliamo il determinante rispetto alla riga (o alla colonna) che ha pi`
u
elementi uguali a zero, in questo caso la seconda riga.
det A = a21 det A21 + a22 det A22 a23 det A23
= a22 det A22 a23 det A23
= 4 det A22 3 det A23 .
Ora
det A22 = det
2 1
2 1
2 1
2 1
= 2 + 2 = 4,
= 2 2 = 0.
14
det Aji
.
(1.5)
ij
det A
Per quello che riguarda il determinante della matrice inversa vale la seguente
propriet`a:
1
.
det A1 =
det A
Per esempio se A `e la matrice di ordine 2:
a b
A=
c d
a(1)
= (1)i+j
allora
det A = ad bc
AA
cos sin
sin cos
cos2 + sin2
cos sin + cos sin
cos sin + cos sin
cos2 + sin2
1 0
0 1
cos sin
sin cos
a11
a22
O
.
.
A=
.
O
an1,n1
15
ann
1/a11
1/a22
O
1
.
..
A =
.
O
1/an1,n1
1/ann
D1
D2
O
.
.
A=
O
Dn1
Dn
D1
D21
O
...
A1 =
O
Dn1
1
Dn
Un ultimo esempio riguarda una classe di matrici che viene applicata nella rappresentazione di alcune trasformazioni nel piano e nello spazio e che
16
vedremo in uno dei prossimi capitoli, e sono le matrici triangolari del tipo:
1
a1i
1
a2i
..
...
,
.
A=
. ai1,i
...
1
in questo caso si pu`o facilmente verificare che
1
a1i
1
a2i
..
...
.
A=
. ai1,i
...
1.3
Vettori
yi =
n
X
j=1
aij xj ,
i = 1, . . . , m
17
quindi y Rm . Non `e possibile effettuare il prodotto AxT perch`e le dimensioni non sono compatibili.
Esempio 1.3.1 Sia
5
1 0
A = 1 1 2
5 5 1
e sia x il vettore
1
x = 2 .
3
y1 = 5 1 + 1 2 + 0 3 = 7
y2 = 1 1 + 1 2 + 2 3 = 7
y3 = 5 1 5 2 + 1 3 = 2.
Tra vettori sono consentite le seguenti operazioni:
1. prodotto interno;
2. prodotto esterno.
Il prodotto interno, che viene indicato come (, ), `e definito nel seguente
modo: siano xy Rn , allora
(x, y) = xT y =
n
X
xi yi =
i=1
(x, x) = x x =
n
X
i=1
x2i 0
(x, x) = 0
solo se x `e il vettore che ha tutte le componenti uguali a zero. La quantit`a
18
i = 1, . . . , n, j = 1, . . . , m.
x= 2
3
1
y = 2 .
4
xT y = 1 (1) + 2 (2) + 3 4 = 7.
Osserviamo che tale operazione gode della propriet`
a commutativa, poich`e
T
y x = 7.
Per quello che riguarda il prodotto esterno, il risultato `e la matrice
1 2 4
A = xyT = 2 4 8 .
3 6 12
Tale prodotto non gode della propriet`
a commutativa, infatti:
1 2 3
B = yxT = 2 4 6 .
4
8 12
Capitolo 2
Elementi di Geometria
Analitica
2.1
Coordinate cartesiane
Un concetto fondamentale che si incontra quando si deve affrontare la geometria analitica, cio`e lo studio della rappresentazione matematica degli enti
geometrici, `e quello di posizione. Per poter descrivere in modo efficace la
posizione di un qualsiasi oggetto `e necessario fissare il cosiddetto sistema di
riferimento, cio`e alcuni particolari punti (o enti geometrici) privilegiati rispetto ai quali definire la posizione dei punti, delle figure, degli oggetti geometrici
che si intendono rappresentare matematicamente. Classicamente nel cosiddetto sistema di riferimento delle Coordinate Cartesiane vengono considerate
due particolari rette, tra di loro perpendicolari, una orientata verso destra e
laltra verso lalto cui vengono dati rispettivamente nome di asse delle ascisse
(o asse delle x) e asse delle ordinate (o asse delle y). Il punto di intersezione
tra tali rette prende il nome di Origine del Riferimento Cartesiano (infatti
`e indicato con O) e `e il punto rispetto al quale viene definita la posizione
degli altri punti. Infatti considerato un punto P del piano la sua posizione
venga determinata nel seguente modo. Osservando la Figura 2.1 si mandano
da P le rette parallele agli assi cartesiani che intercettano gli stessi nei due
punti Px e Py . Si definisce ascissa di P la lunghezza del segmento OPx con
il segno positivo se Px si trova a destra dellorigine, segno negativo in caso
contrario. Si definisce ordinata di P la lunghezza del segmento OPy con il
segno positivo se Py si trova al di sopra dellorigine, segno negativo in caso
19
20
Py
P (x1 , y1 )
Px
Quadrante
I
II
III
IV
2.1.1
segno di x
x>0
x<0
x<0
x>0
segno di y
y>0
y>0
y<0
y<0
Il concetto di funzione
Una funzione `e una relazione che lega due grandezze variabili in modo che,
assegnati valori arbitrari ad una di esse (variabile indipendente), risultino
perfettamente determinati i corrispondenti valori dellaltra (variabile dipendente). Nel caso della geometria analitica un primo obiettivo `e quello di
21
associare ad ogni ente geometrico (rette, coniche, curve e cos` via) una funzione matematica cio`e stabilire il legame tra le ascisse e le ordinate dei punti
facenti parte di tale ente. Le funzioni possono essere presentate sotto forma
esplicita
y = f (x),
(oppure x = f (y))
oppure sotto forma implicita
F (x, y) = 0.
Esplicitare una funzione data sotto forma implicita significa, quando ci`o `e
possibile, risolvere lequazione rispetto ad una delle variabili ed ottenere in
questo modo unespressione esplicita. Nel caso in cui la funzione abbia unespressione nota esplicitamente si deve considerare linsieme dei valori x che
danno come risultato un valore reale accettabile. Tale insieme prende il nome
di insieme di definizione o dominio della funzione. Un altro concetto importante strettamente legato a quello di funzione `e il grafico. Il grafico di una
funzione nota esplicitamente `e linsieme dei punti del piano aventi coordinate
(x, f (x)) (oppure (g(y), y)) con x (o y) appartenente allinsieme di definizione
della funzione. Nel caso in cui la funzione sia definita implicitamente allora non ha senso parlare di insieme di definizione, a meno che lespressione
F (x, y) = 0 possa essere resa esplicita rispetto ad una delle variabili. Generalmente tale eventualit`a `e piuttosto remota, mentre assai frequente `e il caso
in cui a tale espressione possano essere associate pi`
u equazioni esplicite in
una delle due variabili. Assegnate due funzioni f (x) e g(x) (o due espressioni
implicite F (x, y) = 0 e G(x, y) = 0) si definiscono punti di intersezione, se
esistono, le soluzioni del sistema
y = f (x)
F (x, y) = 0
oppure
y = g(x)
G(x, y) = 0
cio`e i punti che soddisfano entrambe le equazioni. Nei prossimi paragrafi
vedremo come associare ai pi`
u comuni enti geometrici le relative espressioni
funzionali, iniziando dalle rette.
2.1.2
Siano A e B due punti del piano cartesiano aventi coordinate rispettivamente (x1 , y1 ) e (x2 , y2 ). Vogliamo calcolare la lunghezza del segmento AB, che
22
By
Ay
Ax
Bx
BC = y2 y1
p
(x2 x1 )2 + (y2 y1 )2 .
Osserviamo che lordine con cui le coordinate appaiono nella formula `e arbitrario (la distanza di B da A `e la stessa di A da B). Se i due punti hanno la
stessa ascissa allora
AB = |y2 y1 |
mentre se hanno la stessa ordinata
AB = |x2 x1 |.
2.1.3
Siano A(x1 , y1 ) e B(x2 , y2 ) due punti del piano cartesiano. Si vogliono determinare le coordinate del punto medio del segmento AB, che abbiamo
chiamato M . Con riferimento alla Figura 2.3 si vuole calcolare lascissa del
23
By
M
My
Ay
Ax
Mx
Bx
2.1.4
Le rette
24
(2.1)
y = mx.
25
r
P
B
A
O
Ax
Bx
X =x
(2.2)
Y = y q.
La verifica che il punto A `e lorigine del riferimento X Y `e immediata. Nel
piano X Y la retta in questione passa per lorigine, quindi ha equazione:
Y = mX
da cui, sostituendo le relazioni (2.2), si ottiene
y q = mx
y = mx + q.
26
A
X
O
x
Figura 2.5: Retta generica.
alternativo di rappresentare lequazione di una retta `e:
ax + by + c = 0.
(2.4)
2.1.5
Siano P1 (x1 , y1 ) e P2 (x2 , y2 ) due punti del piano xy. Si vuole determinare
lequazione della retta passante per P1 e P2 . Supponiamo che tale retta non
sia parallela a nessuno degli assi del piano altrimenti il problema sarebbe
banalmente risolto. Sia
y = mx + q
(2.5)
27
(2.6)
(2.7)
y y1 = m(x x1 )
(2.8)
y2 y1 = m(x2 x1 ).
(2.9)
e (2.6) da (2.7):
Dividendo (2.8) per (2.9) si ottiene lequazione richiesta:
y y1
x x1
=
.
y2 y1
x2 x1
(2.10)
(x2 x1
)2
(y2 y1 )2
1+
.
(x2 x1 )2
AB = |x2 x1 | 1 + m2 .
(2.12)
2.1.6
28
q1 q2 = m 1 x1 + q1 m 2 x1 q2
da cui segue
(m1 m2 )x1 = 0
e quindi necessariamente m1 = m2 .
2.1.7
Condizione di perpendicolarit`
a tra rette
Ricordiamo che due rette sono perpendicolari se nel loro punto dintersezione
formano 4 angoli uguali a 90 . Consideriamo per semplicit`a il caso di due
rette passanti per lorigine. Dalla Figura 2.7 siano r ed s due rette tra loro
perpendicolari e aventi equazione:
r : y = mx,
s : y = m1 x.
(2.13)
Ora
QS = 0 m1 x1 = m1 x1 ,
RQ = mx1
29
r1
r2
A
Q
B
O
x
Figura 2.6: Rette parallele.
pertanto (2.13) diventa
mx1
x1
=
,
m1 x1
x1
da cui segue che deve essere necessariamente
m1 =
2.1.8
1
.
m
(2.14)
30
S
s
Figura 2.7: Rette perpendicolari.
mentre per determinare lascissa di D si deve determinare lintersezione della
retta r con lasse x:
q
y = mx + q
x= .
y=0
m
I triangoli HM P e M N D sono simili, posto pertanto d = P H la distanza
da calcolare vale la seguente proporzione:
PH
PM
=
.
ND
MD
Calcoliamo le lunghezze dei segmenti coinvolti in tale relazione.
P M = |y1 mx1 q|
q
N D = x1
m
q
M D = x1 1 + m 2 .
m
(2.15)
31
O
N
2.2
|y1 mx1 q|
.
1 + m2
(2.16)
Le coniche
32
=
2
allora la curva chiusa `e detta circonferenza. Ultimo caso `e quello in cui
<
in cui il piano taglia il cono lungo una linea aperta costituita da due rami, e
che viene detta iperbole.
2.2.1
2.2.2
La parabola
Dal punto di vista geometrico le coniche sono dei luoghi geometrici, cio`e
insiemi di punti che godono tutti di una stessa propriet`a. Nel caso specifico
33
F
V
H
(x )2 + (y )2 = |y d|.
(x )2 + (y )2 = (y d)2
x2 2x + 2 + y 2 2y + 2 = y 2 2yd + d2
x2 2x 2( d)y + 2 + 2 d2 = 0.
Supponendo che sia 6= d, cio`e che il fuoco non appartiene alla direttrice (altrimenti si originerebbe una parabola degenere), si pu`o ricavare lespressione
34
di y in funzione di x:
2( d)y = x2 2x + 2 + 2 d2
e quindi
y=
Posto
a=
2 + 2 d2
x2
x+
.
2( d)
d
2( d)
1
,
2( d)
b=
,
d
c=
2 + 2 d2
2( d)
a =
2( d)
b =
d
2 + 2 d2
.
c =
2( d)
2a
=
1
b = 2a
d
2 + 2 d2
c
=
c
2( d)
2a
1
= 2a
d
b2
c
= 2 + 2 d2
a
4a
Poniamo = b2 4ac.
2a
1
= 2a
d
4ac b = ( d)( + d)
4a2
2a
1
d =
2a
+d =
2a
e d.
=
b
2a
= 2a
2 + 2 d2
=
2( d)
2a
1
= 2a
d
b2
c
= 2 d2 .
a 4a2
2a
1
d =
2a
= ( + d) 1
4a2
2a
2a
1
2 =
2a
2d = 1
2a 2a
35
36
2a
1
=
4a
d = 1 + .
4a
La retta perpendicolare alla direttrice e che `e asse di simmetria della parabola interseca la curva in un punto detto vertice. Lasse della parabola ha
equazione
b
x=
(2.18)
2a
mentre per determinare lordinata del vertice `e sufficiente sostituire nellequazione della parabola il valore x dato da (2.18):
y=a
b2
b2
b2
+
c
=
+c= .
2
4a
2a
4a
4a
(x )2 + (y )2 = (x d)2
x2 2x + 2 + y 2 2y + 2 = x2 2dx + d2
y 2 2y + 2 + 2 d2 2( d)x = 0.
2 + 2 d2
y2
x+
.
2( d)
d
2( d)
1
,
2( d)
b=
,
d
c=
2 + 2 d2
2( d)
37
segue che la parabola ammette come rappresentazione unequazione del secondo ordine:
x = ay 2 + by + c
(2.19)
quindi un generico punto appartenente alla parabola ha coordinate (ay 2 +
by + c, y). Vediamo ora come ultimo caso e solo per esempio il calcolo dellequazione di una parabola avente come direttrice una generica retta del piano
avente equazione:
y = mx + q.
Anche in questo caso va imposta lequidistanza di un generico punto del piano
di coordinate (x, y) dalla direttrice e dal fuoco F avente coordinate (, ).
In questo caso la distanza del punto dalla direttrice va calcolato applicando
la formula (2.16), pertanto
|y mx q| p
= (x )2 + (y )2 .
1 + m2
Eleviamo a quadrato
(y mx q)2
= (x )2 + (y )2
2
1+m
y 2 + m2 x2 + q 2 2mxy 2qy + 2mqx =
= (1 + m2 )(x2 2x + 2 + y 2 2y + 2 )
da cui, raccogliendo tutti i termini al secondo membro
x2 + m2 y 2 + 2mxy 2(mq + + m2 )x 2( + m2 q)y+
+(2 + 2 )(1 + m2 ) q 2 = 0.
2.2.3
La circonferenza
38
O
x
p
(x )2 + (y )2 = r,
(x )2 + (y )2 = r2
Posto
x2 + y 2 2x 2y + 2 + 2 r2 = 0.
a = 2,
b = 2,
c = 2 + 2 r 2
x2 + y 2 + ax + by + c = 0.
Da tale generica equazione si possono ricavare agevolmente le coordinate del
centro che sono
a
b
= ,
=
2
2
e il raggio
r
a2 b 2
+ c.
r=
4
4
Se c = 0 allora lorigine del riferimento cartesiano sta sulla circonferenza
mentre se a = 0 allora il centro appartiene allasse x mentre se b = 0 allora
39
C1
C2
C1
C1
C2
40
C2
C1 C2
b2 + b1
b1 b2
=
a2 + a1
a1 a2
a1 a2
.
b1 b2
2.2.4
Lellisse
41
(x + c)2 + y 2
42
a2 x2 + 2a2 cx + a2 c2 + a2 y 2 = a4 + c2 x2 + 2a2 cx
Isolando i termini in x e y al primo membro si ottiene
(a2 c2 )x2 + a2 y 2 = a2 (a2 c2 ).
(2.21)
Se nella Figura 2.12 consideriamo il triangolo P F F e applichiamo la propriet`a che la somma delle lunghezze di due lati `e sempre maggiore della
lunghezza del terzo lato si ha
PF + PF > FF
cio`e
2a > 2c
possiamo quindi porre
a2 c2 > 0,
a2 c 2 = b 2
e sostituire in (2.21):
b 2 x 2 + a2 y 2 = a2 b 2
e, dividendo per a2 b2 , si ottiene lequazione
x2 y 2
+ 2 = 1.
a2
b
Tale equazione rappresenta unellisse avente fuochi sullasse delle x posti
simmetricamente rispetto allorigine (vedere Figura 2.13). Noti a e b si pu`o
ricavare lascissa positiva di uno dei due fuochi dalla formula
c = a2 b 2 .
Lellisse inteseca lasse x nei punti A e B di coordinate rispettivamente (a, 0)
e (a, 0) e lasse y nei punti C e D di coordinate rispettivamente (0, b) e
(0, b). Il valore 2a rappresenta pertanto la lunghezza del cosiddetto asse
maggiore dellellisse, mentre 2b `e la lunghezza dellasse minore. Unultima
cosa da osservare `e che non `e possibile esplicitare univocamente lequazione
dellellisse, infatti volendo ricavare y in funzione di x si ottiene:
y2
x2
a2 x 2
=1 2 =
b2
a
a2
e quindi
y2 =
b2 2
(a x2 )
2
a
y=
b 2
a x2
a
43
a x a.
In particolare la funzione
y=+
b 2
a x2
a
2.2.5
Liperbole
44
Figura 2.14:
rispettivamente (c, 0) e (c, 0), essendo c una costante positiva (vedere Figura
2.12). Poniamo
P F P F = 2a
(2.22)
dove a `e una costante positiva. Applicando la formula della distanza tra due
punti del piano in (2.22) otteniamo
p
p
(x + c)2 + y 2 (x c)2 + y 2 = 2a
p
p
(x + c)2 + y 2 = 2a + (x c)2 + y 2 .
Eleviamo a quadrato i due membri:
p
x2 + 2cx + c2 + y 2 = 4a2 + x2 2cx + c2 + y 2 + 4a (x c)2 + y 2
45
c2 x2 + a4 2a2 cx = a2 x2 2a2 cx + a2 c2 + a2 y 2 .
Isolando i termini in x e y al primo membro si ottiene
(c2 a2 )x2 a2 y 2 = a2 (c2 a2 ).
(2.23)
Se nella Figura 2.12 consideriamo il triangolo P F F e applichiamo la propriet`a che la differenza delle lunghezze di due lati `e sempre minore della
lunghezza del terzo lato si ha
PF PF < FF
cio`e
2a < 2c
c2 a2 > 0,
x a o x a.
c = a2 + b 2 .
46
2 2 =1
a
b
y = mx.
Cio`e:
x2 m 2 x2
2 =1
a2
b
da cui segue che
x =
purch`e risulti
b 2 a2 m 2 > 0
x2 =
a2 b 2
,
b 2 a2 m 2
ab
b 2 a2 m 2
m 2 a2 < b 2
b
b
<m< .
a
a
Solo le rette il cui coefficiente angolare `e compreso tra b/a e b/a intersecano
in due punti liperbole. Le due particolari rette di equazione
b
y = x,
a
b
y= x
a
2.3
Rappresentazioni parametriche
Supponiamo ora di dover rappresentare graficamente larco della circonferenza di equazione x2 + y 2 = 1 nel primo quadrante del piano cartesiano.
Un modo di procedere pu`o essere il seguente. Esplicitiamo lequazione nella
variabile x:
y = 1 x2
consideriamo una serie di punti equidistanti sullasse x, compresi tra 0 e 1,
per esempio:
x = 0, 0.2, 0.4, 0.6, 0.8, 1
calcoliamo il valore di y in tali punti e approssimiamo la circonferenza con
la poligonale che unisce tali punti. Osservando la Figura 2.16 si evince che
tali punti non sono equidistanti sulla curva, di conseguenza alcuni tratti della
47
[0 , 1 ]
x = f ()
y = g()
48
2.4
Coordinate polari
49
P (x, y)
5. = arccos(x/)
6. = arcsin(y/)
7. = arctan(y/x).
2.4.1
50
Nel caso della circonferenza avente centro nellorigine e raggio r una possibile
rappresentazione polare `e la seguente:
x = r cos
[0, 2]
(2.24)
y = r sin .
` facile verificare che tale rappresentazione soddisfa lequazione della circonE
ferenza x2 + y2 = r2 :
x2 + y 2 = r2 cos2 + r2 sin2 = r2 (cos2 + sin2 ) = r2 .
Vediamo nella seguente tabella a quali punti corrispondono alcuni valori di
:
Valore di
Punto
0
(r, 0)
/2
(0, r)
(r, 0)
3/2
(0, r)
(r, 0)
2
Poich`e le funzioni che appaiono in (2.24) hanno periodo 2, per valori di
superiori a 2 si ottiene sempre la medesima curva. Per rappresentare
graficamente la circonferenza si sceglie un angolo 0 = (2)/N e si uniscono i punti di coordinate (r cos k0 , r sin k0 ), con k = 0, 1, . . . , N. Tali punti
dividono la circonferenza in archi che hanno la stessa lunghezza pertanto la
rappresentazione grafica della curva `e migliore di quella rappresentata nella
Figura 2.16.
Nel caso in cui la circonferenza abbia centro in un punto di coordinate (, ),
diverso dallorigine, e raggio r, le equazioni parametriche (2.24) possono
essere modificate nel seguente modo:
x = + r cos
[0, 2]
(2.25)
y = + r sin .
Anche in questo caso possiamo verificare che le (2.25) soddisfano lequazione
della circonferenza che in questo caso `e:
(x )2 + (y )2 = r2 .
51
Infatti:
(x )2 + (y )2 = ( + r cos )2 + ( + r sin )2
= r2 cos2 + r2 sin2 = r2 (cos2 + sin2 ) = r2 .
2.4.2
ab
2
a2 sin + b2 cos2
ab
cos
x =
2
a2 sin + b2 cos2
[0, 2].
ab
y =
sin
a2 sin2 + b2 cos2
2.4.3
52
Per liperbole si procede in modo analogo a quanto visto per lellisse poich`e
le due equazioni sono simili a meno di un segno:
b 2 x 2 a2 y 2 = a2 b 2
e sostituendo le espressioni per x e y:
b2 2 cos2 a2 2 sin2 = a2 b2
(b2 cos2 a2 sin2 )2 = a2 b2
e quindi lequazione polare delliperbole `e
ab
= p
.
b2 cos2 a2 sin2
ab
x =p
cos
b2 cos2 a2 sin2
ab
sin .
y =p
b2 cos2 a2 sin2
2.4.4
53
0.
Per analizzare come evolve tale curva nel piano xy al variare di calcoliamo
i punti in cui essa intercetta gli assi cartesiani. Le variabili x e y si annullano
entrambe quando = 0 quindi lorigine `e il punto dinizio della curva. Inoltre
il segno delle variabili cartesiane `e associato al segno delle funzioni cos e
sin . La funzione x() si annulla nei punti che rendono zero cos cio`e i punti
n = /2 + n, con n 0. Se n `e un numero pari, cio`e n = 2k, allora i punti
hanno coordinate:
(
x =0
k = 0, 1, 2, . . .
y = n sin n =
+ 2k sin
+ 2k = + 2k
2
2
2
Invece se n `e un numero dispari, cio`e n = 2k + 1, allora la funzione sin n
vale 1 quindi i punti hanno coordinate:
(
x =0
k = 0, 1, 2, . . .
y = n sin n = (2k + 1)
2
54
30
20
10
10
20
30
30
20
10
0
x
10
20
30
cos
x =a
> 0.
sin
y =a
55
6
6
0
x
56
1.5
0.5
0.5
1.5
0.5
0.5
1.5
2
x
2.5
3.5
4.5
Capitolo 3
Trasformazioni Geometriche in
due dimensioni
3.1
Trasformazioni base
Molto spesso per ottenere delle figure molto complesse (poligoni, curve) `e
necessario rideterminare lespressione matematica di tali enti geometrici. Un
modo per evitare questo pu`o essere quello di considerare lespressione matematica di un ente facile da determinare e applicare poi delle trasformazioni
pi`
u complesse. Le trasformazioni base che si possono definire sono le seguenti:
1. Traslazione;
2. Rotazione;
3. Scaling.
3.1.1
Traslazione
Sia P un punto del piano di coordinate cartesiane (x, y). Definiti due valori
reali tx e ty allora il punto P traslato di P `e il punto avente coordinate
(x1 , y1 ) tali che
x1 = x + t x
y1 = y + t y .
58
y
P
ty
P
tx
,
P =
,
T =
P =
y1
ty
y
allora la traslazione ha la seguente formulazione vettoriale:
P = P + T.
3.1.2
Rotazione
La rotazione consiste nello spostamento di un oggetto lungo un arco di circonferenza. Per generare una rotazione dobbiamo specificare langolo di rotazione e la posizione (xr , yr ) del punto di rotazione (o punto pivot) rispetto
al quale avviene la rotazione. Per convenzione langolo viene considerato positivo se la rotazione avviene in senso antiorario, negativo in caso contrario.
Consideriamo prima il caso in cui il punto pivot coincide con lorigine. Siano
(x, y) le coordinate del punto P mentre (x1 , y1 ) sono le coordinate del punto P (vedere Figura 3.3). Cerchiamo di determinare (x1 , y1 ) in funzione di
O
Figura 3.2: Traslazione di una figura.
y
P
59
60
(3.1)
x
y
P =
x1
y1
R=
cos sin
sin cos
vale la relazione:
P = RP
infatti:
RP =
cos sin
sin cos
x
y
x cos y sin
x sin + y cos
Supponiamo ora che il punto pivot A non coincida con lorigine e abbia
coordinate (xr , yr ). Facendo riferimento alla Figura 3.5 e ponendo AP uguale
r valgono le seguenti relazioni:
x = xr + r cos
y = yr + r sin
r cos = x xr
r sin = y yr .
61
(3.2)
3.1.3
Scaling
Lo scaling serve a trasformare le dimensioni di un oggetto. Infatti moltiplicando le coordinate (x, y) di ciascun vertice per i fattori di scala sx ed sy
vengono prodotte le coordinate trasformate:
x1 = s x x
y1 = sy y.
62
y
r
A
x
,
,
P =
P =
y1
y
Sc =
sx 0
0 sy
risulta
P = Sc P.
I fattori di scala sx ed sy devono essere strettamente positivi. Se i loro valori
sono maggiori di 1 allora le dimensioni delloggetto aumentano, se se sono
minori di 1 diminuiscono, se sono 1 allora restano invariate. Se sx = sy allora
si parla di scaling uniforme (resta costante la proporzione tra le distanze
relative), altrimenti si parla di scaling differenziale (o differenziato).
Lo scaling pu`o essere effettuato anche rispetto ad un generico punto del piano
avente coordinate (xs , ys ), che viene detto punto fisso e che rimane inalterato
dopo lo scaling. Facendo riferimento alla Figura 3.7 si vuole cio`e che il fattore
di scaling per le ascisse sia applicato alla differenza tra le ascisse di A e di P
e non allascissa di A, e stesso discorso vale per le ordinate. Dette (x1 , y1 ) le
coordinate di P deve essere:
x1 = xs + sx (x xs ) = sx x + (1 sx )xs
y1 = ys + sy (y ys )
= sy y + (1 sy )ys .
63
3.2
64
Coordinate omogenee
xh
,
h
y=
yh
h
3.2.1
Traslazione
Definiamo la matrice
1 0 tx
T (tx , ty ) = 0 1 ty
0 0 1
65
x1
x
P = y1 .
P = y ,
1
1
Calcoliamo ora
x
1 0 tx
y
T (tx , ty )P = 0 1 ty
1
0 0 1
x + tx
1 x + 0 y + tx 1
= 0 x + 1 y + ty 1 = y + ty = P .
1
0x+0y+11
1 0
1
T (tx , ty ) = T (tx , ty ) = 0 1
0 0
3.2.2
di trasformare il punto
tx
ty .
1
Rotazione
Definiamo la matrice
cos sin 0
R() = sin cos 0 .
0
0
1
Risulta anche in questo caso immediata la verifica che la matrice R() trasforma P in P :
x
cos sin 0
R()P = sin cos 0 y
1
0
0
1
x cos y sin
= x sin + y cos = P .
1
66
cos sin 0
R1 () = R() = sin cos 0 .
0
0
1
3.2.3
Scaling
sx
0
Sc (sx , sy ) =
0
risulta
diagonale:
0 0
sy 0
0 1
sx x
x
sx 0 0
Sc (sx , sy )P = 0 sy 0 y = sy y = P .
1
1
0 0 1
1/sx
0
0
1
0
1/sy 0 .
Sc1 (sx , sy ) = Sc (s1
x , sy ) =
0
0
1
3.2.4
Trasformazioni composte
67
Per le trasformazioni composte va sempre tenuto presente lordine con il quale le trasformazioni base sono applicate, poich`e, come abbiamo avuto modo
di vedere nel primo capitolo, il prodotto tra matrici non gode della propriet`a
commutativa. Anche a questa regola ci sono tuttavia alcune eccezioni. Consideriamo prima il caso di trasformazioni successive tutte dello stesso tipo.
Iniziamo da due traslazioni successive aventi vettori di shift rispettivamente
(tx1 , ty1 ) e (tx2 , ty2 ). Le coordinate omogenee del punto traslato P saranno:
P = T (tx2 , ty2 )[T (tx1 , ty1 )P ] = [T (tx2 , ty2 )T (tx1 , ty1 )]P.
Calcolando la matrice prodotto T (tx2 , ty2 )T (tx1 , ty1 ) si trova agevolmente:
1 0 tx1 + tx2
1 0 tx1
1 0 tx2
0 1 ty2 0 1 ty1 = 0 1 ty1 + ty2 ,
0 0
1
0 0 1
0 0 1
quindi
68
III
II
I
1
cos sin 0
0
R()T (xr , yr ) = sin cos 0
0
0
0
1
0 xr
1 yr
0 1
1 0
RT (xr , yr , ) = 0 1
0 0
69
x
cos sin xr xr cos + yr sin
P = sin cos yr xr sin yr cos y
1
0
0
1
xr + (x xr ) cos (y yr ) sin
= yr + (y yr ) cos + (x xr ) sin .
1
3.2.5
Riflessione
70
C
A
O
A
C
B
1 0 0
Rx = 0 1 0 .
0 0 1
Risulta infatti immediata la verifica:
x
x
1 0 0
Rx P = 0 1 0 y = y = P .
1
1
0 0 1
71
A
x
1 0 0
Ry = 0 1 0 .
0 0 1
x
x
1 0 0
Ry P = 0 1 0 y = y = P .
1
1
0 0 1
Nel caso in cui lasse di riflessione non sia uno degli assi cartesiani si pu`o
considerare la trasformazione come una combinazione di trasformazioni base.
Supponiamo di effettuare una riflessione rispetto alla bisettrice del primo
e del terzo quadrante (vedere Figura 3.11). Cerchiamo di determinare le
coordinate cartesiane del punto A riflesso del punto A di coordinate (, )
utilizzando, per il momento solo considerazioni geometriche. Per semplicit`a
indichiamo con s la retta passante per A e A e che e perpendicolare alla
bisettrice b. La retta s avr`a equazione
y = x + q,
q R.
q = + .
72
A
C
H
B
O
B
x
Figura 3.11: Riflessione di un oggetto rispetto alla bisettrice del I del III
quadrante.
Indichiamo con H il punto di intersezione tra b ed s, e calcoliamo le sue
coordinate:
y
=
x
x= +
y=
.
y = x + +
2
x1 = ;
+ y1
+
=
y1 = .
2
2
Poich`e il punto di coordinate omogenee (, , 1) viene trasformato in (, , 1),
la riflessione rispetto alla bisettrice del I e del III quadrante ha come effetto
lo scambio delle coordinate. Si pu`o facilmente verificare che la matrice di
trasformazione in questo caso `e:
0 1 0
RI = 1 0 0 .
0 0 1
73
Vediamo ora di ricavare la matrice di trasformazione utilizzando le trasformazioni base. Le operazioni da effettuare sono le seguenti:
1. Rotazione in senso orario di 45 (o di /4), in modo tale che la bisettrice
coincida con lasse x;
2. Riflessione rispetto allasse x;
3. Rotazione in senso antiorario di 45 (o di /4), in modo tale che lasse
x sia sovrapposto alla bisettrice del I e del III quadrante.
Detta RI la matrice di riflessione rispetto a tale bisettrice sar`a:
RI = R(/4)Rx R(/4).
Ricordiamo che per convenzione gli angoli della rotazione sono considerati
positivi se misurati in senso antiorario. Calcoliamo ora tale matrice.
2/2
2/2
0
1
0
0
R(/4)Rx = 2/2
2/2 0 0 1 0
0 0 1
0
0
1
RI
2/2
2/2
0
= 2/2 2/2 0 .
0
0
1
2/2
2/2
0
2/2
2/2
0
0 1 0
= 1 0 0 .
0 0 1
In modo abbastanza analogo si pu`o scoprire che la matrice di riflessione
rispetto al II e IV quadrante `e
0 1 0
RII = 1 0 0 .
0
0 1
Nel caso in cui lasse di riflessione sia una retta generica avente equazione
y = mx + q, con q 6= 0 (cio`e non passante per lorigine del piano cartesiano),
la trasformazione `e ancora pi`
u complessa:
74
3.2.6
Deformazione
1 shx 0
S(shx ) = 0 1 0
0 0 1
x + shx y
x
1 shx 0
.
y
P = S(shx )P = 0 1 0 y =
1
1
0 0 1
Lordinata resta invariata mentre lascissa viene modificata proporzionalmente rispetto a y. Nella deformazione rispetto allasse y la matrice di
trasformazione `e la seguente:
1 0 0
S(shy ) = shy 1 0
0 0 1
75
Figura 3.12: Deformazione rispetto allasse x di una figura piana con shx =
1/2.
con shy un numero reale. Le coordinate omogenee del punto trasformato
sono quindi:
x
x
1 0 0
P = S(shy )P = shy 1 0 y = y + shy x .
1
1
0 0 1
` possibile definire anche la deformazione rispetto ad entrambi gli assi,
E
definendo i due parametri shx ed shy e la relativa matrice di trasformazione:
1 shx 0
S(shx , shy ) = shy 1 0 .
0
0 1
x + shx y
x
1 shx 0
P = S(shx , shy )P = shy 1 0 y = y + shy x .
1
1
0
0 1
3.3
Trasformazione window-to-viewport
Un esempio di trasformazione composta `e la trasformazione window to viewport che consiste nel portare punti che si trovano nel rettangolo di rappresen-
76
Figura 3.13: Deformazione rispetto allasse y di una figura piana con shy =
1/2.
Figura 3.14: Deformazione rispetto ad entrambi gli assi con shx = shy = 1/2.
77
ymax
vmin
umin
umax
ymin
xmin
xmax
Figura 3.15: Trasformazione window to viewport.
78
(u, v)
(x, y)
(0, 0)
(0, 0)
Figura 3.16: Trasformazione window to viewport.
3. La viewport viene traslata in modo tale che langolo in basso a destra
sia portato in posizione (umin , vmin ).
La prima trasformazione `e definita dalla matrice
1 0 xmin
0 1 ymin .
0 0
1
79
umax umin
.
xmax xmin
vmax vmin
.
ymax ymin
umax umin
0
0
xmax xmin
v
max
min
.
0
0
ymax ymin
0
0
1
1 0 umin
0 1 vmin .
0 0 1
u
1 0 umin
sxu 0 0
1 0 xmin
x
v = 0 1 vmin 0 syv 0 0 1 ymin y .
1
0 0 1
0
0 1
0 0
1
1
3.3.1
Clipping
Loperazione di clipping consiste nellindividuare le porzioni della figura tracciata che sono interne alla finestra di visualizzazione (viewport). Operazione
fondamentale `e il clipping di segmenti che quindi tende ad individuare la
parte di un segmento interno alla finestra di viewport. Tale operazione `e
fondamentale in quanto tutte le altre (clipping di poligoni, clipping tridimensionale) sono effettuate partendo dal clipping di segmenti. Supponiamo
che la finestra di clipping sia rappresentata nella Figura 3.17. Un punto di
coordinate (x, y) `e interno alla finestra se sono simultaneamente soddisfatte
le seguenti disequazioni:
xmin x xmax ,
ymin y ymax .
80
ymax
ymin
xmin
xmax
81
C
C
B
D
A
G
G
H
H
82
Si potrebbero utilizzare le equazioni parametriche per determinare le intersezioni con le quattro rette che delimitano la finestra di clipping ma il procedimento `e troppo macchinoso e piuttosto costoso dal punto di vista computazionale. Per questo motivo si utilizzano metodi alternativi come quello
descritto nel paragrafo successivo.
3.3.2
Algoritmo di Cohen-Sutherland
y
0
1
0
1
x AND y
0
0
0
1
1001
1000
1010
0001
0000
0010
0101
0100
0110
A
A
B
B
83
84
3.3.3
Clipping di poligoni
3.3.4
Algoritmo di Sutherland-Hodgman
Si basa sullapplicazione del clipping a segmenti effettuato rispetto alle quattro rette che delimitano la finestra stessa, prendendo in input la sequenza
ordinata di vertici, applicando il clipping ai lati del poligono e aggiornando
la lista dei vertici aggiungendo eventuali vertici (quando un lato interseca la
retta) o togliendone altri (se il lato `e esterno alla finestra stessa). Prendendo come riferimento una delle rette che delimitano la finestra di clipping si
possono presentare 4 casi:
85
86
E
B
C
Figura 3.24: Clipping di poligoni.
1. Lo spigolo `e completamente interno al semipiano che contiene la finestra
di clipping quindi il secondo estremo `e aggiunto alla lista dei vertici;
2. Se il primo estremo `e interno ed il secondo `e esterno allora il punto di
intersezione con la retta `e aggiunto alla lista dei vertici;
3. Se entrambi gli estremi sono esterni allora non si esegue alcuna operazione;
4. Se il primo estremo `e esterno mentre il secondo `e interno allora vengono
aggiunti alla lista dei vertici il punto di intersezione con la retta ed il
secondo estremo.
Nella Figura 3.24 `e riportato un esempio di poligono cui applicare lalgoritmo
di Sutherland-Hodgman. Nel caso specifico quando si applica il primo passo dellalgoritmo, ovvero effettuando il clipping rispetto alla retta x = xmin ,
questo riceve in input linsieme dei vertici {A, B, C, D, E, F, G, H} e fornisce in output linsieme di vertici {A , B, C, D, E, F, G, H, A }, relativi alla
Figura 3.25. Successivamente lalgoritmo viene applicato rispetto alla retta
di equazione y = ymin , il che comporterebbe leliminazione del vertice C e
laggiunta di due ulteriori vertici (ovvero i punti di intersezione tra i segmenti
BC e CD con la retta y = ymin appunto). Loperazione viene quindi ripetuta
rispetto a tutte le rette che delimitano la finestra di clipping ottenendo alla
fine la lista dei vertici di un poligono interamente contenuto nella finestra.
87
F
E
C
Figura 3.25: Clipping di poligoni.
Capitolo 4
Trasformazioni Geometriche in
tre dimensioni
4.1
Nel caso dello spazio R3 vengono considerati come riferimento tre assi perpendicolari che si intersecano in un punto O detto orgine del riferimento. Viene
cio`e aggiunta allascissa e allordinata una terza coordinata, detta quota. In
Figura 4.1 `e riportato il procedimento per lattribuzione delle coordinate cartesiane spaziali del punto P . Proiettando P sul piano delimitato dagli assi x
e y si ottiene il punto P che, appartenendo al piano cartesiano bidimensionale, ha coordinate (x, y) (rispetto a R2 ). Tali coordinate sono attribuite al
punto P con laggiunta della distanza di P dal piano xy con il segno positivo
se P si trova al di sopra del piano, negativa altrimenti. I tre assi perpendicolari definiscono tre piani di riferimento, anchessi perperndicolari tra loro,
che prendono il nome di piani di proiezione oppure cartesiani. Nello spazio
il concetto di funzione `e simile a quello gi`a visto nel caso bidimensionale,
essendo la relazione tra due insiemi (le coppie (x, y), cio`e R2 e i valori z, cio`e
R), esplicitando una funzione `e del tipo
z = f (x, y),
(x, y) R2 .
88
(4.1)
89
z
P
P
x
90
spettivamente a xz e xy.
Pi`
u in generale, un piano `e rappresentato dallequazione lineare
ax + by + cz + d = 0
dove a, b, c, d sono coefficienti reali.
4.2
In questo capitolo esamineremo le principali propriet`a e la formulazione matematica delle principali trasformazioni geometriche nello spazio. In generale
si tratta di adattare concetti gi`a visti nel piano al caso spaziale. Le trasformazioni base che si possono definire sono esattamente le stesse viste in
precedenza. Considereremo il caso di trasformazioni che riguardano le coordinate omogenee, tenendo conto che, nel caso di R3 , le coordinate omogenee
di un punto di coordinate cartesiane (x, y, z) sono (x, y, z, 1), poich`e valgono
tutte le considerazioni.
4.2.1
Traslazione
Definiamo la matrice
1
0
T (tx , ty , tz ) =
0
0
0
1
0
0
0
0
1
0
tx
ty
tz
1
e, al solito, indichiamo con P e P le coordinate omogenee del punto rispettivamente prima e dopo la trasformazione, cio`e
x1
x
y1
y
P
=
P =
z1 .
z
1
1
91
Calcoliamo ora
1
0
T (tx , ty , tz )P =
0
0
0
1
0
0
0
0
1
0
tx
x
ty y
tz z
1
1
x + tx
y + ty
=
z + tz = P .
1
1 0 0 tx
0 1 0 ty
T 1 (tx , ty , tz ) = T (tx , ty , tz ) =
0 0 1 tz .
0 0 0 1
4.2.2
Rotazione
Per generare una rotazione di una figura nello spazio `e necessario specificare
una retta (detta asse di rotazione) intorno alla quale avviene la rotazione e
langolo di rotazione. Le rotazioni pi`
u facili da definire sono quelle che hanno
lasse coincidente (o parallelo) con uno degli assi del riferimento cartesiano.
Comunque come nel caso bidimensionale rotazioni pi`
u complesse possono
essere definite utilizzando apposite combinazioni di rotazioni rispetto agli assi
e traslazioni. Per convenzione gli angoli di rotazione sono positivi quando la
rotazione avviene in senso antiorario. Per comprendere meglio tale concetto
si pu`o ricorrere al seguente criterio: quando la rotazione avviene intorno ad
uno degli assi del riferimento per valutare il verso di tale movimento ci si
pone perpendicolarmente a tale asse e si valuta come verso positivo quello
antiorario. Vediamo ora di determinare la matrici di trasformazione nel caso
in cui la rotazione avvenga rispetto allasse x di un angolo pari a . Sia P
il punto di coordinate omogenee (x, y, z, 1) e sia P il punto ruotato, avente
coordinate omogenee (x1 , y1 , z1 , 1). La rotazione avviene in un piano parallelo
al piano yz e perpendicolare allasse delle ascisse quindi i punti H, P e P
hanno la stessa ascissa x (vedere Figura 4.2), abbiamo pertanto la prima
92
H
x
Px
x1 = x
y1 = y cos z sin
z1 = y sin + z cos .
93
(4.2)
Se definiamo la matrice
1
0
0
0 cos sin
Rx () =
0 sin cos
0
0
0
0
0
0
1
P = Rx ()P.
Per determinare le matrici di rotazione rispetto agli altri assi del riferimento
possiamo utilizzare un opportuno cambio di variabile:
x y z x.
Con un primo cambio di variabile in (4.2) abbiamo
y1 = y
z1 = z cos x sin
x1 = z sin + x cos .
La matrice di trasformazione `e:
cos
0
Ry () =
sin
0
0 sin 0
1
0
0
0 cos 0
0
0
1
(4.3)
z1 = z
x1 = x cos y sin
y1 = x sin + y cos .
La matrice di trasformazione `e:
cos sin
sin cos
Rz () =
0
0
0
0
0
0
1
0
0
0
0
1
94
95
4.2.3
Esaminiamo rapidamente queste tre trasformazioni il cui significato `e perfettamente analogo al caso bidimensionale. Per lo Scaling definiamo la matrice
di trasformazione
sx 0 0 0
0 sy 0 0
S(sx , sy , sz ) =
0 0 sz 0
0 0 0 1
y1 = sy y,
z1 = sz z.
1 0 0 0
0 1 0 0
RFx =
0 0 1 0 .
0 0 0 1
La trasformazione inversa `e:
RFx1 = RFx .
Lo deformazione rispetto a z `e definito dalla
1 0
0 1
SHz (a, b) =
0 0
0 0
matrice:
a 0
b 0
1 0
0 1
96
x1 = x + az
y1 = y + bz
z1 = z.
4.2.4
Proiezioni assonometriche
1 0 0 0
0 1 0 0
xy (a) =
0 0 0 a .
0 0 0 1
1 0 0 0
x
x
0 1 0 0 y y
xy (a)P =
0 0 0 a z = a .
1
0 0 0 1
1
Se a = 0 si ottiene la classica proiezione
1 0
0 1
xy =
0 0
0 0
0 0
0 0
.
0 0
0 1
97
y
P
z=a
x
1 0 0 0
0 0 0 0
xz =
0 0 1 0 .
0 0 0 1
e
yz
0
0
=
0
0
0
1
0
0
0
0
1
0
0
0
.
0
1
Capitolo 5
Approssimazione di Curve nello
Spazio
5.1
99
I punti 1 non garantiscono la continuit`a di f (x) cos` come `e stata definita poich`e la funzione non `e definita a destra o a sinistra. Per esempio se
consideriamo la funzione
x<0
x
f (x) =
2
x
x0
essendo h un valore positivo. Geometricamente esso rappresenta il coefficiente angolare della retta congiungente i punti di coordinate (x0 , f (x0 )) e
(x0 + h, f (x0 + h)). Se il rapporto incrementale `e positivo (supponiamo h
sufficientemente piccolo) vuol dire che la funzione, a destra di x0 sta crescendo, se `e negativo invece sta decrescendo. Si pu`o ripetere lo stesso discorso
prendendo un valore di h negativo oppure calcolando il rapporto incrementale con h e si ottiene landamento della funzione a sinistra di x0 . Se il
valore che si ottiene per la derivata nei due casi `e diverso vuol dire che la
derivata prima di f in x0 , che solitamente si indica con f (x0 ), non `e continua
100
5.1.1
5.2
Lalgoritmo di De Casteljau
` il metodo fondamentale nel campo del design di curve e superfici nello spaE
zio poich`e permette di costruire in modo semplice e algoritmico le curve nello
101
spazio aventi rappresentazione parametrica di tipo polinomiale. Per descrivere lalgoritmo di De Casteljau consideriamo come esempio la costruzione di
una curva parabolica nello spazio avente quindi come equazioni parametriche
dei polinomi di secondo grado. Siano P0 , P1 e P2 tre punti dello spazio e sia
t un parametro reale compreso tra 0 e 1. Nellapprossimazione di curve nello
spazio tali punti prendono il nome di punti di controllo (o vertici). Definiamo
le seguenti espressioni:
P01 (t) = (1 t)P0 + tP1
P11 (t) = (1 t)P1 + tP2 .
Osserviamo che P01 (t) `e lespressione del segmento congiungente P0 e P1 e
analogamente P11 (t) `e lespressione del segmento congiungente P1 e P2 . Infatti
se t = 0 allora
P01 (0) = P0
P11 (0) = P1 ,
mentre se t = 1:
P01 (1) = P1
P11 (1) = P2 .
P02 (1) = P2 .
Dallespressione ottenuta per P02 (t) si nota che il cambio del punto P1 (o di
uno degli altri punti di controllo), comporta un cambio globale della curva,
anche se i coefficienti della parabola (al variare di t) non devono essere ricalcolati.
102
Tale algoritmo pu`o essere naturalmente generalizzato alla costruzione di approssimanti polinomiali di qualsiasi grado, purch`e si abbia a disposizione un
numero sufficiente di punti. Assegnati n + 1 punti P0 , P1 , . . . , Pn allora la
curva di grado n `e:
k1
Pik (t) = (1 t)Pik1 (t) + tPi+1
(t)
5.3
Le Curve di B
ezier
(5.1)
n!
,
(n k)!k!
n `e il grado del polinomio e k `e un numero intero compreso tra 0 ed n. Supponendo quindi che siano stati assegnati n + 1 punti di controllo P0 , P1 , . . . , Pn ,
la Curva di Bezier assume la seguente espressione
P (t) =
n
X
Pk Jn,k (t)
k=0
0 t 1.
(5.2)
Le funzioni Jn,k (t) prendono anche il nome di funzioni base (blending functions nella terminologia inglese e tale definizione `e di tipo generale). I polinomi di Bernstein possono essere calcolati anche utilizzando la seguente
relazione di ricorrenza
Jn,k (t) = (1 t)Jn1,k (t) + tJn1,k1 (t),
1k n1
(5.3)
103
(5.4)
Si pu`o osservare che la relazione (5.3) `e molto simile a quella definita dallalgoritmo di De Casteljau.
Lespressione (5.2) va intepretata come una relazione vettoriale, cio`e posto P (t) = (x(t), y(t), z(t)), si hanno le seguenti relazioni per le ascisse, le
ordinate e le quote dei punti appartenenti alla curva approssimante:
x(t) =
n
X
xk Jn,k (t)
k=0
y(t) =
n
X
yk Jn,k (t)
k=0
z(t) =
n
X
zk Jn,k (t),
k=0
n!
0k (1 0)nk = 0,
(n k)!k!
k = 1, . . . , n,
104
P2
P0
b
P1
b
P2
b
P1
b
P0
P4
b
b
P3
b
b
P3
b
P0
b
P2
Figura 5.1: Esempi di curve di Bezier con 3, 4 e 5 punti di controllo.
quindi
P (0) = P0 .
Quando t = 1 invece
P (1) =
n
X
Pk Jn,k (1)
k=0
n!
1k (1 1)nk = 0,
(n k)!k!
k = 0, . . . , n 1,
quindi
P (1) = Pn .
Dalla Figura 5.2 si pu`o osservare come la posizione dei punti di controllo
intermedi abbia il compito di definire la forma della curva cio`e il modo
con cui la curva deve congiungere i punti di controllo estremi.
105
P2
b
P1
b
P3
P0
b
P3
P0
P1
b
P2
P0
P3
P2
b
Jn,k (t) = 1.
k=0
In particolare si vede che la tangente agli estremi coincide con la retta congiungente rispettivamente i primi due e gli ultimi due punti di
controllo.
106
P2
P(t)
P0
b
Q3
P3 Q0
Q(t)
P1
P2
Q1
b
Q2
P(t)
P0
P3 Q0
Q3
b
Q(t)
b
Q1
Q2
Figura 5.3: Nella figura in alto `e tracciata una curva di Bezier a tratti, determinata dallunione delle due curve P (t) e Q(t). La condizione di allineamento
dei punti di controllo P2 , P3 (coincidente con Q0 ) e Q1 assicura la continuit`a
della derivata prima della curva. Nel grafico in basso tale condizione non `e
verificata, infatti il punto nel P3 la curva presenta una cuspide cio`e un punto
in cui la tangente a destra e quella a sinistra sono differenti.
6. Se si hanno a disposizione molti punti di controllo si potrebbe pensare
di calcolare una singola curva di Bezier. Tuttavia si dovrebbero valutare
polinomi di grado elevato. Per ovviare a questo problema si potrebbe
pensare allutilizzo di una serie di curve di Bezier di grado pi`
u basso.
Questa tecnica tuttavia presenta un altro problema. Le due curve si
toccano in un punto, quindi la curva P (t) `e sicuramente continua, ma
non `e detto che esse abbiano la stessa tangente. Per quanto osservato
al punto precedente la condizione di continuit`a della derivata prima
dipende solo dal fatto che il punto di contatto pi`
u il penultimo punto
della prima curva e il secondo punto di controllo della seconda siano
allineati (vedere Figura 5.3).
107
P2
P0
P3
P1 P2
P3
P0
P4
m X
n
X
j=0 k=0
0 u, v 1
108
6
(3 k)!k!
k = 0, 1, 2, 3.
C(3, 0) = C(3, 3) = 1
e
6
6
= 3,
C(3, 2) =
= 3.
(3 1)!1!
(3 2)!2!
I polinomi di Bernstein hanno quindi le seguenti espressioni:
C(3, 1) =
J3,3 (t) = t3 .
5.4
Le B-Spline
Da un punto di vista matematico una curva `e definita attraverso una poligonale che unisce una serie di vertici (o punti di controllo) e da un opportuno
schema di interpolazione (o di approssimazione) che associa a tale curva
unequazione. Luso delle curve di Bezier ha molti vantaggi ma anche alcuni
svantaggi:
1. Il numero dei punti di controllo fissa lordine del polinomio che definisce
la curva (per esempio 4 punti di controllo definiscono una poligonale di
grado 3, 5 punti di controllo una di grado 4 e cos` via). Lunico modo
per ridurre il grado della curva `e quello di diminuire il numero di punti
cos` come lunico modo per aumentarlo `e quello di aggiungere ulteriori
punti.
2. I polinomi di Bernstein, usati come base nelle curve di Bezier, sono definiti globalmente per ogni valore del parametro t nellintervallo [0, 1],
quindi il cambio di un punto di controllo provoca la variazione di tutta la curva. In determinate circostanze questa mancanza di controllo
locale pu`o essere dannosa.
109
Supponiamo ora che uno dei punti di controllo, per esempio Pi venga modificato nel punto Pi pari a
Pi = Pi + v
Siamo interessati a vedere come varia la curva di Bezier. Definiamo quindi i
nuovi punti di controllo Qk tali che
se k 6= i
Pk
Qk =
Pi = Pi + v
se k = i.
n
X
Qk Jn,k (t)
k=0
n
X
k=0,k6=i
n
X
k=0,k6=i
n
X
k=0,k6=i
n
X
k=0
Poich`e
Jn,i (t) 6= 0,
0<t<1
segue che
P (t) 6= Q(t),
0<t<1
110
111
5.4.1
ti t ti+1
1
N0,i (t) =
0
altrimenti
Np,i (t) =
t ti
ti+p+1 t
Np1,i (t) +
Np1,i+1 (t),
ti+p ti
ti+p+1 ti+1
t1 = 1,
t2 = 2,
t3 = 3,
t4 = 4.
I grafico delle funzioni N0,0 (t), N0,1 (t), N0,2 (t) e N0,3 (t) sono piuttosto semplici da tracciare.
112
N0,0 (t)
t0
t1
t2
t3
t4
t2
t3
t4
t3
t4
N0,1 (t)
t0
t1
N0,2 (t)
t0
t1
t2
113
N0,3 (t)
t0
t1
t2
t3
t4
N2,0 (t)
N1,1 (t)
N3,0 (t)
N2,1 (t)
N4,0 (t)
..
N1,2 (t)
N3,1 (t)
.
..
[t3 , t4 ] N0,3 (t)
N2,2 (t)
.
..
.
N1,3 (t)
..
[t4 , t5 ] N0,4 (t)
.
..
..
.
.
Per calcolare la funzione base N1,i (t) sono richieste N0,i (t) e N0,i+1 (t). In generale per valutare Np,i (t) si devono conoscere Np1,i (t) e Np1,i+1 (t). Inoltre
in ogni colonna dello schema sono riportate tutte le funzioni base aventi lo
stesso grado. Se il vettore dei nodi `e U = {0, 1, 2, 3, 4}, allora la tabella delle
114
N2,0 (t)
N1,1 (t)
N3,0 (t)
N2,1 (t)
N1,2 (t)
[3, 4] N0,3 (t)
Applicando la formula di Cox-de Boor:
N1,0 (t) =
t t0
t2 t
N0,0 (t) +
N0,1 (t),
t1 t0
t2 t1
poich`e t0 = 0, t1 = 1, t2 = 2, t3 = 3, si ha
N1,0 (t) = tN0,0 (t) + (2 t)N0,1 (t).
Poich`e le funzioni N0,0 (t) e N0,1 (t) sono definite rispettivamente negli intervalli [0, 1] e [1, 2], la funzione N1,0 (t) `e definita nellintervallo [0, 2] ed assume
la seguente espressione:
t [0, 1)
t
N1,0 (t) =
2t
t [1, 2].
Calcoliamo ora N1,1 (t):
N1,1 (t) =
t t1
t3 t
N0,1 (t) +
N0,2 (t),
t2 t1
t3 t2
cio`e
N1,1 (t) = (t 1)N0,1 (t) + (3 t)N0,2 (t),
da cui si ricava che
N1,1 (t) =
t1
3t
t [1, 2)
t [2, 3].
115
t t2
t4 t
N0,2 (t) +
N0,3 (t),
t3 t2
t4 t3
cio`e
N1,2 (t) = (t 2)N0,2 (t) + (4 t)N0,3 (t),
da cui si ricava che
N1,2 (t) =
t2
t [2, 3)
4t
t [3, 4].
t2
t3
t4
t3
t4
N1,0 (t)
t0
t1
N1,1 (t)
t0
t1
t2
116
N1,2 (t)
t0
t1
t2
t3
t4
Una volta calcolate N1,0 (t) e N1,1 (t) possiamo calcolare N2,0 (t) utilizzando
sempre la formula di Cox-de Boor:
N2,0 (t) =
=
t t0
t3 t
N1,0 (t) +
N1,1 (t)
t2 t0
t3 t1
3t
t0
N1,0 (t) +
N1,1 (t)
20
31
t
3t
= N1,0 (t) +
N1,1 (t).
2
2
Per esplicitare lespressione di N2,0 (t) dobbiamo distinguere quattro casi:
1o caso: t [0, 1) :
In questo caso solo N1,0 (t) `e diversa da zero e contribuisce allespressione di
N2,0 (t), infatti si ha N1,0 (t) = t, quindi
1
N2,0 (t) = t2 ;
2
117
3t
N1,1 (t)
2
1
1
= t(2 t) + (3 t)(t 1)
2
2
=
=
1
2t t2 + 3t t2 3 + t
2
1
3 + 6t 2t2
2
3o caso: t [2, 3)
In questo caso solo N1,1 (t) contribuisce allespressione di N2,0 (t), infatti N1,1 (t) =
3 t, quindi
1
N2,0 (t) = (3 t)2 .
2
o
4 caso: t [3, 4]
In questo caso sia N1,0 (t) che N1,1 (t) sono nulli quindi
N2,0 (t) = 0.
Riassumendo, la funzione N2,0 (t) `e:
1 2
(3 + 6t 2t2 )
2
N2,0 (t) =
(3 t)2
t [0, 1)
t [1, 2)
t [2, 3)
t [3, 4).
118
1
2
2 (t 1)
N2,1 (t) =
1
1 (4 t)2
2
t [0, 1)
t [1, 2)
t [2, 3)
t [3, 4)
N2,0 (t)
t0
t1
t2
t3
t4
t3
t4
N2,1 (t)
t0
t1
t2
Procedendo nello stesso modo si pu`o calcolare lultima funzione che manca,
cio`e N3,0 (t):
4t
t4 t
t
t t0
N2,1 (t)
N2,0 (t) +
N2,1 (t) = N2,0 (t) +
N3,0 (t) =
t3 t0
t4 t1
3
3
119
N3,0 (t) =
1 3
t
6
t [0, 1)
1
(4 12t + 12t2 3t3 )
6
t [1, 2)
1 (4 t)3
6
t [2, 3)
t [3, 4)
N3,0 (t)
t0
t1
t2
t3
t4
Riassumiamo ora due propriet`a che le funzioni base delle B-Spline posseggono
e che si possono facilmente dedurre dallesempio fatto.
1. La funzione base Np,i (t) `e diversa da zero solo nellintervallo [ti , ti+p+1 ];
2. In ogni intervallo [ti , ti+1 ] ci sono al pi`
u p + 1 funzioni base diverse da
zero, cio`e
Np,ip (t), Np,ip+1 (t), . . . , Np,i (t).
Adesso possiamo definire formalmente la B-Spline che approssima una curva
nello spazio.
Assegnati n + 1 punti di controllo P0 , P1 , . . . , Pn ed il vettore dei nodi
U = {t0 , t1 , t2 , . . . , tm }
120
n
X
Np,i (t)Pi
i=0
dove Np,i (t) sono le funzioni base di grado p. Lespressione formale della BSpline di grado p `e solo formalmente molto simile a quella che abbiamo visto
per le curve di Bezier. Tuttavia essa ha, in s`e, una maggiore informazione,
che si traduce in un numero superiore di gradi di libert`a, in particolare, oltre
ai punti di controllo, si devono scegliere i nodi ti ed il grado p (indipendente
da n). In particolare poich`e se abbiamo n + 1 punti di controllo dobbiamo
anche poter definire n + 1 funzioni base `e necessario che tra n, p ed m ci sia
la seguente relazione:
m = n + p + 1.
Elenchiamo ora le principali differenze tra le B-Spline e le curve di Bezier:
1. Il grado p `e indipendente dal numero di punti di controllo;
` possibile costruire una B-Spline che non passa per il primo e lultimo
2. E
punto di controllo (B-Spline aperta);
3. Il vettore dei nodi definisce un insieme di punti sulla curva, in particolare quelli di coordinata C(ti ), i = 0, . . . , m, detti punti nodo (knot
points).
Ricapitoliamo ora le principali propriet`a delle B-Spline:
Np,i (t) `e un polinomio di grado p in t;
Np,i (t) 0 per ogni i, p, t;
Fissato un dominio [ti , ti+1 ] per sapere quali sono le funzioni definite
in tale intervallo (cio`e diverse da zero in tale intervallo) si considera
il solito schema tabulare e si tracciano due rette che partono da tale
dominio e vanno in diagonale verso destra, una verso lalto e laltra verso
il basso. Per esempio nel seguente schema, considerando il dominio
[t2 , t3 ], le funzioni diverse da zero sono evidenziate nella figura 5.5. In
definitiva nellintervallo [ti , ti+1 ] ci sono al pi`
u p+1 funzioni base diverse
da zero;
121
N0,0 (t)
[t1 , t2 ]
N0,1 (t)
[t2 , t3 ]
N0,2 (t)
[t3 , t4 ]
N0,3 (t)
[t4 , t5 ]
N0,4 (t)
[t5 , t6 ]
N0,5 (t)
[t6 , t7 ]
N0,6 (t)
N1,0 (t)
N1,1 (t)
N1,2 (t)
N1,3 (t)
N1,4 (t)
N2,0 (t)
N2,1 (t)
N2,2 (t)
N2,3 (t)
N3,0 (t)
N3,1 (t)
N3,2 (t)
N4,0 (t)
N4,1 (t)
N5,0 (t)
N6,0 (t)
N5,1 (t)
N4,2 (t)
N3,3 (t)
N2,4 (t)
N1,5 (t)
Figura 5.5:
Al contrario fissata una funzione base Np,i (t) per sapere in quali domini `e definita si considera la stessa tabella e si tracciano due rette
che partono da tale dominio e vanno in diagonale verso sinistra, una
verso lalto e laltra verso il basso. Per esempio nel seguente schema,
considerando la funzione N3,2 (t): Quind la funzione Np,i (t) `e diversa da
zero solo nellintervallo [ti , ti+p+1 ];
La somma di tutte le funzioni base di grado p non nulle nel dominio
[ti , ti+1 ] `e 1;
Se il numero di punti di controllo `e n+1 e p `e il grado della curva allora
il numero m deve essere n + p + 1.
Se il kesimo punto di controllo cambia, cio`e Pk diventa Pk + v allora
vogliamo calcolare la nuova B-Spline avente come punti di controllo Qk
tali che
se i 6= k
Pi
Qi =
Pk = Pk + v
se i = k.
122
N0,0 (t)
[t1 , t2 ]
N0,1 (t)
[t2 , t3 ]
N0,2 (t)
[t3 , t4 ]
N0,3 (t)
[t4 , t5 ]
N0,4 (t)
[t5 , t6 ]
N0,5 (t)
[t6 , t7 ]
N0,6 (t)
N1,0 (t)
N1,1 (t)
N1,2 (t)
N1,3 (t)
N1,4 (t)
N2,0 (t)
N2,1 (t)
N2,2 (t)
N2,3 (t)
N3,0 (t)
N3,1 (t)
N3,2 (t)
N4,0 (t)
N4,1 (t)
N5,0 (t)
N6,0 (t)
N5,1 (t)
N4,2 (t)
N3,3 (t)
N2,4 (t)
N1,5 (t)
Figura 5.6:
La nuova B-Spline D(t) di grado p `e:
D(t) =
n
X
Qi Np,i (t) =
i=0,i6=k
i=0
n
X
n
X
i=0,i6=k
n
X
i=0,i6=k
n
X
i=0
Poich`e la funzione Np,k (t) `e diversa da zero solo nellintervallo [tk , tk+p+1 ]
allora le curve C(t) e D(t) differiscono solo nella parte di curva compresa tra i punti nodo C(tk ) e C(tk+p+1 ).
Per evidenziare questultima propriet`a, che `e probabilmente il vantaggio pi`
u
grande nelluso delle B-Spline rispetto alle curve di Bezier, nella Figura 5.7 `e
123
P1
P3
P4
C(t4 )
C(t5 )
C(t3 )
C(t6 )
C(t2 )
C(t7 )
C(t1 )
C(t8 )
P0
P5
Figura 5.7:
rappresentata una B-spline cubica (p = 3) con n = 5 (ovvero 6 punti di controllo), che richiede m + 1 = 9 (ovvero m = 8) nodi. Nelle Figure successive
sono evidenziate le parti della curva influenzate dai punti di controllo.
124
P1
P3
P4
C(t4 )
C(t5 )
C(t3 )
C(t6 )
C(t2 )
C(t7 )
C(t1 )
C(t8 )
P0
P5
P2
P1
P4
C(t4 )
C(t3 )
C(t2 )
C(t1 )
P0
P3
C(t5 )
C(t6 )
C(t7 )
C(t8 )
P5
125
P1
P3
P4
C(t4 )
C(t5 )
C(t3 )
C(t6 )
C(t2 )
C(t7 )
C(t1 )
C(t8 )
P0
P5
P2
P1
P4
C(t4 )
C(t3 )
C(t2 )
C(t1 )
P0
P3
C(t5 )
C(t6 )
C(t7 )
C(t8 )
P5
126
P1
P3
P4
P3
C(t4 )
C(t3 )
C(t5 )
C(t6 )
C(t7 )
C(t2 )
C(t8 )
C(t1 )
P0
P5
Figura 5.8:
P2
P1
P3
P4
P3
C(t4 )
C(t3 )
C(t5 )
C(t6 )
C(t2 )
C(t7 )
C(t1 )
C(t8 )
P0
P5
Figura 5.9:
127
5.4.2
Le B-spline hanno il vantaggio di fornire un controllo locale sulla curva approssimante ma sono pur sempre delle funzioni polinomiali a tratti e consentono quindi una buona approssimazione solo per curve di questo tipo.
Si possono ottenere approssimazioni migliori utilizzando come funzioni base
quelle di tipo razionale, dette NURBS (acronimo di Non-Uniform Rational
B-Spline), ovvero funzioni base razionali costruite su insiemi di nodi non
uniformi.
Una NURBS di grado p `e definito da
C(t) =
n
X
Np,i (t)i Pi
i=0
n
X
(5.5)
Np,i (t)i
i=0
dove i Pi sono i punti di controllo, i valori i sono i pesi mentre le funzioni Np,i (t) sono le funzioni basedi grado p definite sullinsieme di nodi non
uniforme
U = {t0 , t1 , t2 , . . . , tm }
n
X
Rp,i (t)Pi
i=0
in cui le funzioni Rp,i (t) sono funzioni razionali, che godono delle seguenti
propriet`a:
1. Rp,i (t) 0 per ogni i, p e t [0, 1];
2.
n
X
i=0
Rp,i (t) = 1,
t [0, 1];
128