Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Matematica
e Design
UNITEXT - La Matematica per il 3+2
Volume 115
Editor-in-Chief
Alfio Quarteroni, Politecnico di Milano, Milan, Italy; EPFL, Lausanne,
Switzerland
Series Editors
Luigi Ambrosio, Scuola Normale Superiore, Pisa, Italy
Ciro Ciliberto, Università Degli Studi di Roma “Tor Vergata”, Rome, Italy
Matematica e Design
123
Edie Miglio Nicola Parolini
MOX, Dipartimento di Matematica MOX, Dipartimento di Matematica
Politecnico di Milano Politecnico di Milano
Milano, Italy Milano, Italy
Immagine di copertina: Robot modellato con superfici di suddivisione. Realizzato da Nicolò Azzolin,
Carlo Cocchetti e Andrea Picardi come progetto finale del corso di Computer Animation presso il
Politecnico di Milano (2018).
Il testo è ispirato dalle lezioni tenute dagli autori nell’ambito dei corsi di “Curve e
Superfici per il Design” presso la Facoltà di Design del Politecnico di Milano.
Saper rappresentare opportunamente per via analitica curve e superfici nello
spazio è di capitale importanza nell’ambito del Design e dell’Architettura, in vista
della progettazione e costruzione di edifici ed oggetti. Infatti, ad una rappresen-
tazione artistica di una curva o superficie, creata in base a criteri estetici e fun-
zionali, deve seguirne una quantitativa, esprimibile mediante formule matematiche
precise che ne garantiscano la riproducibilità e l’implementazione in software di
modellazione.
Per andare incontro a questa esigenza il presente libro vuole costituire una
introduzione alla rappresentazione parametrica di curve e superfici nel piano e nello
spazio.
Il testo è corredato anche da numerosi esempi per permettere al lettore di
applicare le tecniche proposte e verificarne la comprensione. Al fine di rendere
ancora più concreta la trattazione, gli strumenti introdotti sono utilizzati per la
soluzione di problemi di reale interesse applicativo, raccolti in schede denominate
Real life applications.
Inoltre per consentire una fruizione pratica dei concetti sviluppati nel libro, molte
delle immagini che illustrano gli esempi proposti sono corredate da un QR code
(come quello riportato qui a lato) che indirizza al materiale supplementare
disponibile online (all’indirizzo https://www.mate.polimi.it/MathAndDesign). In
particolare, per ciascuna immagine, sul sito web è possibile trovare il relativo
codice sorgente per poterla riprodurre con software di grafica vettoriale
open-source, nonché versioni animate e/o navigabili in 3D in modalità interattiva
delle immagini stesse.
Il primo capitolo contiene alcuni richiami ad argomenti di base necessari per la
trattazione successiva: insiemi numerici, trigonometria e derivate. Nel secondo
capitolo viene introdotto il concetto di vettore che costituisce l’elemento fonda-
mentale per tutte le descrizioni parametriche discusse nei capitoli successivi. Il
Capitolo 3 contiene gli elementi di base del calcolo matriciale e presenta le
trasformazioni geometriche. Nei Capitoli 4 e 5 viene introdotta la rappresentazione
parametrica di curve e superfici; in entrambi i casi si parte da curve e superfici
vii
viii Prefazione
semplici (retta e piano) per arrivare alla descrizione di curve e superfici complesse
ottenute per generazione utilizzando le trasformazioni geometriche precedente-
mente descritte. I Capitoli 6 e 7 introducono la rappresentazione di curve e superfici
utilizzando funzioni spline (Bézier, B-spline e NURBS). Infine il Capitolo 8 pre-
senta alcuni cenni alle curve e superfici di suddivisione, metodi di rappresentazione
avanzati comunemente impiegati nella grafica computazionale.
Questo testo è concepito per i corsi introduttivi di matematica alle scuole di
Design ed Architettura. Per questo motivo la trattazione privilegia il carattere
operativo rispetto al formalismo e all’astrazione. Le conoscenze richieste sono
richiamate nei due capitoli iniziali e sono tutte introdotte nelle scuole superiori.
Per concludere vorremmo ringraziare le persone che negli ultimi anni hanno
svolto le esercitazioni ed i laboratori dei nostri corsi di “Curve e Superfici per il
Design” presso il Politecnico di Milano, in particolare: Mario Argeri, Francesco
Cattoglio, Luca Del Grosso, Alessio Fumagalli, Guido Iori, Andrea Mola, Mattia
Penati, Roberto Porcù, Daniele Rossi, Sara Tomasoni e Stefano Zonca. Ringrazi-
amo inoltre Franca Caliò per il continuo confronto e le fruttose interazioni sulla
didattica della Matematica per l’Architettura ed il Design. Ringraziamo infine
Francesca Bonadei che ha creduto da subito in questo progetto ed ci ha accom-
pagnato con professionalità (e pazienza) durante la redazione del testo.
1 Richiami di base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Insiemi numerici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Richiami di trigonometria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Introduzione alle funzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Esempi di funzioni particolari . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4.1 Funzioni trigonometriche . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4.2 Funzioni polinomiali . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4.3 Funzioni esponenziali e logaritmiche . . . . . . . . . . . . . . . . 15
1.5 Continuità e derivabilità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.6 Un cenno alle funzioni di due variabili . . . . . . . . . . . . . . . . . . . 21
2 Punti e vettori nello spazio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.1 Sistemi di riferimento e punti . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.1.1 Sistema di riferimento cartesiano . . . . . . . . . . . . . . . . . . 26
2.1.2 Altri sistemi di riferimento . . . . . . . . . . . . . . . . . . . . . . . 29
2.2 Real life applications: le coordinate geografiche . . . . . . . . . . . . . 32
2.3 Real life applications: gli spazi dei colori . . . . . . . . . . . . . . . . . . 33
2.4 Punti e vettori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.4.1 Definizione di vettore . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.4.2 Operazioni coi vettori: approccio geometrico . . . . . . . . . . 35
2.4.3 Relazione fra punti e vettori . . . . . . . . . . . . . . . . . . . . . . 38
2.4.4 Operazioni coi vettori: approccio algebrico . . . . . . . . . . . 40
2.5 Coordinate omogenee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3 Matrici e trasformazioni geometriche . . . . . . . . . . . . . . . . . . . . . . . 49
3.1 Operazioni tra matrici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.1.1 Somma e differenza di matrici . . . . . . . . . . . . . . . . . . . . 50
3.1.2 Prodotto tra uno scalare e una matrice . . . . . . . . . . . . . . . 52
3.1.3 Prodotto matriciale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.2 Alcune matrici particolari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.2.1 Matrici invertibili e determinante . . . . . . . . . . . . . . . . . . 57
ix
x Indice
xiii
Richiami di base
1
Non tutto ciò che può essere contato conta e non tutto ciò che
conta può essere contato.
(A. Einstein)
Il sistema di numeri che siamo ogni giorno abituati (spesso costretti) ad utilizzare
nella vita privata e al lavoro, cioè il sistema decimale, si basa semplicemente su
un’esigenza “anatomica”: il numero delle nostre dita è 10, per cui è stato da sempre
molto semplice “ricominciare” a contare una volta arrivati al 10 o ai suoi multipli.
Niente vieterebbe di usare un’altra convenzione basata su un altro numero, differente
da 10, è solo una questione di abitudine. Ad esempio, i calcolatori non “contano” in
base 10 ma in base 8(=23 ) o 16(=24 ), in quanto la logica binaria (acceso/spento) su cui
si basa il loro funzionamento rende molto più comodo usare queste basi. Dato lo scopo
di questo libro, considereremo qui solamente la base 10, per cui un qualsiasi numero
può essere visto come somma di opportuni coefficienti per le potenze di 10. Ad
esempio, il numero 347,6 può essere scritto come: 3·102 + 4·101 + 7·100 + 6·10−1
(si ricorda che 100 = 1).
I numeri possono essere raggruppati in diversi modi, in base alle loro caratteristiche.
L’insieme più grande di numeri che considereremo in questo testo è l’insieme dei
a x
b
a c x
b
...
Figura 1.1 Fra due numeri a e b esiste sempre almeno un numero reale c compreso fra essi
(continuità dei numeri reali)
numeri reali1 . I numeri reali sono tanti quanti i punti di una retta e la loro definizione
può essere data proprio associando ad ogni punto della retta un numero reale. I numeri
reali sono quindi indefinitamente vicini uno all’altro, così come i punti di una retta,
in cui non esistono “buchi”. Infatti, dati due numeri reali, ne esiste sempre almeno
un terzo compreso fra i due, proprio come fra due punti di una retta ne esiste sempre
almeno un terzo compreso fra i due, si veda Figura 1.1. L’insieme dei numeri reali
si indicherà con R e scriveremo x ∈ R per intendere che “un numero x appartiene
all’insieme dei reali”. I numeri reali si “estendono” all’infinito, in particolare a “meno
infinito” (−∞) e “più infinito” (+∞), anche se formalmente questi due estremi non
appartengono all’insieme dei numeri reali.
Un particolare sottoinsieme dei numeri reali è dato dai numeri naturali N:
0, 1, 2, 3, . . .. Questi numeri, come i numeri reali, sono infiniti, però di una infinità
numerabile: possiamo cioè pensare di “contarli”. Al contrario l’insieme dei nume-
ri reali, costituendo un “continuo” di numeri che non ammette interruzioni, è “più
ampio” di quello dei numeri naturali, pur essendo entrambi infiniti. Formalmente,
questo equivale a dire che non esiste una corrispondenza biunivoca (cioè “uno a
uno”) fra i numeri reali e i numeri naturali.
Se aggiungiamo ai numeri naturali anche i numeri negativi −1, −2, −3, . . ., otte-
niamo l’insieme dei numeri interi Z. Anch’essi sono numerabili e quindi esiste una
corrispondenza biunivoca fra i numeri interi e i numeri naturali, anche se il primo
insieme contiene il secondo.
L’insieme dei numeri p esprimibili come rapporto di due numeri interi ( p =
a/b, a, b ∈ Z) forma l’insieme dei numeri razionali Q. Pur contenendo ovviamente
i numeri interi, anche i numeri razionali formano una inifinità numerabile. Questo
1 Non consideriamo qui i numeri complessi, di cui i numeri reali sono un caso particolare.
1.1 Insiemi numerici 3
a0 + a1 x + a2 x 2 + a3 x 3 + . . . = 0,
√
con coefficienti ai razionali. Un esempio di numero algebrico non razionale è 2,
che è di fatto soluzione ad esempio dell’equazione x 2 − 2 = 0. La sua irrazionalità
fu mostrata nel VI secolo a.C. da Pitagora. I numeri algebrici sono anch’essi numera-
bili, risultato dimostrato anch’esso da Cantor. Ciò significa che esistono altri numeri
irrazionali oltre agli algebrici che devono “riempire” tutti i “buchi” che questi ultimi
lasciano in quanto “meno numerosi” di tutti i numeri reali. Tali numeri si dicono
trascendenti e sono definiti proprio come numeri irrazionali (cioè non esprimibili
come rapporto di interi) non algebrici (cioè che non sono radici di polinomi a coef-
ficienti razionali). Poiché i numeri irrazionali non sono numerabili (se lo fossero,
non sarebbe numerabile l’insieme complementare, ossia quello dei razionali), men-
tre i numeri algebrici lo sono, e poiché i numeri irrazionali sono dati dall’unione
dei numeri algebrici e di quelli trascendenti, ne segue che i numeri trascendenti non
sono numerabili. Possiamo quindi dire informalmente che “quasi tutti” i numeri sono
trascendenti, essendo molti più dei rimanenti (cioè degli algebrici). Un esempio di
numero trascendente è π.
Teorema 1.1 Una retta parallela ad un lato di un triangolo taglia gli altri due lati
del triangolo in modo proporzionale.
|AB | |AC |
= ,
|B B| |C C|
C
θ
A B B
r
C
θ
A B B
Figura 1.3 Rappresentazione grafica del Teorema di Talete nel caso di un triagolo rettangolo
Nel caso particolare costituito da un triangolo rettangolo (si veda la Figura 1.3)
dalla prima delle (1.1) si ottiene
|AB | |AB|
= .
|AC | |AC|
In altri termini, dato un angolo θ, in un qualsiasi triangolo rettangolo di vertice A
in corrispondenza di θ, il rapporto tra la lunghezza del cateto adiacente a θ e la
lunghezza dell’ipotenusa è una costante; a tale costante viene dato il nome di coseno
di θ e si indica con cos(θ).
In modo analogo dalla seconda delle (1.1) si può ricavare che
|B C | |BC|
= ,
|AC | |AC|
cioè il rapporto tra la lunghezza del cateto opposto a θ e la lunghezza dell’ipotenusa
è una costante; a tale costante viene dato il nome di seno di θ e si indica con sin(θ).
Il seno ed il coseno di un angolo sono quantità minori di 1 in quanto la lunghezza
di un cateto è sempre inferiore alla lunghezza dell’ipotenusa. Inoltre, facendo sempre
1.2 Richiami di trigonometria 5
Esempio 1.1
Si consideri il triangolo ABC di Figura 1.4 di cui sia nota la lunghezza del
lato AC e l’ampiezza θ dell’angolo in A. Si vuole calcolare la lunghezza
della proiezione ortogonale del lato AC sul lato AB, cioè la lunghezza del
segmento AH in figura. Ricordando la definizione geometrica del coseno di
un angolo si ha che
|AH |
= cos(θ) ⇒ |AH | = |AC| cos(θ). (1.3)
|AC|
θ
A H B
Figura 1.4 Calcolo della lunghezza della proiezione del lato AC sul lato AB
6 1 Richiami di base
Esempio 1.2
Si consideri il triangolo rettangolo di vertici A, B, C in Figura 1.5, dove si
è indicata con I la lunghezza dell’ipotenusa e con C1 e C2 le lunghezze dei
due cateti. Sia θ l’angolo che il cateto 1 forma con l’ipotenusa.
Dalla definizione delle funzioni seno e coseno, abbiamo le seguenti
uguaglianze, che mettono in relazione la lunghezza dei cateti e dell’ipotenusa:
C1 = I cos(θ), C2 = I sin(θ).
sin(θ)
C2 = C1 = C1 tan(θ).
cos(θ)
B
I
C2
θ
C A
C1
Figura 1.5 Triangolo rettangolo con cateti e ipotenusa
Dato un sottoinsieme D dei numeri reali, al limite coincidente con R stesso (D ⊆ R),
si definisce funzione f una applicazione che associa ad ogni numero x ∈ D uno ed
un solo numero y ∈ R, che viene indicato con
y = f (x).
1.3 Introduzione alle funzioni 7
In Figura 1.6 sono rappresentate due curve: quella di sinistra è di fatto il grafico di una
funzione, mentre quella di destra non lo è. Infatti, si noti come, in quest’ultima, ad
alcuni valori di x corrispondano due valori di f (x). Osserviamo come in Figura 1.6
e nelle successive si sia fatto uso della rappresentazione cartesiana, che formalmente
sarà introdotta solamente nel Capitolo 2. Qui, per il momento, si pensi solo ad un
modo per visualizzare il concetto che ad un numero x ∈ D possa essere associato al
più un valore f (x).
L’insieme D è detto dominio della funzione f e l’insieme dei valori y ∈ R tali
per cui esiste almeno un valore x ∈ D con y = f (x) è detto codominio C della
funzione f .
Diamo di seguito l’importante definizione di limite di una funzione. Iniziamo
con il concetto di limite destro. Euristicamente, diremo che il limite destro di una
funzione è pari a b per x che si avvicina da destra, cioè per valori maggiori, ad un
valore a, ossia
lim f (x) = b,
x→a +
quando la funzione assume valori arbitrariamente vicini a b qualora x si avvicini ad
a da destra. In termini rigorosi, ciò accade quando
si veda la Figura 1.7 in alto a sinistra. Nella precedente relazione abbiamo utilizzato
il simbolo ∀ che significa “per ogni” e il simbolo ∃ che significa “esiste”.
y y
x x
SÌ NO
Figura 1.6 Esempio di funzione (sinistra) e di curva non rappresentabile mediante una funzione
(destra). Nell’ultimo caso, si osservi come ad un punto x corrispondano due valori di y = f (x)
8 1 Richiami di base
(a) δ (b) δ
y y
2ε b 2ε b
x x
a a
(c) 2δ
y
2ε b
x
a
Figura 1.7 Definizione di limite destro (a), limite sinistro (b) e limite (c)
Analogamente, diremo che il limite sinistro di una funzione per x che si avvicina
da sinistra, cioè per valori minori, ad un valore a è pari a b, ossia
lim f (x) = b,
x→a −
Esempio 1.3
x
Data la funzione f (x) = , si ha
x +1
lim f (x) = 1.
x→+∞
Esempio 1.4
1
Data la funzione f (x) = (rappresentata in Figura 1.8),
x −1
x=1 x
Esempio 1.5
x=1 x
Figura 1.9 Esempio di una funzione che ammette un limite infinito per x → +∞
In questa sezione forniremo esempi di particolari classi di funzioni che saranno utili
per il prosieguo del libro. In particolare, verranno date le definizioni e le principali
proprietà delle funzioni trigonometriche, polinomiali, esponenziali e logaritmiche.
2π
espresso in radianti vale θ = X . Quindi, ad esempio, l’angolo di 90◦ corrisponde
360
a π/2 radianti, l’angolo di 180◦ a π radianti, l’angolo di 360◦ a 2π radianti.
Muovendosi verticalmente dal punto P si incontra l’asse orizzontale nel punto Q.
Si definisce:
sin(θ)
θ
C Q
cos(θ)
Tabella 1.1 Valori notevoli delle funzioni seno, coseno e tangente per θ ∈ [0, π/2]
θ sin(θ) cos(θ) tan(θ)
0 0 1 0
√ √
π 1 3 3
3 2 2 3
√ √
π 2 2
1
4 √ 2 2
π 3 1 √
3
3 2 2
π
1 0 ∞
2
12 1 Richiami di base
Tabella 1.2 Segno delle funzioni seno, coseno e tangente al variare di θ ∈ [0, 2π]
θ sin(θ) cos(θ) tan(θ)
π
0<θ< >0 >0 >0
π 2
<θ<π >0 <0 <0
2
3π
π<θ< <0 <0 >0
2
3π
< θ < 2π <0 >0 <0
2
sin(θ)
sin(π − θ)
θ θ
cos(π − θ) cos(θ)
sin(θ) sin(θ)
cos(π + θ)
θ θ
θ θ
sin(π + θ) sin(2π − θ)
cos(θ) cos(θ)=
cos(2π − θ)
Figura 1.11 Esempi di relazioni fra seno e coseno per diversi angoli
Esempio 1.6
1 1
x x π
x
π 2π π 2π π 3π 2π
−1 −1 2 2
Figura 1.12 Grafici delle funzioni trigonometriche: seno (a), coseno (b), tangente (c)
Esempio 1.7
Esempio 1.8
Nelle Tabelle 1.1 e 1.2 riportiamo anche i valori della funzione tangente per alcuni
valori significativi dell’angolo e il suo segno. I grafici delle funzioni trigonometriche
y = sin(x), y = cos(x) e y = tan(x) sono riportati nella Figura 1.12.
La funzione reciproca della tangente è la cotangente, cioè cotan(θ) =
cos(θ)/ sin(θ).
Spesso nei calcoli si deve far riferimento alle funzioni trigonometriche inverse:
si conosce il valore del seno, coseno o tangente, e si deve ricavare il corrispondente
angolo. Tali funzioni prendono il nome di arcoseno, arcocoseno e arcotangente,
rispettivamente. In particolare, si ha che
sin(θ) = a → θ = arcsin(a);
cos(θ) = b → θ = arccos(b);
tan(θ) = c → θ = arctan(c).
Si fa notare come le funzioni arcsin(x) e arccos(x) siano definite per valori di x
compresi fra −1 e 1 e assumano valori compresi fra −π/2 e π/2, e tra 0 e π rispet-
14 1 Richiami di base
π π
2 2
−1 1 −1 1 −10 10
− π2 − π2
Figura 1.13 Grafici delle funzioni trigonometriche inverse: arcoseno (a), arcocoseno (b),
arcotangente (c)
tivamente, mentre la funzione arctan(x) sia definita su tutto l’asse reale e assuma
anch’essa valori compresi fra −π/2 e π/2. I grafici di tali funzioni inverse sono
rappresentati in Figura 1.13.
Esempio 1.9
AC 4
BC = = = 8,
cos(θ) 1/2
Esempio 1.10
Con riferimento alla Figura 1.5 dell’Esempio 1.2, dato il triangolo rettangolo
di cateti AC = 4 e AB = 3, l’angolo θ è dato da
AB 3 π
θ = arctan = arctan .
AC 4 5
y y
x x
Figura 1.14 Esempio di polinomio di grado 1 (retta, a sinistra) e polinomio di grado 3 (a destra)
N
f (x) = βjx j,
j=0
Iniziamo questa sezione ricordando alcune regole delle operazioni fra potenze:
a b a c = a b+c , (a b )c = a bc , a b cb = (ac)b ,
e la definizione di logaritmo:
c = loga (b) se a c = b.
y y
x x
Figura 1.15 Esempi di funzioni esponenziali. Caso a > 1 (sinistra) e caso 0 < a < 1 (destra)
Esempio 1.11
Dati a = 2 e b = 18 , si ha
1
log2 = log2 2−3 = − log2 23 = −3.
8
Esempio 1.12
Dati a = 3, b = 9, c = 81, si ottiene
log3 (729) = log3 (81 · 9) = log3 (81) + log3 (9) = log3 (34 ) + log3 (32 ) = 6.
f (x) = a x , a = 0,
y y
x x
Figura 1.16 Esempi di funzioni logaritmiche. Caso a > 1 (sinistra) e caso 0 < a < 1 (destra)
la cui derivata (si veda sezione successiva) è uguale alla funzione stessa. La funzione
logaritmo in base e, loge x, viene chiamata logaritmo naturale e si indica con ln x.
Si veda la Figura 1.17 per esempi qualitativi dei casi citati. Una funzione f si dice
essere continua in un insieme D1 ⊆ D se è continua per ogni x ∈ D1 .
18 1 Richiami di base
(a) (b)
y y
x x
(c) y
Figura 1.17 Esempi di discontinuità: (a) la funzione ammette limiti sinistro e destro diversi per
x = 1 (discontinuità di prima specie); (b) la funzione ammette limite a −∞ per x = −1 (discon-
tinuità di seconda specie); (c) la funzione ammette limiti sinistro e destro finiti e coincidenti per
x = 0, ma non è ivi definita
Esempio 1.13
La funzione y(x) = arctan x1 presenta una discontinuità di prima specie in
x = 0. Infatti, essendo rispettivamente tan − π2 = −∞ e tan π2 = ∞, si
ha
1 π 1 π
lim arctan =− , lim arctan = .
x→0 − x 2 x→0 + x 2
Esempio 1.14
La funzione y(x) = 1
(x−1)2
presenta una discontinuità di seconda specie in
x = 1. Infatti si ha
1
lim = +∞.
x→1 (x − 1)2
1.5 Continuità e derivabilità 19
y
θ
x
a
Esempio 1.15
f (a + h) − f (a)
lim ,
h→0 h
Per la derivata del prodotto e del rapporto fra due funzioni f e g valgono le seguenti
formule:
f f g − f g
( f g) = f g + f g , = .
g g2
Esempio 1.16
= − sin(x)x 3 + 3 cos(x)x 2 |x=π = −3π 2 .
h(x) = g( f (x)),
vale a dire che la derivata di h(x) è data dalla derivata di g (la funzione più “esterna”
della composizione) rispetto al suo argomento, per la derivata di f (la funzione più
interna). L’utilizzo pratico di questa regola di derivazione è mostrato nel seguente
esempio.
Esempio 1.17
Data la funzione h(x) = cos(x 2 + 2x − 1), essa può essere letta come la
composizione della funzione trigonometrica g(x) = cos(x) e della funzione
polinomiale f (x) = x 2 + 2x − 1. Ricordando che la derivata del coseno è
data da
g (x) = (cos(x)) = − sin(x)
e che la derivata del polinomio è
f (x) = (x 2 + 2x − 1) = 2x + 2,
1.5 Continuità e derivabilità 21
Diamo in questa sezione qualche cenno alle funzioni di due variabili che rivestiran-
no un ruolo fondamentale nella rappresentazione parametrica di superfici, si veda
Capitolo 5. Il dominio in questo caso è dato da un sottoinsieme D di R2 (al limite
coincidente con R2 stesso) dove con R2 si è indicato l’insieme delle coppie ordinate
di numeri reali x1 , x2 .
Si definisce funzione di due variabili f un’applicazione che associa ad ogni coppia
di numeri (x1 , x2 ) ∈ D uno ed un solo numero x3 ∈ R, che viene indicato con
x3 = f (x1 , x2 ).
Così come il grafico di una funzione di una variabile definisce una curva nel piano,
una funzione di due variabili definisce una superficie nello spazio. Possiamo pensare
che, dato un punto nel piano di coordinate (x1 , x2 ) = (a, b), f (a, b) rappresenti la
“quota”, cioè l’altezza della superficie rispetto al piano in quel punto (si veda Figura
1.19).
∂f ∂f
Figura 1.20 Interpretazione geometrica delle derivate parziali , come pendenza di due
∂x1 ∂x2
rette tangenti al grafico della funzione
lim f (x1 , x2 ) = l
(x1 ,x2 )→(a,b)
∂f f (a + h, b) − f (a, b)
(a, b) = lim .
∂x1 h→0 h
1.6 Un cenno alle funzioni di due variabili 23
∂f
Analoga definizione può essere data per ∂x2 (a, b), cioè
∂f f (a, b + h) − f (a, b)
(a, b) = lim .
∂x2 h→0 h
Le regole per il calcolo operativo delle derivate parziali sono le stesse utilizzate per
il caso di derivata di funzione di una variabile (detta anche ordinaria), purché la
variabile rispetto a cui non si sta derivando sia considerata come una costante.
Esempio 1.18
Data la funzione in due variabili f (x1 , x2 ) = e−x1 sin(2πx2 ), i valori delle
derivate parziali nel punto (x1 , x2 ) = (−2, 1/8) sono dati da
√
∂f −x1 2 2
(−2, 1/8) = −e sin(2πx2 )|(x1 =−2,x2 =4) = −e ,
∂x1 2
e
√
∂f −x1 2 2
(−2, 1/8) = 2πe cos(2πx2 )|(x1 =−2,x2 =4) = 2πe .
∂x2 2
Punti e vettori nello spazio
2
Partiamo dal caso più semplice di sistema cartesiano monodimensionale, ossia im-
maginiamo che il mondo sia rappresentato da una retta (asse x) sulla quale indivi-
duiamo un punto rispetto al quale misurare le distanze e che chiamiamo origine O.
In generale, i punti intesi come entità fisiche verranno identificati da lettere maiu-
scole. Per calcolare le distanze è necessario introdurre una unità di misura. Al fine
di discriminare fra punti caratterizzati dalla stessa distanza, è necessario introdurre
un orientamento, ovvero un senso di percorrenza della retta; in particolare si suole
assumere che spostandosi verso destra rispetto all’origine i punti abbiano distanza
positiva, al contrario spostandosi verso sinistra abbiano distanza negativa, si veda
Figura 2.1.
Questo permette di identificare in maniera univoca un punto P con la sua distan-
za x P (intesa con segno) dall’origine. Quest’ultima prende il nome di coordinata.
Ovviamente si ha x O = 0 qualsiasi sia l’unità di misura adottata. Dati due punti P
e Q, la distanza con segno di Q da P è definita da
d P→Q = x Q − x P ,
d P Q = |x P − x Q |,
P O Q
x
xP = − 32 xQ = 2
P
r
ove d Q→π = d Q→H , con H la proiezione ortogonale di Q sul piano π. Dal teorema
di Pitagora si ha
d P Q = (x P − x Q )2 + (y P − y Q )2 + (z P − z Q )2 .
Spesso è utile determinare il punto medio M di un segmento con estremi nei punti
P e Q. Esso si ottiene considerando i valori medi delle coordinate, ad esempio nel
piano:
xP + xQ yP + yQ
xM = , yM = .
2 2
Analogamente, il punto medio tra due punti P e Q nello spazio è definito da
xP + xQ yP + yQ zP + zQ
xM = , yM = , zM = .
2 2 2
Esempio 2.1
Dati i punti P = (2, 3) e Q = (−1, 2), il punto medio M è dato da
xP + xQ 2 + (−1) 1
xM = = = ,
2 2 2
yP + yQ 3+2 5
yM = = = .
2 2 2
La distanza è invece data da
√
d P Q = (x P − x Q )2 + (y P − y Q )2 = 10.
P + Q = (x p + x Q , y P + y Q ).
Effettuando la somma dei punti usando la loro rappresentazione nel primo sistema
di riferimento si ha R1 = P + Q = (3, 1.5), se invece usiamo la rappresentazione
nel secondo sistema si ha R2 = P + Q = (−5, −4.5), cioè si ottengono due diversi
punti. In altri termini: i punti P nel piano Q sono entità indipendenti dal sistema di
riferimento ma la loro somma non lo è. Quindi l’operazione non è lecita. In modo
analogo supponiamo di definire la moltiplicazione di un punto P per uno scalare α
come
αP = (αx P , αy P , αz P ) .
Se prendiamo ad esempio un sistema di riferimento per cui (x P , y P , z P ) = (1, 2, 0)
ed un altro per cui (x P , y P , z P ) = (0, 1, 0), è facile notare come il prodotto per lo
scalare α = 2 produca (2, 4, 0) per il primo sistema di riferimento e (0, 2, 0) per il
secondo, portando ancora a due diversi punti. In generale una operazione per essere
2.1 Sistemi di riferimento e punti 29
x
y
R1
P
Q
x
R2
lecita deve fornire un risultato che sia indipendente dal sistema di riferimento quando
gli elementi su cui l’operazione viene eseguita sono entità che non dipendono dal
sistema di riferimento. Per approfondimenti si vedano [11] e [16]. Come sarà chiaro
nella Sezione 2.4.3, sarà invece perfettamente lecito considerare la differenza fra due
punti.
Una volta definito in maniera rigorosa come rappresentare i punti nello spazio,
possiamo pensare di utilizzare tale procedura per rappresentare delle figure com-
plesse come ad esempio dei poligoni. L’idea è quella di memorizzare solamente
le coordinate dei vertici ed assumere che essi siano collegati da segmenti di linea
retta. In generale, si può pensare di “unire” due vertici consecutivi con una curva
più complessa, ottenendo così figure non poligonali più generali. La formulazione
matematica delle curve, a partire dalle rette fino a curve di forma generale, verrà
trattata in modo esteso nei Capitoli 4 e 6. Uno dei maggiori problemi nel costruire
un poligono nello spazio è garantirne la planarità, cioè che i suoi vertici stiano su
uno stesso piano. Un triangolo è sempre planare; questo è il motivo per cui spesso
nei software i poligoni vengono costruiti in maniera approssimata come collezione
di triangoli, si veda Figura 2.4.
In alcuni contesti risulta essere più conveniente rappresentare i punti del piano in
un sistema di riferimento non cartesiano. Ad esempio, in presenza di figure con
simmetria assiale, si può pensare di rappresentare un punto fornendo la sua distanza
assoluta dall’origine ρ e l’angolo θ compreso fra il segmento O P e l’asse x: si parla
in questo caso di coordinate polari , si veda Figura 2.5.
Dato un punto P, nel piano, dalla definizione di seno e coseno di un angolo si ha
x P = ρ P cos (θ P ) , y P = ρ P sin (θ P )
e
yP
ρP = x 2P + y 2P , θ P = arctan .
xP
30 2 Punti e vettori nello spazio
P
yP
ρP
θP
O xP x
θP
ρP
O yP
xP φP
P y
e
yP zP
ρP = x 2P + y 2P + z 2p , θ P = arctan , ϕ P = arccos .
xP ρP
32 2 Punti e vettori nello spazio
Esempio 2.2
Dato il punto Q = (4, −6), la sua rappresentazione polare è data da
√
ρQ = xQ2 + y 2 = 2 13,
Q
y
θ P = arctan x QQ = arctan − 23 = −0.98.
Figura 2.7 A sinistra, distanza fra due punti sulla superficie terrestre; a destra, legge dei
coseni in geometria sferica
Esistono diversi modi per codificare i colori visibili dall’uomo in forma nu-
merica: questi metodi si chiamano modelli di colore. Sappiamo che si possono
creare colori diversi mescolando le tinte dei tre colori primari rosso, giallo e
blu. Questo è un modello detto sottrattivo perché il colore risultante dipende
dalle frequenze assorbite (“sottratte”) da ciascuno dei tre componenti primari:
a partire dal bianco, aggiungendo colore si filtrano alcune lunghezze d’onda.
Al contrario un modello additivo si basa sulla combinazione della luce emes-
sa: si parte dal buio e si aggiungono sorgenti luminose con diversa lunghezza
d’onda per comporre il colore desiderato. Normalmente, per analogia con il fun-
zionamento della retina umana, si utilizzano come colori primari dello spazio
additivo il rosso, il verde e il blu. Nel modello risultante, noto come modello
RGB (Red-Green-Blue) ogni colore si può rappresentare, in analogia con le
34 2 Punti e vettori nello spazio
coordinate cartesiane 3D, come un punto la cui posizione è data dalla quantità
di rosso, verde e blu. L’insieme dei colori forma un cubo i cui vertici opposti
sono il nero e il bianco, come mostrato in Figura 2.8. Ad esempio, il verde è
rappresentato dalla terna (0, 255, 0) mentre il viola da (128, 0, 128).
Il modello RGB non è l’unico: spesso i colori vengono rappresentati da
una terna di numeri che rappresentano rispettivamente la loro tinta (Hue), la
saturazione (Saturation) e la luminosità, detta brightness o value. La tinta è
un valore che varia con continuità dal rosso, al giallo, verde, blu, magenta per
tornare al rosso: si può quindi interpretare come un angolo. Nel modello HSV
un colore è un punto nello spazio tridimensionale individuato dalle coordinate
cilindriche H, che è l’angolo di rotazione, S ossia la distanza dall’asse, e V che
rappresenta la coordinata lungo l’asse del cilindro, come illustrato in Figura
2.8.
v2 v2
v2
v2
Figura 2.9 Due vettori con; (a) uguale direzione e verso, diverso modulo; (b) uguale direzione,
verso opposto e modulo diverso; (c) uguale direzione e modulo, verso opposto; (d) diverse direzioni
A differenza dei punti, è possibile sommare due vettori. Questo grazie alla delo-
calizzazione dei vettori. Avvalendoci della analogia con gli spostamenti, possiamo
definire la somma fra due vettori v e w come il cammino rettilineo che si percorre-
rebbe posizionando w al termine di v. Questo metodo prende il nome di regola del
parallelogramma, si veda Figura 2.10.
È possibile anche moltiplicare un vettore v per uno scalare α (cioè un numero
reale), producendo un allungamento o accorciamento, cioè un nuovo vettore w = αv
con modulo pari ad |α|v, stessa direzione di v e verso concorde con v se α > 0,
discorde se α < 0, si veda Figura 2.11.
Questo permette di definire anche la differenza fra due vettori come v − w =
v +(−1)w (si veda Figura 2.12 a sinistra). Applicando la regola del parallelogramma
per sommare v e (−1)w si può notare (si veda Figura 2.12 a destra) come il vettore
v+w
w
v+w
v v
Figura 2.11 Due vettori v1 e v2 multipli: (a) v2 = 2v1 ; (b) v2 = −v1 ; (c) v2 = 21 v1
36 2 Punti e vettori nello spazio
v−w
v v−w
v
w
w
−w
Figura 2.12 Differenza di vettori con il metodo del parallelogramma e il metodo “punta-coda”
Figura 2.13 Angolo compreso fra due vettori e definizione delle proiezioni vw , wv
Figura 2.14 Prodotto vettore e interpretazione del verso del vettore risultante secondo la regola
della vite
P v
z = z u u + z v v,
per due opportuni scalari z u e z v , che prendono il nome di componenti. I vettori u
e v costituiscono una base per R2 e si diranno vettori di base. Dati due vettori di
base e una coppia di scalari, ad essi è associato univocamente un vettore. Viceversa,
dati due vettori di base e un altro vettore, ad essi sono associati univocamente le
due componenti del terzo vettore. Analogamente, dati tre vettori non paralleli u, v
e w nello spazio, ogni altro vettore z può essere rappresentato come combinazione
lineare di u, v e w, ossia
z = z u u + z v v + z w w.
Anche in questo caso, diremo che i vettori u, v e w costituiscono una base per R3 .
La scelta più classica consiste nel prendere vettori di base ortogonali e di modulo
unitario. In particolare, si introduce la base canonica nel piano cartesiano, data dai
vettori i e j di modulo unitario ed allineati rispettivamente con gli assi cartesiani x
ed y. Analogamente, la base canonica nello spazio è definita dai vettori i, j e k di
modulo unitario ed allineati rispettivamente con gli assi cartesiani x, y e z.
38 2 Punti e vettori nello spazio
Un vettore viene spesso rappresentato da una freccia che parte da un punto P e punta
ad un altro punto Q, di lunghezza v e direzione parallela a P Q, si veda Figura 2.16.
Per enfatizzare i due punti estremi del vettore, il vettore può essere indicato con la
−→
notazione P Q. È immediato calcolare il modulo di un vettore nel piano utilizzando
il teorema di Pitagora
v = |P Q| = (x Q − x P )2 + (y Q − y P )2 .
Q
yQ v
P
yP
xP xQ x
e nello spazio
⎡ ⎤ ⎡ ⎤ ⎡ ⎤
1 0 0
i = ⎣0⎦, j = ⎣1⎦, k = ⎣0⎦.
0 0 1
Dalla precedente notazione, notiamo come sia possibile definire un vettore come
differenza fra due punti, in particolare v = P − Q.
Dato un vettore v, definiamo versore associato a v il vettore
v di direzione parallela
a quella di v e modulo unitario. Le sue componenti sono facilmente ottenibili grazie
a
⎡ ⎤
vx /v
v = ⎣ v y /v ⎦ .
vz /v
Infatti, si ha
1 2
v =
vx2 +
v 2y +
vz2 = vx + v 2y + vz2 = 1.
v
v = vx i + v y j.
v = vx i + v y j + vz k,
Esempio 2.3
Come già osservato, un vettore non ha, a differenza dell’entità punto, una precisa
localizzazione nello spazio. Ciò significa che il vettore v che congiunge i punti P e
Q può essere equivalentemente rappresentato come freccia A − B che unisce altri
due punti A e B diversi da P e Q, purché
⎧
⎨ x B − x A = vx = x Q − x P ,
yB − y A = vy = yQ − yP ,
⎩
z B − z A = vz = z Q − z P .
Una scelta naturale per rappresentare un vettore è data da v = V − O, con x V =
vx , yV = v y e z V = vz , che porta ad identificare un punto V con il vettore v
le cui componenti uguagliano le coordinate del punto. Bisogna però sottolineare
che, nonostante questa identificazione, un punto ed un vettore rimangono due entità
matematicamente diverse, il primo non avendo dimensione e il secondo non avendo
una precisa localizzazione.
e in maniera analoga la differenza (come somma fra v e −w). È facile mostrare che
questa definizione coincide con la regola del parallelogramma. Si veda Figura 2.17,
una rappresentazione grafica nel caso bidimensionale.
Il prodotto fra un vettore un vettore v nel piano e uno scalare α può essere definito
per via algebrica nel seguente modo
αvx
αv = .
αv y
2.4 Punti e vettori 41
y
y
v+w
wy Q P
w
v
vy v
v−w x
−w
w
vx wx x
v · w = v x w x + v y w y + vz vz ,
ovvero il prodotto scalare è dato dalla somma dei prodotti componente per compo-
nente dei due vettori.
Considerando per semplicità il caso piano, con il vettore w allineato con l’asse x,
è facile mostrare l’equivalenza tra le definizioni geometrica ed algebrica del prodotto
scalare. Sia θ l’angolo fra i due vettori (cioè quello che v forma con l’asse x). Allora
si ha
v · w = v cos θwx + v sin θw y = vw cos θ, (2.2)
avendo notato che w y = 0 e w = wx . Questo risultato è invariante rispetto alla
rotazione degli assi cartesiani.
42 2 Punti e vettori nello spazio
Esempio 2.4
Dati i vettori v = [1, 2]T e w = [−3, 1]T , il prodotto scalare fra di essi è
dato da
v · w = 1 · (−3) + 1 · 2 = −1.
L’angolo compreso fra i due vettori si ottiene nel seguente modo
√
v·w −1 5 2
cos θ = = √ √ =− ,
v w 5 10 50
da cui
√
5 2
θ = arccos − .
50
Esempio 2.5
Dato il triangolo di vertici A = (1, 1), B = (3, 2), C = (2, 3), vogliamo
calcolarne l’area (si veda Figura 2.18).
Scegliamo come base il segmento AB e come altezza il segmento C H , con
H la proiezione di C su AB. Si ha
√
|AB| = (3 − 1)2 + (2 − 1)2 = 5.
B
H
O x
Come già osservato, un altro tipo di prodotto fra vettori è dato dal prodotto
vettoriale , definito per via algebrica da
⎡ ⎤
v y wz − vz w y
v × w = ⎣ vz w x − v x wz ⎦ . (2.4)
vx w y − v y wx
Esempio 2.6
da cui
69
θ = arcsin 0.27π.
119
44 2 Punti e vettori nello spazio
Esempio 2.7
Si vuole mostrare che due vettori v e w paralleli hanno prodotto vettoriale
nullo. Dati due vettori paralleli, esiste sempre un numero reale α tale che
w = αv. Allora dalla definizione (2.4) di prodotto vettoriale, si ha
⎡ ⎤ ⎡ ⎤
v y αvz − vz αv y 0
v × w = v × αv = ⎣ −vx αvz + vz αvx ⎦ = ⎣ 0 ⎦ .
vx αv y − v y αvx 0
Esempio 2.8
Si vuole mostrare che il prodotto vettoriale di due vettori generici è sempre
ortogonale ai due vettori che lo determinano. Infatti, si ha
P = P0 + α(P1 − P0 ).
Sappiamo che la posizione dei punti nel piano Euclideo E2 può essere definita me-
diante le coordinate cartesiane, cioè da coppie ordinate del tipo (x, y). Denotiamo
con (X, Y, W ) le coordinate di un punto nello spazio R3 . Il piano Euclideo può essere
identificato con il piano W = 1 dello spazio R3 , cioè ad ogni punto (x, y) di E2 viene
2.5 Coordinate omogenee 45
fatto corrispondere il punto (x, y, 1) di R3 (si veda Figura 2.19). L’insieme dei punti
(λx, λy, λ) con λ ∈ R e λ = 0, costituisce la retta blu di Figura 2.19. In pratica ai
punti di E2 (di solito individuati da 2 coordinate) associamo 3 coordinate che sono
definite a meno di un fattore di scala non nullo: esse sono chiamate coordinate omo-
genee (introdotte da Möbius nel 1827); la terza componente della rappresentazione
in coordinate omogenee viene detta peso.
Si noti che la rappresentazione in coordinate omogenee di un punto del piano
Euclideo non è unica: ad esempio il punto del piano di coordinate cartesiane (3, 5)
può essere rappresentato in coordinate omogenee come (3, 5, 1), (6, 10, 2) o ancora
da (−9, −15, −3) cioè da una generica terna di numeri del tipo (3λ, 5λ, λ) con
λ ∈ R e λ = 0; in altri termini tutti i punti della retta blu di Figura 2.19 sono
rappresentazioni, in coordinate omogenee, dello stesso punto del piano Euclideo.
Dato un punto di coordinate omogenee (X, Y, W ), le corrispondenti coordinate
cartesiane (x, y) si ottengono come segue
Esempio 2.9
Dati i seguenti punti del piano rappresentati in coordinate omogenee:
Nei precedenti capitoli, abbiamo visto come, dato un sistema di riferimento nel
piano e nello spazio, sia possibile definire la posizione di un punto attraverso l’uti-
lizzo di un vettore. Per definire e rappresentare graficamente entità geometriche più
complesse dei punti, quali ad esempio le curve e le superfici, è utile introdurre gli
strumenti matematici con cui è possibile effettuare le trasformazioni che permettono
di ottenere tali entità. Vedremo infatti nel Capitolo 4 come molte curve nel piano
e nello spazio possono essere ottenute applicando una trasformazione ad un punto
assegnato, mentre nel Capitolo 5 le trasformazioni verranno utilizzate per generare
superfici a partire da curve. Dal punto di vista matematico, è utile introdurre il concet-
to di matrice che consentirà di rappresentare matematicamente molte trasformazioni
utilizzate nella geometria e nella grafica computazionale.
Una matrice è una tabella ordinata di elementi. In particolare, definiamo una matrice
di dimensioni n ×m come una tabella di elementi organizzati in n righe ed m colonne,
cioè
⎡ ⎤
a11 a12 · · · a1m
⎢a21 a22 · · · a2m ⎥
⎢ ⎥
A=⎢ . . . . ⎥,
⎣ .. .. . . .. ⎦
an1 an2 · · · anm
dove ai j rappresenta l’elemento della matrice sulla i-esima riga e j-esima colonna.
In generale, gli elementi della matrice possono essere numeri interi, reali o com-
plessi. In questa trattazione ci limiteremo a considerare il caso di matrici a valori
reali, tuttavia molte delle proprietà e delle operazioni che verranno introdotte pos-
sono essere estese a matrici con elementi non appartenenti all’insieme dei numeri
reali.
È possibile definire diverse operazioni sulle matrici (somma, differenza e pro-
dotto tra matrici, prodotto tra scalare e matrici). Per poter definire tali operazioni è
necessario rispettare alcuni vincoli di compatibilità sulle dimensioni delle matrici.
Tali vincoli verranno specificati in seguito per ciascuna operazione. Gli insiemi di
matrici su cui si possono definire le operazioni e le operazioni stesse definiscono una
algebra delle matrici. Vediamo qui di seguito le principali operazioni tra matrici e
le rispettive proprietà di cui godono.
dove il generico elemento della matrice somma cij = aij + bij è dato dalla somma
dei corrispondenti elementi di A e B. È evidente che tale operazione, per essere ben
definita, richiede che le matrici abbiano tutte le stesse dimensioni.
3.1 Operazioni tra matrici 51
Esempio 3.1
Date le matrici A e B di dimensioni 2 × 3 definite da
1 2 −1 −1 1 0
A= , B= ,
2 0 −2 −1 1 1
dove il generico elemento della matrice differenza cij = aij − bij è dato dalla
differenza dei corrispondenti elementi di A e B.
Esempio 3.2
Date le matrici A e B di dimensioni 3 × 2 definite da
⎡ ⎤ ⎡ ⎤
21 12
A= ⎣ 3 1 ⎦ , B = 1 0⎦ ,
⎣
22 01
Il prodotto tra uno scalare (reale) α e una matrice A ∈ Rn×m di dimensioni arbitrarie
è dato dalla matrice B ∈ Rn×m con uguali dimensioni definita da
⎡ ⎤
αa11 αa12 · · · αa1m
⎢αa21 αa22 · · · αa2m ⎥
⎢ ⎥
B = αA = ⎢ . .. .. . ⎥,
⎣ .. . . .. ⎦
αan1 αan2 · · · αanm
dove il generico elemento della matrice bi j = α ai j è dato dal prodotto tra lo scalare
e il corrispondente elemento di A.
Esempio 3.3
È infine possibile introdurre il prodotto tra due matrici. Tale operazione è possibile
solo quando il numero di colonne della prima matrice coincide con il numero di righe
della seconda. In particolare, data la matrice A ∈ Rn×l e la matrice B ∈ Rl×m , la
matrice prodotto C ∈ Rn×m è definita da
⎡ ⎤
c11 c12 ... c1m
⎢c21 c22 ... c2m ⎥
⎢ ⎥
C = AB = ⎢ . .. .. .. ⎥ ,
⎣ .. . . . ⎦
cn1 cn2 . . . cnm
3.1 Operazioni tra matrici 53
l
dove il generico elemento della matrice ci j = k=1 aik bk j , per i = 1, . . . , n e
j = 1, . . . , m, è dato dal prodotto scalare tra la i-sima riga di A e la j-sima colonna
di B. Ad esempio, l’elemento c11 è dato da
Esempio 3.4
Un altro caso particolare è quello che definisce il cosiddetto prodotto esterno tra
vettori, nel quale un vettore colonna di lunghezza n è moltiplicato per un vettore riga
di pari dimensioni fornendo come risultato una matrice di dimensioni n × n data da
⎡ ⎤ ⎡ ⎤
u 1 v 1 v2 · · · v n u 1 v1 u 1 v2 · · · u 1 vn
⎢u 2 ⎥ ⎢ u 2 v1 u 2 v2 · · · u 2 vn ⎥
⎢ ⎥ ⎢ ⎥
uv T = ⎢ . ⎥ =⎢ . .. . . .. ⎥ .
⎣ .. ⎦ ⎣ .. . . . ⎦
un u n v1 u n v2 · · · u n vn
Esistono classi di matrici che godono di proprietà particolari. Tra queste una classe
importante è quella rappresentata dalle matrici quadrate ovvero quelle matrici che
hanno un numero di righe pari al numero di colonne. Data una matrice quadrata
A ∈ Rn×n definiamo diagonale della matrice l’insieme degli elementi aii , per i =
1, . . . , n, con indice di riga pari all’indice di colonna.
Una matrice quadrata A ∈ Rn×n è detta matrice diagonale se gli unici elementi
non nulli giacciono sulla sua diagonale, cioè se ai j = 0, per i = j.
Esempio 3.5
Una matrice diagonale che ha tutti gli elementi diagonali pari a 1 è detta matrice
identità. In particolare, denoteremo con In la matrice identità di ordine n.
3.2 Alcune matrici particolari 55
Esempio 3.6
Una matrice quadrata è detta triangolare inferiore se ha tutti gli elementi sopra la
diagonale nulli, cioè se ai j = 0 per ogni j > i. Analogamente, una matrice quadrata
è detta triangolare superiore se ha tutti gli elementi sotto la diagonale nulli, cioè se
ai j = 0 per ogni j < i.
Data una matrice A ∈ Rn×m si definisce matrice trasposta di A la matrice A T ∈
Rm×n ottenuta da A scambiandone le righe con le colonne, ovvero
⎡ ⎤
a11 a21 ··· am1
⎢a12 a22 ··· am2 ⎥
⎢ ⎥
AT = ⎢ . .. .. .. ⎥ ,
⎣ .. . . . ⎦
a1n a2n · · · amn
dove il generico elemento aiTj coincide con l’elemento a ji della matrice di partenza.
Una matrice quadrata A ∈ Rn×n è detta simmetrica se coincide con la sua
trasposta, ovvero A = A T .
Esempio 3.7
Una matrice quadrata A ∈ Rn×n è detta invertibile se esiste una matrice A−1 ∈
Rn×n tale che
A A−1 = A−1 A = In .
Se esiste, la matrice A−1 è detta matrice inversa di A.
56 3 Matrici e trasformazioni geometriche
Esempio 3.8
⎡ ⎤⎡ ⎤ ⎡ ⎤
2 1 −1 10 1 100
A−1 A = ⎣−3 0 1 ⎦ ⎣2 1 1⎦ = ⎣0 1 0⎦ = I3 .
−1 −1 1 31 3 001
A−1 = A T ,
Esempio 3.9
La A ∈ R3×3 definita da
⎡ √3 ⎤
2 − 21 0
⎢ √ ⎥
A=⎣ 1 3
0⎦
2 2
0 0 1
è invertibile e la sua inversa A−1
è data da
⎡√ ⎤
3 1
0
⎢ 2 √2 ⎥
A=⎢ 3 ⎥
⎣− 2 2 0⎦ ,
1
0 0 1
3.2 Alcune matrici particolari 57
infatti si ha
⎡√ ⎤⎡√ ⎤
⎡ ⎤
2 −
3 1 3 1
0 0 100
⎢ √2 ⎥ ⎢ 2 √2 ⎥
A A−1 =⎢
⎣
1 3 ⎥⎢
0⎦ ⎣− 21 23
⎥
0⎦ = ⎣0 1 0⎦ = I3 .
2 2
001
0 0 1 0 0 1
Si nota inoltre che, in questo caso la matrice inversa A−1 coincide con la
trasposta A T e quindi la matrice A è ortogonale.
Il fatto che una matrice sia o meno invertibile, ovvero che esista o meno una cor-
rispondente matrice inversa, è una delle proprietà fondamentali che permettono di
caratterizzare la natura della matrice stessa e delle operazioni ad essa associate.
Come vedremo nel dettaglio nelle prossime sezioni, una matrice può essere utiliz-
zata per rappresentare una trasformazione geometrica nel piano e nello spazio, ovvero
una operazione che sposta o deforma un dato oggetto in una nuova posizione.
L’esistenza dell’inversa di una matrice A che rappresenta una determinata trasfor-
mazione geometrica, corrisponde all’esistenza di una trasformazione inversa che, se
applicata all’oggetto trasformato, lo riporta nella configurazione di partenza (si veda
Figura 3.1).
A−1
x
Ax = b,
Per ogni matrice quadrata è possibile definire un numero, detto determinante della
matrice, che è fondamentale per caratterizzarne l’esistenza o meno dell’inversa. Se,
infatti, una matrice quadrata ha determinante diverso da zero, la matrice è invertibile.
Vediamo come si può definire il determinante di matrici quadrate di dimensioni
arbitrarie.
Una matrice quadrata A di dimensioni 1 × 1 è definita dall’unico elemento a11 e
il suo determinante è pari al suo valore, ovvero
detA = det a11 = a11 .
ovvero è pari al prodotto degli elementi della diagonale principale meno il prodotto
degli elementi della diagonale secondaria.
In generale, per matrici quadrate di dimensioni arbitrarie A ∈ Rn×n , il determi-
nante può essere calcolato utilizzando il cosiddetto sviluppo di Laplace per righe.
Scelta la riga i-sima, si ha
n
detA = ai j Ci j , (3.2)
j=1
Esempio 3.10
Si vuole calcolare il determinante della matrice A di dimensioni 3 × 3 definita
da
⎡ ⎤
2 2 3
A = ⎣ 3 −1 2⎦ .
−2 1 1
Utilizzando la formula (3.2), scelta la prima riga per lo sviluppo, si ha
−1 2 3 2 3 −1
det(A) = 2 (−1) det
2
+ 2 (−1) det
3
+ 3 (−1) det
4
1 1 −2 1 −2 1
= 2(−2 − 1) − 2(3 + 4) + 3(3 − 2) = −6 − 14 + 3 = −17.
detA = a11 a22 a33 + a12 a23 a31 + a13 a21 a32 − a31 a22 a31 − a11 a23 a33 − a12 a21 a31 .
colonne) sono linearmente dipendenti, ovvero se una riga (o colonna) può essere
scritta come combinazione lineare delle altre. Il determinante di una matrice è
diverso da zero se e solo se la matrice è invertibile.
• Determinante di matrici triangolari (e, in particolare, diagonali): se A è triango-
lare (superiore o inferiore), allora
n
detA = aii .
i=1
det(A T ) = detA.
1
det(A−1 ) = .
detA
• Determinante di una matrice ortogonale: se A è ortogonale, allora
det(A) = ±1.
S = |det(A)| S.
V = |det(A)| V.
affine non è un’isometria cioè non conserva le distanze tra punti e non conserva gli
angoli.
Introduciamo ora alcune trasformazioni affini elementari descrivendone le prin-
cipali caratteristiche. Iniziamo con il considerare le trasformazioni affini nella forma
(3.3) con vettore d nullo.
3.3.1 Identità
In−1 = In
e che conserva l’area (nel piano) o il volume (nello spazio) dell’oggetto a cui è
applicata, infatti
det(I2 ) = det(I3 ) = 1.
3.3.2 Scalatura
Esempio 3.11
Si vuole applicare al quadrato ABC D di lato 2 mostrato in Figura 3.2 (sinistra)
una scalatura di un fattore 2 in direzione x e di un fattore 1/2 in direzione y.
Tale trasformazione è rappresentata dalla matrice
20
S= .
0 21
cx 20 2 4 dx 20 0 0
= = , = = .
cy 0 21 2 1 d y 0 21 2 1
y y
D C
D C
A B x A B x
Figura 3.2 Scalatura in due dimensioni
64 3 Matrici e trasformazioni geometriche
y
λ=2
λ=1
λ = 0.5
λ = −0.5
λ = −1
λ = −2
0 0 λz 0 0 λ1z
y y
x x
Esempio 3.12
Dato il triangolo rettangolo ABC mostrato in Figura 3.5, si applichi la
deformazione nel piano in direzione x rappresentata dalla matrice
1 21
Dx = .
01
y y
C C
A B x A B x
P
P
β
3.3.4 Rotazione
Esempio 3.13
Si vuole applicare al triangolo ABC mostrato in Figura 3.7 (sinistra), una
rotazione di un angolo β = π/3 attorno all’origine. La matrice di rotazione
corrispondente è data da
1 √
cos(π/3) − sin(π/3) − 3
Rπ/3 = = √2 2
.
sin(π/3) cos(π/3) 3 1
2 2
68 3 Matrici e trasformazioni geometriche
y y
C
B
A
C
β
A Bx x
Figura 3.7 Rotazione nel piano di β = π/3 attorno all’origine degli assi
z z z
P P
x P y x y x y
P P
P
e rispetto all’asse y
⎡ ⎤
cos(β) 0 sin(β)
Ry = ⎣ 0 1 0 ⎦.
− sin(β) 0 cos(β)
È sempre possibile rappresentare una arbitraria rotazione nello spazio come com-
posizione di due rotazioni attorno ad assi non allineati e quindi, in particolare, attorno
a due dei tre assi cartesiani.
Tutte le rotazioni sono trasformazioni invertibili a determinante unitario. Essendo
un moto rigido non sorprende che le aree (nel piano) e i volumi (nello spazio) siano
conservati. Se si considera, ad esempio, la rotazione attorno all’asse y si ha
Si noti come la matrice di rotazione risulti essere ortogonale, ovvero la sua inversa
coincida con la trasposta. Ciò è vero in generale per tutte le rotazioni.
70 3 Matrici e trasformazioni geometriche
3.3.5 Riflessione
Nel piano, la riflessione rispetto ad una retta r (detta asse di riflessione) è la tra-
sformazione che associa ad un punto un altro punto nel semipiano opposto rispetto
all’asse, che si trova alla stessa distanza da quest’ultimo e tale che il segmento con-
giungente i due punti sia ortogonale all’asse. In Figura 3.9, il triangolo ABC viene
riflesso rispetto ad una retta passante per l’origine nel triangolo A B C . Analoga-
mente, nello spazio la riflessione rispetto ad un piano (detto piano di riflessione) è
la trasformazione che associa ad un punto un altro punto nel semispazio opposto ri-
spetto al piano, che si trova alla stessa distanza da quest’ultimo e tale che il segmento
congiungente i due punti sia ortogonale al piano.
Sia in due che in tre dimensioni, la matrice di riflessione M (da mirror) è data da
M = I − 2n̂n̂T , (3.4)
y y
C
B
C A
A Bx x
Figura 3.9 Riflessione nel piano rispetto ad una retta passante per l’origine
3.3 Trasformazioni geometriche affini 71
n̂
x
p
P
H
p
P
h = p − (p · n̂)n̂,
e quindi
p = p − 2 (p · n̂)n̂. (3.5)
Vogliamo ora trovare la matrice M tale per cui p = Mp. Riscriviamo quindi (3.5)
in modo equivalente come
Esempio 3.14
Dato il punto P di coordinate (1, 2)T e la retta r bisettrice del I e III quadrante,
si vuole determinare il punto P ottenuto riflettendo P rispetto alla retta r ,
si veda Figura 3.11. La retta r ha vettore normale dato da n = (1, −1). Il
corrispondente versore si ottiene riscalando n con il suo modulo
√2
n 1 1
n̂ = =√ = 2√ .
n 2 −1 − 22
72 3 Matrici e trasformazioni geometriche
Si noti come la riflessione rispetto alla bisettrice del I e III quadrante ha come
effetto lo scambio delle coordinate x e y del punto.
y
P
x
Figura 3.11 Riflessione nel piano rispetto alla bisettrice del primo e terzo quadrante
3.3.6 Traslazione
La traslazione nel piano si ottiene omettendo la terza componente nella somma tra i
vettori.
Esempio 3.15
Applicando al triangolo ABC mostrato in Figura 3.12 la traslazione nel piano
definita dal vettore d = [2, 3]T si ottiene il triangolo A B C di vertici
ax 0 2 2
= + = ,
a y 0 3 3
bx 2 2 4
= + = ,
by 0 3 3
cx 2 2 4
= + = .
cy 1 3 4
y y
C
A B
A B x x
Esempio 3.16
Si consideri la rotazione nel piano di un angolo β in senso antiorario; la base
canonica viene trasformata (si veda Figura 3.13) nei versori ruotati
cos(β) − sin(β)
i = , j = .
sin(β) cos(β)
j
j
i
i x
in cui cioè la matrice A è stata orlata con una riga e una colonna in più aventi tutti
gli elementi nulli tranne quello diagonale che vale 1.
Le matrici estese in coordinate omogenee risulteranno quindi di dimensioni
4 × 4 per trasformazioni nello spazio e, analogamente, di dimensioni 3 × 3 per
trasformazioni nel piano.
76 3 Matrici e trasformazioni geometriche
dove la matrice identità è stata orlata a destra con il vettore traslazione e in basso
con un vettore di zeri e uno sulla diagonale.
Dato, infatti, un punto P associato al vettore p di coordinate omogenee [ px , p y ,
pz , 1]T , il punto traslato P è associato al vettore
p in coordinate omogenee dato
dal seguente prodotto matrice vettore:
⎡ ⎤ ⎡ ⎤⎡ ⎤ ⎡ ⎤
px 1 0 0 dx px px + dx
⎢ p y ⎥ ⎢0 dy ⎥ ⎢ ⎥ ⎢ ⎥
⎢ ⎥=⎢ 1 0 ⎥ ⎢ py ⎥ = ⎢ py + dy ⎥ .
⎣ pz ⎦ ⎣0 0 1 dz ⎦ ⎣ pz ⎦ ⎣ pz + dz ⎦
1 0 0 0 1 1 1
Grazie alle coordinate omogenee possiamo definire attraverso una matrice una ar-
bitraria trasformazione affine della forma (3.3). La generica trasformazione affine
nello spazio
x = A x + d
è infatti definita dalla matrice
dx a11 a12 a13 dx
A
dy a21 a22 a23 dy
T = = ,
dz a31 a32 a33 dz
0 0 0 1 0 0 0 1
3.4 Trasformazioni con coordinate omogenee 77
Esempio 3.17
La roto-traslazione nello spazio data dalla rotazione di un angolo β = 2π/3
attorno all’asse x seguita dalla traslazione data dal vettore d = [1, 1, 2]T è
definita dalla matrice
⎡ ⎤ ⎡ ⎤
cos(β) − sin(β) 0 dx 0 −1 0 1
⎢ sin(β) cos(β) 0 d y ⎥ ⎢1 0 0 1⎥
T =⎢ ⎥=⎢ ⎥.
⎣ 0 0 1 dz ⎦ ⎣0 0 1 2⎦
0 0 0 1 0 0 01
Si noti come l’orlatura della matrice A mediante il vettore d sia possibile solamente
nel caso in cui la traslazione avvenga dopo la trasformazione identificata da A. In caso
contrario, sarà necessario considerare le regole di composizione fra trasformazioni,
che verranno introdotte nella prossima sezione.
Abbiamo visto come, grazie anche all’utilizzo delle coordinate omogenee, sia pos-
sibile rappresentare sotto forma di matrice tutte le trasformazioni geometriche affini
fino a qui introdotte.
È possibile rappresentare in modo analogo anche trasformazioni più complesse,
nel caso in cui esse possano essere ottenute come composizione di trasformazioni
elementari. Per ottenere infatti la matrice corrispondente alla composizione di due
o più trasformazioni è sufficiente moltiplicare le rispettive matrici. Esse andranno
intese in coordinate omogenee se fra le trasformazioni coinvolte vi sia almeno una
traslazione. In caso contrario è possibile utilizzare le matrici standard.
Si consideri per esempio la composizione tra una prima trasformazione definita
dalla matrice A1 seguita da una seconda trasformazione definita dalla matrice A2 .
Applicando la prima trasformazione al generico punto rappresentato dal vettore p
otteniamo il punto trasformato
p = A1 p.
Se a quest’ultimo applichiamo la seconda trasformazione A2 otteniamo un nuovo
punto
p = A2 p = A2 A1 p = Ap,
dove A = A2 A1 è la matrice che rappresenta la trasformazione composta. Si noti
che l’ordine con cui sono moltiplicate le matrici nella composizione è importante in
quanto il prodotto tra matrici (e quindi anche la composizione tra trasformazioni)
78 3 Matrici e trasformazioni geometriche
non gode, in generale, della proprietà commutativa, come evidenziato nel seguente
esempio.
Esempio 3.18
0 −1
Rπ/2 = .
1 0
come appare evidente anche dalla Figura 3.14 (sinistra) dove è rappresentata
la sequenza di trasformazioni.
Come detto, l’ordine con cui le trasformazioni sono applicate è importante.
Se, infatti, applichiamo prima la rotazione di π/2 in senso antiorario e suc-
cessivamente la riflessione rispetto all’asse x otteniamo un punto diverso (si
veda Figura 3.14, destra), ovvero
px 1 0 px 1 0 0 −1 2 0 −1 2 1
= = = = .
py 0 −1 p y 0 −1 1 0 −1 −1 0 −1 −2
y y
P P
P
x x
P P
P
Esempio 3.19
Si vuole determinare la matrice associata alla rotazione di un angolo β =
π/2 in senso antiorario del punto P di coordinate [2, 1]T attorno al punto
Q di coordinate [1, 1]T , come visualizzato in Figura 3.15 (sinistra). Tale
trasformazione può essere ottenuta effettuando la traslazione determinata dal
vettore d = O − Q, che porta il centro di rotazione Q nell’origine degli
assi, seguita da una rotazione attorno all’origine e da una ulteriore traslazione
uguale alla precedente ma di verso opposto (si veda Figura 3.15, destra).
In questo caso, per consentire di comporre traslazioni e rotazione, è opportuno
lavorare in coordinate omogenee.
Il punto P è rappresentato in coordinate omogenee dal vettore [2, 1, 1]T ; la
prima traslazione da applicare è quella che sposta il centro di rotazione Q
80 3 Matrici e trasformazioni geometriche
y y
P P
Q Q
P P
x O x
x = A x + d.
y y
D C D C
B D
A= A B x A = A B x
C C
D B
Figura 3.16 Confronto fra una rotazione di angolo π nel piano ed una riflessione rispetto alla
bisettrice del II-IV quadrante: osserviamo che la seconda inverte il senso di percorrenza dei vertici
della figura, essendo un’isometria inversa
Un fregio è un motivo geometrico nel piano che si ripete con regolarità lun-
go una direzione. Diversi fregi possono essere ottenuti componendo in modo
opportuno alcune trasformazioni affini (rotazioni, riflessioni e traslazioni). Si
può dimostrare che i possibili gruppi di simmetria, ovvero l’insieme delle tra-
sformazioni del piano che trasformano la figura in se stessa, sono solo sette. In
Figura 3.17 sono mostrati i sette fregi che si possono ottenere a partire da una
figura piana (evidenziata in blu nell’immagine) componendo una traslazione
ripetuta in direzione orizzontale con diverse trasformazioni nel piano.
82 3 Matrici e trasformazioni geometriche
(a)
(b)
(c)
(d)
(e)
(f)
(g)
Figura 3.17 I sette fregi ottenibili con trasformazioni affini a partire da una figura iniziale
(evidenziata in blu)
PO = I − n̂n̂T ,
dove I è la matrice identità e n̂ è il versore normale retta (nel piano) o al piano (nello
spazio) su cui stiamo proiettando.
La proiezione ortogonale non è una trasformazione affine, in quanto la matrice a
cui è associata non è mai invertibile, ovvero ha sempre determinante nullo. Infatti,
z
y
P
P
P
y
x P
x
Figura 3.18 Proiezione ortogonale nel piano (sinistra) e nello spazio (destra)
84 3 Matrici e trasformazioni geometriche
y
z
x y
x
Figura 3.19 Proiezione di una figura piana su una retta (sinistra) e di un solido su un piano (destra)
Figura 3.20 Diverse figure y
che hanno la stessa
proiezione ortogonale
x
3.7 Trasformazioni non affini 85
Esempio 3.20
Dato il punto P di coordinate (3, 1)T e la retta r passante per l’origine per-
pendicolare al vettore n = [−2 1]T , si vuole determinare la proiezione P di
P sulla retta r . Il versore corrispondente al vettore n si ottiene riscalando n
con il suo modulo
2√5
n 1 −2 − 5
n̂ = =√ = √ .
|n| 5 1 5
5
P
P
x
Figura 3.21 Proiezione nel piano sulla retta passante per l’origine con normale n =
[−2, 1]T
p y − c y py − cy
= ,
px − cx px − cx
pz − cz pz − cz
= ,
px − cx px − cx
Figura 3.23 Proiezione prospettica sul piano yz per diverse posizioni del piano di
proiezione: in blu l’oggetto e in rosso la sua proiezione sul piano yz
3.7 Trasformazioni non affini 89
In questo capitolo vengono presentati gli strumenti matematici utili per de-
scrivere le curve nel piano e nello spazio. In particolare, si introduce la forma
parametrica delle curve, che consente di descrivere in modo efficace curve
di forma arbitraria. Vengono presentati numerosi esempi di curve, a partire
dalle più semplici (le rette) fino a quelle più complesse ottenute, ad esempio,
applicando trasformazioni composte.
Figura 4.1 Curva nel piano definita implicitamente come livello zero di una superficie in 3
dimensioni
Una prima forma di rappresentazione di una curva nel piano è basata sulla cosiddetta
forma cartesiana implicita, definita dal luogo dei punti di coordinate (x, y) che
soddisfano la relazione
f (x, y) = 0, (4.1)
dove f è una funzione nelle due variabili indipendenti x e y.
La curva descritta dall’equazione (4.1) rappresenta il livello zero della funzione
f il cui grafico è il luogo dei punti di coordinate (x, y, f (x, y)) nello spazio
tridimensionale (si veda Figura 4.1).
Quando la funzione f (x, y) può essere scritta nella forma
f (x, y) = y − g1 (x)
y = g1 (x),
dove l’ordinata y dei punti appartenenti alla curva è espressa come funzione esplicita
della corrispondente ascissa x, oppure da
x = g2 (y),
4.1 Rappresentazione di una curva nel piano 93
y y
x x
Figura 4.2 Alcune figure sono rappresentabili in forma cartesiana esplicita (sinistra), altre no
(destra)
y y
x x
Figura 4.3 Esempio di figura rappresentabile in forma cartesiana esplicita (sinistra) che non lo è
più a valle di una rotazione (destra)
Il modo più efficace per definire le curve nel piano (e, vedremo fra poco, anche
nello spazio) è basato sulla cosiddetta forma parametrica nella quale ciascuna delle
coordinate dei punti (x, y) appartenenti alla curva è espressa come funzione esplicita
di un parametro indipendente t:
x = f x (t),
(4.2)
y = f y (t),
y y
x
z
Figura 4.4 Esempi di curve parametriche nel piano (sinistra) e nello spazio (destra)
Figura 4.5 Retta nel piano: significato geometrico dell’equazione in forma cartesiana
Iniziamo considerando la curva più semplice, ovvero la retta, che è l’entità fonda-
mentale di dimensione 1 della geometria Euclidea. Una retta è priva di spessore e si
estende all’infinito in entrambi i versi lungo la sua direzione.
Una retta nel piano può essere definita in forma cartesiana esplicita dalla funzione
lineare:
y = mx + q, (4.4)
dove m, detto coefficiente angolare, descrive la pendenza della retta ed è pari a
sin α
m = tan α = ,
cos α
con α l’angolo formato dalla retta con l’asse delle ascisse. Il coefficiente q, detto
intercetta, rappresenta l’ordinata dell’intersezione della retta con l’asse y (si veda
Figura 4.5).
Valori positivi o negativi di m denotano rette aventi rispettivamente pendenza
positiva o negativa, mentre per le rette orizzontali si ha m = 0 (Figura 4.6). La forma
96 4 Curve parametriche
y y y
x x x
x = p. (4.5)
Tutte le rette nel piano possono essere rappresentate in forma cartesiana implicita
attraverso la relazione generale
ax + by + c = 0, (4.6)
Iniziamo a derivare la forma parametrica di una retta r passante per l’origine (nel
piano o nello spazio). In questo caso, per identificare la retta è sufficiente individuare
un vettore d ∈ Rd che ne definisca la direzione. Ogni punto appartenente alla retta
potrà essere identificato da un vettore proporzionale al vettore d (Figura 4.7).
4.2 Rette nel piano e nello spazio 97
5
p= 2
d
d
x
t=3
t=2
d t=1
t=0 x
t = −1
nel piano e
⎡ ⎤
dx
d = ⎣d y ⎦
dz
98 4 Curve parametriche
y y
d d
x x
Figura 4.9 Segmento di retta con 2 ≤ t ≤ 3 (sinistra) e semiretta con t ≥ 0 (destra) in forma
parametrica
nello spazio.
In generale, una retta può essere quindi scritta nella forma parametrica (4.3) con
funzioni lineari nel parametro t, ossia
⎧
⎪
⎨x = f x (t) = dx t,
y = f y (t) = d y t,
⎪
⎩
z = f z (t) = dz t.
Data una retta nel piano espressa in forma parametrica è immediato ricavarne la
forma cartesiana esplicita (4.4). Vediamo un esempio nel piano.
Esempio 4.1
2
Dato il vettore direzione d = , consideriamo la retta
1
2
r(t) = td = t , −∞ ≤ t ≤ ∞.
1
Esempio 4.2
Data la retta r in forma esplicita
r: y = 3x,
Per una discussione più approfondita su come effettuare una conversione dalla
forma parametrica alla forma cartesiana esplicita o implicita (e viceversa) per una
generica curva si faccia riferimento a [26].
Risulta evidente da quest’ultimo esempio che la forma parametrica non è unica.
Infatti, assegnando x = 2t, si ottiene una diversa parametrizzazione
x = 2t, 2
−→ d̄ =
y = 6t, 6
ovvero
2
r: x = t d̄ = t , t ∈ R.
6
In generale, per ogni vettore direzione d̄ = λd, ∀λ ∈ R, parallelo a d si ottiene
una diversa parametrizzazione della stessa retta: ciò che cambia è l’identificazione
fra i punti della retta e i valori del parametro t ad essi associati.
Estendiamo ora la formulazione parametrica al caso più generale di tutte le rette
(non necessariamente passanti per l’origine). A tal fine è utile notare che, dato un
punto Q appartenente alla retta (rappresentato dal vettore q) e il vettore direzione d,
ogni punto della retta può essere ottenuto come somma vettoriale tra q e il vettore td,
per un opportuno valore di t (si veda Figura 4.10). Per determinare una retta avente
direzione d e passante per un punto Q, possiamo procedere quindi per passi:
1. Costruiamo una retta s passante per l’origine la cui inclinazione sia definita dal
vettore direzione d. L’equazione di tale retta è data da (4.7).
100 4 Curve parametriche
Q
q
O x
r(t) = td + q, −∞ ≤ t ≤ ∞, (4.8)
Esempio 4.3
⎡ ⎤ ⎡ ⎤
2 1
Si consideri la retta r(t) = t ⎣2⎦ + ⎣1⎦ , e si vuole verificare se il punto P
2 0
identificato dal vettore
⎡ ⎤
5
p = ⎣5⎦
2
appartenga alla retta. Si deve verificare se esiste t tale che
⎧
⎪
⎨x(t) = 2t + 1 = 5,
y(t) = 2t + 1 = 5,
⎪
⎩
z(t) = 2t = 2,
sistema che è verificato per t = 2. La retta r passa quindi per il punto P quando
il parametro t assume il valore 2. Nel caso in cui il punto non appartenga alla
retta, il sistema risultante non è soddisfatto per alcun valore di t.
Abbiamo visto come la forma parametrica descriva in modo molto efficace le carat-
teristiche di una retta, ossia la sua direzione e il passaggio per un punto assegnato.
Vediamo ora come la forma parametrica permetta anche di riconoscere facilmente
in che modo due o più rette si posizionano reciprocamente nel piano e nello spazio.
Iniziamo con il ricordare che due rette nel piano possono essere incidenti (se si
intersecano in un punto), coincidenti (se condividono tutti i punti) o parallele (se non
si intersecano in alcun punto). In particolare, due rette incidenti sono perpendicolari
se formano tra loro un angolo retto.
Le proprietà di parallelismo e di perpendicolarità sono immediatamente verifica-
bili noti i vettori direzione. Si considerino ad esempio le due rette
Esempio 4.4
Consideriamo le due rette nel piano
2 0 1 0
r1 (t) = t − , e r2 (s) = s + .
1 1 −1 2
r1
x
P
r2
Esempio 4.5
Consideriamo ora le rette
2 0 1
r1 (t) = t − , e r2 (s) = s ,
1 1 1/2
y
r2
r1
Esempio 4.6
Consideriamo, infine, le due rette
2 0 1 1
r1 (t) = t − , e r2 (s) = s + .
1 1 1/2 −1/2
Se si considera la posizione reciproca di due rette nello spazio, oltre a rette inciden-
ti, coincidenti o parallele, si possono avere rette non parallele che non si intersecano
in quanto non giacciono sullo stesso piano. Due rette nello spazio sono dette sghembe
se non ammettono alcuna intersezione e non esiste λ tale che d1 = λd2 (si veda ad
esempio Figura 4.13).
Abbiamo visto come definire una retta in forma parametrica e come analizzarne le
proprietà e la posizione reciproca. Vogliamo ora considerare curve più complesse e
vedremo che la forma parametrica garantisce il massimo grado di generalità nella
definizione e trasformazione di forme di arbitraria complessità.
Ottenere la forma parametrica di una curva nel piano che può essere scritta in
forma cartesiana esplicita (y = f (x)) è banale. È infatti sufficiente definire la curva
come
x = f x (t) = t,
y = f y (t) = f (t).
Inoltre, nella forma parametrica ciascuna delle coordinate è espressa mediante una
funzione del parametro indipendente t. Ciò rende molto semplice applicare un’ar-
bitraria trasformazione, moltiplicando la matrice associata alla trasformazione al
vettore che definisce le coordinate dei punti appartenenti alla curva.
4.3 Generazione di curve parametriche 105
Esempio 4.7
3
Data la curva di equazione y = x2 , definita come il grafico di una fun-
zione polinomiale cubica (si veda Figura 4.14, sinistra), una possibile forma
parametrica è definita da
x = t,
3 (4.9)
y = t2 .
A partire da questa formulazione è facile ricavare la forma parametrica della
stessa curva arbitrariamente orientata. È infatti sufficiente applicare a (4.9)
una rotazione di un angolo arbitrario rispetto all’origine degli assi. In Figura
4.14 (destra), è rappresentata la curva ruotata di un angolo β = −π/4, la cui
rappresentazione parametrica è data da
x(t) cos(−π/4) − sin(−π/4) t
= t3
y(t) sin(−π/4)) cos(−π/4) 2
√ √
2 2
t
= 2√ √2
t 3
− 22 22 2
√ √
2 3
t + 22 t
= √ 4 √ .
4
2 3
t − 2
2
t
y y
x x
4.3.1 Circonferenza
Per descrivere una circonferenza nel piano nella forma cartesiana esplicita sono nec-
essarie due funzioni; ad esempio una circonferenza di raggio R centrata nell’origine
è data da
y = ± R2 − x 2, (4.10)
dove le due funzioni descrivono rispettivamente le due semicirconferenze, una nel
semipiano di ordinate positive e l’altra nel semipiano di ordinate negative (si veda
Figura 4.15).
La stessa circonferenza in forma implicita può essere rappresentata come il luogo
dei punti di coordinate (x, y) che soddisfano la seguente relazione:
x 2 + y2 = R2. (4.11)
In questo caso con un’unica equazione si riesce a rappresentare tutta la curva, tuttavia,
come visto in precedenza, le funzioni implicite risultano non sempre facili da trattare
quando si vuole applicare una trasformazione o quando si vogliono considerare altre
proprietà geometriche locali, quali ad esempio tangenti e curvature (si veda Sezione
4.5).
Ancora una volta la forma parametrica risulta lo strumento più efficace. Vediamo
come la parametrizzazione possa essere ottenuta, in questo come in altri casi che
verranno discussi in seguito, generando la curva come la traiettoria percorsa da un
punto soggetto ad una trasformazione. È facile infatti vedere come la circonferenza
di raggio R centrata nell’origine sia la traiettoria che il punto P = (R, 0) percorre
quando viene fatto ruotare attorno all’origine (Figura 4.16, sinistra). La forma para-
metrica della circonferenza nel piano si può dunque ottenere applicando al punto P
una rotazione di un angolo t (che coincide in questo caso con il parametro), ovvero
√
y = − R 2 − x2
4.3 Generazione di curve parametriche 107
y y
(R cos t, R sin t)
P
t
x x
(R, 0)
Figura 4.16 La circonferenza come traiettoria di un punto soggetto ad una rotazione (sinistra) e
circonferenza centrata nel punto P (destra)
x(t) cos t − sin t R R cos t
c(t) = = = , 0 ≤ t < 2π. (4.12)
y(t) sin t cos t 0 R sin t
Come sempre quella appena ottenuta rappresenta una delle infinite rappresentazioni
parametriche della stessa circonferenza.
Per definire una circonferenza nel piano avente come centro il punto P, identificato
dal vettore p = [ px , p y ]T è sufficiente sommare tale vettore alla definizione (4.12)
(Figura 4.16, destra), ovvero
R cos t + px
c(t) = , 0 ≤ t < 2π.
R sin t + p y
z z
z
x y x y
x y
⎡ ⎤
R sin t
c(t) = ⎣ 0 ⎦ , 0 ≤ t < 2π, (piano zx).
R cos t
4.3.2 Ellisse
Consideriamo ora un’altra curva appartenente alla classe delle sezioni coniche, ossia
quelle curve che possono essere ottenute come intersezione tra un cono e un piano (si
veda a tal proposito la discussione presente nella Sezione 6.6). Se la circonferenza
rappresenta il luogo dei punti del piano ad uguale distanza da un punto (il suo
centro), l’ellisse è il luogo geometrico dei punti del piano tali che la somma delle
distanze da due punti (detti fuochi) è costante. Limitiamo la discussione al caso
di ellissi centrate nell’origine con i fuochi che giacciono sull’asse delle ascisse (si
4.3 Generazione di curve parametriche 109
veda Figura 4.19), sapendo che attraverso le trasformazioni introdotte nel capitolo
precedente sarà possibile ottenere la forma parametrica di un ellisse arbitraria.
Siano a e b i semiassi orizzontale e verticale dell’ellisse. Denotato con P il
generico punto appartenente all’ellisse e con F1 e F2 i due fuochi, vale la seguente
relazione:
|P F1 | + |P F2 | = 2a.
In forma cartesiana implicita, l’ellisse centrata nell’origine è data da
x2 y2
+ = 1, (4.13)
a2 b2
che si riduce all’equazione della circonferenza (4.11) nel caso in cui a = b = R.
La forma parametrica dell’ellisse di semiassi a e b si può scrivere come
a cos t
c(t) = , 0 ≤ t < 2π. (4.14)
b sin t
Si noti come l’ellisse (4.14) possa essere ottenuta applicando una scalatura
non uniforme di un fattore a in direzione x e di un fattore b in direzione y alla
circonferenza di raggio unitario:
a 0 cos t a cos t
c(t) = = , 0 ≤ t < 2π.
0 b sin t b sin t
È facile verificare come la forma parametrica (4.14) sia equivalente alla forma
cartesiana (4.13), infatti
x2 y2 a 2 cos t 2 b2 sin t 2
+ = + = cos t 2 + sin t 2 = 1
a2 b2 a2 b2
110 4 Curve parametriche
4.3.3 Iperbole
L’iperbole è un’altra sezione conica definita come il luogo dei punti per i quali la
differenza delle distanze con due punti fissati (detti fuochi) è costante. Anche in
questo caso consideriamo solo una classe particolare di iperboli centrate nell’origine
con i fuochi che giacciono sull’asse delle ascisse (si veda Figura 4.20).
In questo caso, la forma cartesiana implicita dell’iperbole è data da
x2 y2
− = 1. (4.15)
a2 b2
La forma parametrica dell’iperbole è simile a quella dell’ellisse a patto di sostituire
al seno e coseno rispettivamente il seno iperbolico e il coseno iperbolico. Queste
ultime due funzioni sono definite come segue
e x − e−x e x + e−x
sinh(x) = cosh(x) =
2 2
e devono il loro nome proprio al ruolo che giocano nella definizione dell’iperbole.
In forma parametrica, l’iperbole centrata nell’origine con fuochi sull’asse delle
ascisse è data da
a cosh t
c(t) = , t ∈ R. (4.16)
b sinh t
x
4.3 Generazione di curve parametriche 111
x2 y2 a 2 cosh t 2 b2 sinh t 2
2
− 2 = 2
− = cosh t 2 − sinh t 2
a b a b2
x 2 x 2
e + e−x e − e−x 4e x e−x
= − = = 1.
2 2 4
4.3.4 Parabola
L’ultima sezione conica che consideriamo è data dalla parabola che rappresenta il
luogo dei punti del piano ad uguale distanza da una retta (detta direttrice) e da un
punto (detto fuoco).
Una parabola con asse verticale, cioè con direttrice parallela all’asse delle ascisse
(si veda Figura 4.21), può essere scritta in forma cartesiana esplicita come segue
y = ax 2 + bx + c. (4.17)
e la direttrice è la retta
1 + b2 − 4ac
x =− .
4a
x
112 4 Curve parametriche
y y
1
1 2
P x P x
Figura 4.22 Spirale di Archimede a 5 spire di passo h = 1 (sinistra) e a 10 spire e passo h = 1/2
(destra)
4.3 Generazione di curve parametriche 113
Procedendo in modo analogo, è possibile costruire curve definite nello spazio tridi-
mensionale. Volendo generare una curva elicoidale che si avvolge attorno ad un
cilindro, è sufficiente osservare che tale curva è la traiettoria descritta da un punto
che percorre una circonferenza su di un piano e nel contempo trasla con velocità
uniforme lungo la direzione normale al piano (si veda Figura 4.23).
Utilizzando le trasformazioni di roto-traslazione in coordinate omogenee in-
trodotte nel Capitolo 3, l’elica cilindrica centrata nell’origine, avente asse parallelo
a z e raggio R, è definita dalla seguente roto-traslazione del punto P = (R, 0, 0):
⎡ ⎤ ⎡ ⎤⎡ ⎤ ⎡ ⎤
x cos t − sin t 0 0 R R cos t
⎢ y ⎥ ⎢ sin t cos t 0⎥ ⎢ ⎥ ⎢ ⎥
c(t) = ⎢ ⎥ ⎢ 0 ⎥ ⎢ 0 ⎥ = ⎢ R sin t ⎥ , 0 ≤ t < 2nπ,
⎣z ⎦ = ⎣ 0 0 1 ct ⎦ ⎣ 0 ⎦ ⎣ ct ⎦
1 0 0 0 1 1 1
(4.20)
dove n rappresenta il numero di avvolgimenti e h = 2πc è il passo dell’elica,
che rappresenta in questo caso l’avanzamento in direzione z compiuto in un giro
dell’elica.
Se si avvolge l’elica su una superficie conica invece che su una cilindrica si genera
un’elica conica. La sua forma parametrica può essere ottenuta in diversi modi. L’elica
conica può essere infatti vista come la traiettoria di un punto che percorre una spirale
su un piano e nel contempo trasla con velocità uniforme nella direzione normale al
piano (si veda Figura 4.24).
114 4 Curve parametriche
Allo stesso risultato si perviene se si considera l’elica conica come un’elica cilin-
drica di raggio unitario a cui è stata applicata una scalatura uniforme nel piano x y con
un fattore di scalatura che dipende linearmente da t. In questo modo l’elica collassa
nell’origine per t = 0 e si allarga in modo lineare per valori di t crescenti assumendo
la forma conica. In questo caso, non essendoci traslazioni in gioco, non è necessario
adottare le coordinate omogenee e si ha
⎡ ⎤ ⎡ ⎤⎡ ⎤ ⎡ ⎤
x at 0 0 cos t at cos t
c(t) = ⎣ y ⎦ = ⎣ 0 at 0⎦ ⎣ sin t ⎦ = ⎣ at sin t ⎦ , 0 ≤ t < 2nπ, (4.22)
z 0 0 1 ct ct
r=1:1
r=1:2
r=1:4
si introduce il vettore derivato, cioè la derivata del vettore c(t) rispetto alla variabile
indipendente t, che è dato da
⎡
⎤
cx (t)
c
(t) = ⎣c
y (t)⎦ (4.24)
cz
(t)
4.5 Retta tangente a una curva 117
Figura 4.27 Il vettore direzione identifica la direzione tangente alla curva in ciascun punto
Il vettore derivato identifica, per ogni valore del parametro t, la direzione tangente
alla curva (si veda Figura 4.27).
La retta tangente ad una curva in un punto è la retta che passa per quel punto e la
cui direzione coincide con il vettore derivato della curva valutato nel punto stesso.
Esempio 4.8
Consideriamo la circonferenza di raggio R nel piano definita in forma
parametrica da
R cos(t)
c(t) = .
R sin(t)
In questo caso il vettore derivato
R sin(t)
c
(t) =
−R cos(t)
y y y
x x x
Figura 4.28 Vettori tangenti alla circonferenza in diversi punti (da sinistra a destra, θ = 0,
θ = π/2 e θ = 3π/4)
118 4 Curve parametriche
Nel caso particolare in cui la curva considerata è una retta, la sua forma parametrica
(nel caso generale di retta nello spazio) è data da
⎡ ⎤ ⎡ ⎤ ⎡ ⎤
f x (t) dx px
r(t) = ⎣ f y (t)⎦ = td + p = t ⎣d y ⎦ + ⎣ p y ⎦
f z (t) dz pz
r
(t) = d.
Esempio 4.9
Data l’ellisse definita dalla forma parametrica
2 cos(t) − 1
c(t) = .
sin(t) − 21
Esempio 4.10
Data l’elica conica definita dalla seguente forma parametrica
⎡ ⎤
t cos(t)
c(t) = ⎣ t sin(t) ⎦ .
2t
si vuole calcolare la retta tangente all’elica nel punto P = (0, π/2, π),
corrispondente a t = π.
Il vettore derivato per l’elica conica è dato da
⎡ ⎤
t sin(t) + cos(t)
c
(t) = ⎣−t cos(t) + sin(t)⎦
2
Esattamente come nel caso delle curve è possibile descrivere anche le superfici
utilizzando un approccio parametrico. La differenza sostanziale tra curve e super-
fici risiede nel fatto che al fine di descrivere una superficie è necessario utilizzare
due parametri. Si pensi, ad esempio, alla localizzazione di un punto sulla superfi-
cie terrestre (immaginata come una superficie perfettamente sferica) utilizzando le
5.2 Piani
p = ti + sj, con t, s ∈ R,
essendo i e j i versori degli assi x ed y; in modo analogo si può procedere per gli
altri piani coordinati. Le due direzioni i e j definiscono l’inclinazione del piano (in
modo analogo a quanto accadeva per il vettore direzione nel caso delle rette).
Generalizzando possiamo dire che l’espressione parametrica di un generico piano
π passante per l’origine si potrà scrivere nel seguente modo
dove v1 e v2 sono detti vettori giacitura del piano, mentre t ed s sono i parametri.
Esistono ovviamente infinite coppie di vettori v1 e v2 che rappresentano la stessa
giacitura (cioè inclinazione). L’unica condizione che deve essere soddisfatta dai
vettori v1 e v2 affinché possano essere utilizzati come vettori giacitura è che non
siano allineati: in tal caso, infatti, mediante la combinazione lineare (5.1) sarebbe
impossibile definire tutti i punti del piano poiché saremmo vincolati a muoverci
lungo una sola direzione individuata dai due vettori. Spesso nella pratica è comodo
utilizzare come vettori giacitura vettori di lunghezza unitaria (versori). In Figura
5.2 è rappresentato un piano passante per l’origine avente come vettori giacitura
(rappresentati in rosso) i vettori v1 = [2, 0, −2]T e v2 = [−1, 1, −1]T .
In forma estesa l’equazione del piano passante per l’origine si scrive
⎡ ⎤ ⎡ ⎤ ⎡ ⎤
px v1x v2x
⎣ p y ⎦ = ⎣ v1y ⎦ t + ⎣ v2y ⎦ s, con t, s ∈ R.
pz v1z v2z
Figura 5.2 Piano passante per l’origine avente come vettori giacitura (rappresentati in rosso) i
vettori v1 = [2 0 − 2]T e v2 = [−1 1 − 1]T
5.2 Piani 125
v1 = P1 − P0 = P1 − O = p1 ,
(5.2)
v2 = P2 − P0 = P2 − O = p2 .
Esempio 5.1
Scrivere l’equazione del piano passante per l’origine e per i punti P1 =
(1, 2, 3) e P2 = (−1, 0, 1). In accordo con l’equazione (5.2) si ha
v1 = P1 − O = p1 = [1, 2, 3]T ,
v2 = P2 − O = p2 = [−1, 0, 1]T .
Applichiamo ora alla retta r(t) la traslazione definita dalla retta w(s):
⎡ ⎤⎡ ⎤ ⎡ ⎤
1 0 0 v2x s v1x t v1x t + v2x s
⎢0 1 0 v2y s ⎥ ⎢ v1y t ⎥ ⎢ v1y t + v2y s ⎥
⎢ ⎥⎢ ⎥=⎢ ⎥.
⎣0 0 1 v2z s ⎦ ⎣ v1z t ⎦ ⎣ v1z t + v2z s ⎦
0 0 0 1 1 1
126 5 Superfici parametriche
Figura 5.3 Piano creato dalla traslazione di una retta; sono evidenziati in blu i due vettori
traslazione, in giallo la retta originaria ed in rosso le due rette traslate
L’equazione appena ottenuta coincide con l’espressione del piano passante per
l’origine ed avente v1 e v2 come vettori giacitura: in altri termini il piano è stato
ottenuto traslando la retta passante per l’origine ed avente vettore direzione v1 lungo
la retta passante per l’origine ed avente vettore direzione v2 (si veda Figura 5.3).
Vediamo ora come descrivere un generico piano non necessariamente passante per
l’origine caratterizzato da una data inclinazione (definita mediante i vettori giacitura
v1 e v2 ) e dal passaggio per un punto dato Q. Procediamo per passi (con un procedi-
mento analogo a quello utilizzato per derivare l’equazione di una retta non passante
per l’origine):
1. Costruiamo un piano σ passante per l’origine la cui inclinazione sia definita dai
vettori giacitura v1 e v2 . L’equazione di tale piano è la (5.1).
5.2 Piani 127
Si noti che i piani σ e π avendo gli stessi vettori giacitura sono paralleli.
In modo analogo a quanto visto nel paragrafo precedente ci proponiamo ora di
determinare la forma parametrica di un piano passante per 3 generici punti dello
spazio P0 , P1 e P2 . A tale scopo consideriamo la Figura 5.4: è evidente che i vettori
giacitura sono in questo caso dati da
v1 = P1 − P0 ,
v2 = P2 − P0 .
Esempio 5.2
Scrivere l’equazione del piano passante per i punti P0 = (1, 3, 3), P1 =
(3, 3, 5) e P2 = (0, 4, 2). Calcoliamo i vettori giacitura:
v1 = P1 − P0 = [2, 0, 2]T ,
v2 = P2 − P0 = [−1, 1, 1]T .
Figura 5.4 Piano passante per il punto P0 = (1, 3, 3) ed avente come vettori giacitura
(rappresentati in rosso) i vettori v1 = [2, 0, −2]T e v2 = [−1, 1, −1]T
128 5 Superfici parametriche
dn = p0 · n̂.
Si noti che la precedente relazione è valida per ogni vettore p = [x, y, z]T associato
ad un punto P di coordinate (x, y, z) appartenente al piano, cioè
dn = p · n̂.
n̂ x x + n̂ y y + n̂ z z − dn = 0,
Esempio 5.3
Si consideri il piano passante per i punti P0 = (1, 1, 1), P1 = (2, 4, 6) e
P2 = (0, −1, 2); per tale piano si calcolino dn ed n̂.
Calcoliamo i vettori giacitura:
v1 = P1 − P0 = [1, 3, 5]T ,
v2 = P2 − P0 = [−1, −2, 1]T .
√
Si ha che v1 × v2 = [13, −6, 1]T e v1 × v2 = 206, quindi
1
n̂ = √ [13, −6, 1]T .
206
Vediamo ora alcune superfici che si ottengono partendo da curve e ruotando tali
curve attorno ad un asse.
130 5 Superfici parametriche
Figura 5.6 Generazione di una superficie sferica ottenuta ruotando una circonferenza.
5.3 Superfici di rivoluzione 131
⎡ ⎤⎡ ⎤ ⎡ ⎤
1 0 0 r cos(θ) r cos(θ)
S(θ, φ) = ⎣ 0 cos(φ) − sin(φ) ⎦ ⎣ r sin(θ) ⎦ = ⎣ r sin(θ) cos(φ) ⎦ , (5.4)
0 sin(φ) cos(φ) 0 r sin(θ) sin(φ)
con θ ∈ [0, 2π) e φ ∈ [0, π]. Gli angoli θ e φ corrispondono, in coordinate geografi-
che, rispettivamente alla longitudine ad alla latitudine (si noti che la latitudine viene
comunemente presa nell’intervallo [−π/2, π/2]).
Se ora volessimo creare una superficie sferica di centro C = (cx , c y , cz ) = O
basterebbe applicare alla sfera definita dalla (5.4) una traslazione che porta l’origine
nel punto C, cioè una traslazione definita dal vettore t = C − O. Si ha quindi
⎡ ⎤⎡ ⎤ ⎡ ⎤
1 0 0 cx r cos(θ) r cos(θ) + cx
⎢ 0 1 0 c y ⎥ ⎢ r sin(θ) cos(φ) ⎥ ⎢ r sin(θ) cos(φ) + c y ⎥
S(θ, φ) = ⎢ ⎥⎢ ⎥ ⎢ ⎥
⎣ 0 0 1 cz ⎦ ⎣ r sin(θ) sin(φ) ⎦ = ⎣ r sin(θ) sin(φ) + cz ⎦ . (5.5)
000 1 1 1
Esempio 5.4
Si scriva l’equazione parametrica della superficie sferica con centro nel punto
C = (1, 2, −1) e raggio r = 5. In accordo con la (5.5) si ha
⎡ ⎤
5 cos(θ) + 1
S(θ, φ) = ⎣ 5 sin(θ) cos(φ) + 2 ⎦ .
5 sin(θ) sin(φ) − 1
Esempio 5.5
Si scriva l’equazione parametrica di una superficie torica avente R = 0.6 ed
r = 0.3 (si veda la Figura 5.7); si ha
⎡ ⎤
0.3 cos(θ)
S(θ, φ) = ⎣ (0.3 sin(θ) + 0.6) cos(φ) ⎦ .
(0.3 sin(θ) + 0.6) sin(φ)
132 5 Superfici parametriche
In Figura 5.7 è mostrato il caso di superficie torica con R > r mentre in Figura
5.8 sono mostrati i casi in cui R = r ed R < r : si noti che nel secondo caso si ha
una superficie che si autointerseca (si veda la Figura 5.9).
Come nei casi delle superfici precedenti è possibile definire una superficie torica
il cui centro non sia l’origine ma un generico punto C = (cx , c y , cz ) dello spazio
applicando una traslazione e ottenendo la seguente espressione:
⎡ ⎤
r cos(θ) + cx
S(θ, φ) = ⎣ (r sin(θ) + R) cos(φ) + c y ⎦ . (5.6)
(r sin(θ) + R) sin(φ) + cz
Le lenti per correggere l’astigmatismo sono solitamente lenti toriche cioè sono
costituite da una porzione di una superficie torica come mostrato in Figura 5.10.
Figura 5.9 Sezioni delle superfici toriche con R = r (a sinistra) ed R < r (a destra)
5.3.3 Ellissoide
Ragioniamo in modo analogo a quanto fatto per la generazione di una sfera partendo
però da una ellisse appartenente al piano x y ed avente semiasse x pari ad a e semiasse
y pari a b (supponiamo a > b). Ruotando l’ellisse attorno all’asse x si ottiene
l’espressione parametrica di un ellissoide:
⎡ ⎤⎡ ⎤ ⎡ ⎤
1 0 0 a cos(θ) a cos(θ)
S(θ, φ) = ⎣ 0 cos(φ) − sin(φ) ⎦ ⎣ b sin(θ) ⎦ = ⎣ b sin(θ) cos(φ) ⎦ , (5.7)
0 sin(φ) cos(φ) 0 b sin(θ) sin(φ)
con θ ∈ [0, 2π) e φ ∈ [0, π] (si veda Figura 5.11). In questo caso non è indifferente la
scelta dell’asse attorno a cui ruotare l’ellisse iniziale, infatti se avessimo applicato una
rotazione attorno all’asse y avremmo ottenuto la superficie mostrata in Figura 5.12.
134 5 Superfici parametriche
Esempio 5.6
Si scriva l’equazione parametrica dell’ellissoide che si ottiene ruotando attor-
no all’asse x l’ellisse appartenente al piano x y, di centro O ed avente semiasse
x pari a 0.5 e semiasse y pari a 0.3 (si veda la Figura 5.11). In accordo con
l’equazione (5.7) si ha
⎡ ⎤
0.5 cos(θ)
S(θ, φ) = ⎣ 0.3 sin(θ) cos(φ) ⎦ ,
0.3 sin(θ) sin(φ)
5.3 Superfici di rivoluzione 135
Figura 5.13 Cilindro retto a base circolare ottenuto ruotando attorno all’asse z la retta blu
Esempio 5.7
Si scriva l’equazione parametrica della superficie cilindrica che si ottiene
ruotando la retta passante per i punti P0 = (0.5, 0, 1) e P1 = (0.5, 0, −1).
Troviamo dapprima l’equazione della retta
⎡ ⎤ ⎡ ⎤
0 0.5
r(t) = t ⎣ 0 ⎦ + ⎣ 0 ⎦ .
2 1
5.3 Superfici di rivoluzione 137
Applichiamo ora alla retta appena ottenuta una rotazione attorno all’asse z,
ottenendo la superficie cilindrica
⎡ ⎤⎡ ⎤ ⎡ ⎤
cos(φ) − sin(φ) 0 0.5 0.5 cos(φ)
S(t, φ) = ⎣ sin(φ) cos(φ) 0 ⎦ ⎣ 0 ⎦ = ⎣ 0.5 sin(φ) ⎦ .
0 0 1 2t + 1 2t + 1
Il cilindro retto a base circolare si può generare anche traslando una circonferenza
lungo la direzione perpendicolare al piano a cui appartiene la circonferenza stessa
(si veda la Figura 5.14).
Consideriamo quindi la seguente circonferenza di raggio R centrata nell’origine
ed appartenente al piano x y
⎡ ⎤
R cos(φ)
C(φ) = ⎣ R sin(φ) ⎦ .
0
Figura 5.14 Cilindro retto a base circolare ottenuto traslando la circonferenza rossa lungo l’asse z
138 5 Superfici parametriche
con t ∈ R e φ ∈ [0, 2π), che corrisponde alla stessa forma parametrica ottenuta
ruotando una retta attorno all’asse z.
Esempio 5.8
Scrivere l’equazione della superficie conica che si ottiene ruotando attorno
all’asse y la retta passante per i punti P0 = (0, −2, −2) e P1 = (0, 2, 2).
Troviamo dapprima l’equazione della retta
⎡ ⎤ ⎡ ⎤
0 0
r(t) = t ⎣ 4 ⎦ + ⎣ 2 ⎦ .
4 2
5.3 Superfici di rivoluzione 139
Applichiamo ora alla retta appena ottenuta una rotazione attorno all’asse y
⎡ ⎤⎡ ⎤ ⎡ ⎤
cos(φ) 0 sin(φ) 0 (4t + 2) sin(φ)
S(t, φ) = ⎣ 0 1 0 ⎦ ⎣ 4t + 2 ⎦ = ⎣ 4t + 2 ⎦.
− sin(φ) 0 cos(φ) 4t + 2 (4t + 2) cos(φ)
Esempio 5.9
Nel caso in cui si abbia
⎡ ⎤ ⎡ ⎤
cos(t) − sin(t)
c(t) = ⎣ sin(t) ⎦ e d(t) = ⎣ cos(t) ⎦ ,
0 1
si ottiene
⎡ ⎤ ⎡ ⎤
cos(t) − sin(t)
S(t, s) = ⎣ sin(t) ⎦ + s ⎣ cos(t) ⎦ , (5.10)
0 1
che rappresenta un iperboloide ad una falda (si veda la Figura 5.16).
Esempio 5.10
Nel caso in cui si abbia
⎡ ⎤ ⎡ ⎤
t 0
c(t) = ⎣ 0 ⎦ e d(t) = ⎣ 1 ⎦ ,
0 t
si ottiene
⎡ ⎤ ⎡ ⎤
t 0
S(t, s) = ⎣ 0 ⎦ + s ⎣ 1 ⎦ , (5.11)
0 t
che rappresenta una sella (si veda la Figura 5.17).
5.4 Superfici rigate 141
Esempio 5.11
dove t I ≤ t ≤ t F e φ I ≤ φ ≤ φ F .
Figura 5.19 Superficie cilindrica (sinistra) e pattern da applicare alla superficie (sinistra)
t ∗ − tI
ξ∗ = L , (5.13)
tF − tI
φ∗ − φ I
η∗ = H . (5.14)
φF − φI
φ∗ − φ I
η∗ = L , (5.15)
φF − φI
t ∗ − tI
ξ∗ = H . (5.16)
tF − tI
Figura 5.20 Risultato dell’applicazione del pattern sul cilindro in due direzioni diverso
Nella prossima scheda riprendiamo una delle superfici introdotte a titolo di esem-
pio all’inizio capitolo, cioè l’edificio londinese di St. Mary Axe, riportato in Fi-
gura 5.1. Vediamo come sia possibile generare una superficie simile a tale edificio
sfruttando le tecniche viste precedentemente.
Figura 5.22 Superficie di rotazione simile all’edificio St. Mary Axe (a sinistra); superficie
ricostruita e texturing (a destra)
t = t (u),
s = s(u),
nello spazio parametrico di una superficie S(t, s). Allora s(u) = S(t (u), s(u)) è una
curva parametrica che giace sulla superficie S(t, s) (si veda Figura 5.23).
Il vettore tangente a tale curva si ottiene derivando il vettore s(u) rispetto al
parametro u; usando la regola di derivazione della funzione composta si ha
smin
tmin tmax t
tutti i vettori tangenti della forma (5.17) al variare di s(u). Poiché il vettore tangente
(5.17) è una combinazione lineare di due tangenti lungo le curve isoparametriche St
ed Ss , l’equazione parametrica del piano tangente in p0 = S(t0 , s0 ) è data da
Esempio 5.12
Per esemplificare il procedimento calcoliamo il piano tangente alla superficie
conica definita dalla (5.9) nel punto P0 corrispondente ai valori dei parametri
t0 = 1 e φ0 = π/2 (si veda Figura 5.24). Cominciamo determinando il punto
di passaggio ⎡ ⎤ ⎡ ⎤
cos(π/2) 0
p0 = S(t0 , φ0 ) = ⎣ 1 ⎦ = ⎣1⎦.
sin(π/2) 1
Calcoliamo ora i due vettori derivati
⎡ ⎤ ⎡ ⎤
cos(φ) −t sin(φ)
St (t, φ) = ⎣ 1 ⎦ , Sφ (t, φ) = ⎣ 0 ⎦.
sin(φ) t cos(φ)
Figura 5.24 Piano tangente ad una superficie conica. In rosso sono evidenziati i vettori
giacitura del piano tangente
Tuttavia, cosa si intende per rilievo nel caso di superfici generiche? Consi-
deriamo una superficie parametrica generica S(u, v): dato un generico punto P
individuato da (u 0 , v0 ) otteniamo un punto in rilievo P come
p = p + α(u 0 , v0 )n(u 0 , v0 )
Figura 5.26 Creazione di una texture ottenuta mappando l’immagine di un tessuto su una
superficie
Curve Freeform
6
Nel Capitolo 4 abbiamo visto che il modo più efficace per definire le curve nel pia-
no e nello spazio è la forma parametrica in cui ciascuna delle coordinate è espressa
come funzione di un parametro indipendente t. Tuttavia è spesso difficile o comunque
poco intuitivo tradurre il processo analogico di disegno di una forma in equazioni.
Un contributo fondamentale al superamento di questo gap e quindi allo sviluppo del-
le tecniche matematiche e numeriche per la grafica computerizzata venne nel 1959
grazie al lavoro di Pierre Bézier [1] e Paul de Casteljau [9], ingegneri e matematici
francesi, che inventarono e formalizzarono le curve parametriche oggi note come
curve di Bézier mentre lavoravano nell’industria automobilistica. Per maggiori det-
tagli sullo sviluppo storico delle curve di Bézier si può fare riferimento a [4,12].
Le generalizzazioni delle curve di Bézier includono le curve B-spline e le curve
NURBS, oggi largamente impiegate nei software di grafica.
L’idea alla base delle curve di Bézier, [3], è quella di introdurre un set di punti, detti
punti di controllo che determinano la forma della curva. Siano P0 , P1 , …, Pn gli
n + 1 punti di controllo: le curve di Bézier hanno origine nel punto P0 e terminano in
Pn , mentre i punti di controllo intermedi, in generale, non appartengono alla curva,
pur influenzandone la forma. In Figura 6.1 è rappresentata una curva definita da 4
punti di controllo: P0 e P3 sono rispettivamente il punto iniziale e finale della curva,
mentre P1 e P2 ne determinano l’andamento. Si noti che, d’ora in avanti, indicheremo
con pi il vettore corrispondente al punto Pi . Si indica come poligono di controllo o
reticolo di controllo la spezzata formata dai punti di controllo, collegati fra loro in
ordine.
Dal punto di vista matematico le curve di Bézier sono funzioni polinomiali di
grado generico n del parametro t. Ricordiamo che, come visto nel Capitolo 1, per
grado di una funzione polinomiale si intende il massimo esponente della variabile,
in questo caso il parametro t. Consideriamo inizialmente il caso più semplice, ossia
la curva di Bézier di grado 1, o lineare. Si tratta semplicemente di un segmento di
retta compreso fra i punti di controllo P0 e P1 (Figura 6.2), la cui equazione in forma
parametrica è già stata introdotta nel Capitolo 4:
c(t) = (p1 − p0 )t + p0 0 ≤ t ≤ 1.
c(t) = p0 (1 − t) + p1 t 0 ≤ t ≤ 1.
Tali funzioni si chiamano funzioni di base e saranno d’ora in poi indicate come
Bin (t), dove l’apice n indica il grado della funzione, per cui l’espressione precedente
si può riscrivere come segue
P1
t =0.5
P0
x
Figura 6.2 Una curva di Bézier lineare, definita da due punti di controllo
con
B01 (t) = 1 − t, B11 (t) = t.
Le funzioni di base sono a volte chiamate pesi ad indicare il fatto che rappresentano
il peso, cioé l’influenza, di ciascun punto di controllo sulla curva al variare di t. Le
funzioni di base lineari B01 (t) e B11 (t) sono rappresentate in Figura 6.3: si noti che
il peso B0 del primo punto di controllo è massimo in t = 0 e si annulla in t = 1 e
viceversa B1 è nullo in t = 0 e massimo in t = 1. In t = 21 entrambe le funzioni
hanno valore pari a 21 , quindi i due punti di controllo hanno peso uguale e si ottiene
il punto medio del segmento, e per tutti gli altri valori di 0 < t < 1 si ottengono
punti interni al segmento.
Analogamente si possono definire curve di grado superiore. Ad esempio, tre pun-
ti di controllo P0 , P1 , P2 definiscono una curva di grado 2, o quadratica, la cui
espressione è
In questo caso le funzioni di base sono quadratiche. Come si vede nel grafico in
Figura 6.4 il peso del punto P0 è massimo, pari ad 1, in t = 0 e diminuisce fino ad
annullarsi. Viceversa il peso del punto P2 cresce fino ad essere pari ad 1 in t = 1,
infatti P0 e P2 sono i punti estremi della curva. La funzione B12 presenta un massimo
per t = 21 , in cui B12 ( 21 ) = 21 . Il peso del punto P1 non è mai pari ad 1 e ciò
corrisponde, geometricamente, al fatto che il punto di controllo P1 non è un punto
di passaggio della curva.
154 6 Curve Freeform
1 t
B12 (t)
1 t
Esempio 6.1
Consideriamo una curva di Bézier quadratica definita dai seguenti tre punti
di controllo: P0 = (1, 0, 0), P1 = (0, 0, 2), P2 = (0, 1, 0).
Calcoliamo la sua espressione parametrica come segue:
c(t) = (1 − t)2 p0 + 2(1 − t)tp1 + t 2 p2 =
⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤
1 0 0 1 − 2t + t 2
(1 − t)2 ⎣ 0 ⎦ + 2(1 − t)t ⎣ 0 ⎦ + t 2 ⎣ 1 ⎦ = ⎣ t2 ⎦.
0 2 0 4t − 4t 2
P0 P2 y
x
Figura 6.5 Curva di Bézier quadratica
6.1 Curve di Bézier 155
1 t
le cui funzioni di base sono rappresentate in Figura 6.6: si noti che le funzioni B13 (t)
e B23 (t) presentano un massimo, ma inferiore ad uno. Infatti i corrispondenti punti
P1 e P2 non sono punti di passaggio della curva.
Esempio 6.2
Consideriamo una curva di Bézier cubica definita dai seguenti quattro punti
di controllo: P0 = (0, 1), P1 = (1, 2), P2 = (1, 0), P3 = (3, 1).
Calcoliamo la sua espressione parametrica come segue:
y P1
P0 P3
P2 x
Figura 6.7 Curva di Bézier cubica
156 6 Curve Freeform
n
c(t) = Bin (t)pi 0 ≤ t ≤ 1. (6.3)
i=0
Come è emerso dagli esempi precedenti l’espressione delle funzioni di base ha una
precisa struttura che si può generalizzare per il caso di grado n nel modo seguente:
la funzione Bi (t) di grado n è il prodotto di un coefficiente numerico e dei fattori t
e (1 − t) elevati ad opportune potenze. In particolare abbiamo
n
Bin (t) = (1 − t)n−i t i ,
i
dove il coefficiente numerico è dato dal coefficiente binomiale ni e può essere
calcolato mediante il triangolo di Tartaglia (si veda la Figura 6.8). La
riga
i-sima
del
triangolo di Tartaglia contiene il valore dei coefficienti binomiali n0 , n1 , …, ni ,
ottenuti a partire dalla riga precedente sapendo che
n n−1 n−1
= + ,
i i −1 i
ossia che un elemento del triangolo è ottenuto dalla somma dei due sovrastanti.
Le funzioni di base così definite sono i polinomi di Bernstein e corrispondono, tra
l’altro, allo sviluppo della seguente potenza
n
Bin (t) = [(1 − t) + t]n ,
i=0
con la conseguenza che la somma di n funzioni di base di grado n è pari ad 1 per ogni
valore del parametro t. Dal punto di vista geometrico significa che un punto generico
della curva è dato da una media pesata dei punti di controllo, con pesi la cui somma
è pari ad 1; si dice che ogni punto della curva è una combinazione baricentrica dei
punti di controllo e quindi la curva è interamente contenuta nell’inviluppo convesso
dei punti di controllo, si veda la Figura 6.9. L’inviluppo convesso di un insieme di
6.1 Curve di Bézier 157
Figura 6.9 In grigio è evidenziato l’inviluppo convesso dei punti di controllo. In questo poligono
è interamente contenuta la corrispondente curva di Bézier
Figura 6.10 A sinistra una figura (in particolare un poligono) convessa, a destra una non convessa.
Si noti che nel secondo caso è possibile trovare due punti tali per cui il segmento che li congiunge
non è interamente contenuto nella figura
punti è il più piccolo poligono convesso che contiene tutti i punti dati. Ricordiamo che
un figura si dice convessa se, dati due punti qualsiasi interni alla figura il segmento
che li congiunge è a sua volta interamente contenuto nella figura, come mostrato in
Figura 6.10.
P0
P2
Q1
P1 R0
c(t)
R1
Q0
Q2
P3
P0
Figura 6.12 Algoritmo di De Casteljau applicato alla costruzione di una curva di Bézier di grado
tre
Quindi si collegano i punti Q 0 (t) con Q 1 (t), e Q 1 (t) con Q 2 (t), formando due
nuovi lati. Su di essi si collocano due punti R0 (t), R1 (t) la cui posizione sul lato
dipende da t:
Anche in questo caso, sostituendo le espressioni (6.8) and (6.9) dei vettori ri , si
ottiene l’espressione delle funzioni di base di terzo grado introdotta nel paragrafo
precedente:
Le curve di Bézier introdotte nei paragrafi precedenti godono delle seguenti proprietà:
Esempio 6.3
È data la curva di Bèzier definita dai seguenti punti di controllo: P0 = (1, 1),
P1 = (2, 2), P2 = (3, 2), P3 = (3, 1). Si vuole calcolare la curva ruotata di
θ = π2 . Data la matrice di rotazione
cos θ − sin θ 0 −1
R= = ,
sin θ cos θ 1 0
−1 − 3t + 3t 2
f̃(t) = Rf(t) = .
1 + 3t − t 3
Moltiplicando per la matrice di rotazione i vettori pi possiamo ottenere la
posizione dei punti di controllo ruotati indicati dai vettori p0 = (−1, 1),
p1 = (−2, 2), p2 = (−2, 3), p3 = (−1, 3) con i quali si ottiene l’espressione
della curva ruotata (rappresentata in Figura 6.13) come
f̂(t) = (1 − t)3 p0 + 3(1 − t)2 tp1 + 3(1 − t)t 2 p2 + t 3 p3 =
−1 −2 −2 −1
(1 − t)3 + 3(1 − t)2 t + 3(1 − t)t 2 + t3 =
1 2 3 3
−1 − 3t + 3t 2
.
1 + 3t − t 3
P2 P3 y
P1 P1 P2
P0 P0 P3
x
Figura 6.13 Applicando una rotazione o una qualsiasi trasformazione affine ai punti di
controllo ottengo la curva di Bézier ruotata (o in generale trasformata)
P3
P1
P0
P2
Figura 6.14 Proprietà variation diminishing: la retta rappresentata da una linea continua interseca
tre volte il poligono e tre la curva, quella tratteggiata tre volte il poligono e solo una la curva, quella
a punti interseca due volte sia il poligono sia la curva
162 6 Curve Freeform
P4
P3 P5
P2
P5
P0
P6
P1
Figura 6.15 La modifica di un solo punto di controllo ha un effetto globale ossia influenza l’intera
curva
Nel paragrafo precedente abbiamo evidenziato come le curve di Bézier siano ca-
ratterizzate da non-località, ossia la modifica di ogni punto di controllo ha effetto
sull’intera curva. Inoltre, il grado polinomiale è legato al numero di punti di con-
trollo. Per questi motivi è sconveniente utilizzare curve di Bézier con molti punti di
controllo quando abbiamo bisogno di descrivere forme complesse. Come mostrato
nella scheda 6.4 è più comune raccordare tra loro diverse curve di Bézier, di pari
grado o grado diverso. Il raccordo tra curve può presentare diversi gradi di regolarità
[25]. Il caso più semplice è quello di un raccordo con continuità zero, o C 0 . Date
due curve C1 e C2 , definite dalle corrispondenti equazioni parametriche
P1
Q3
P3 = Q0
P0 Q2
P2 Q1 x
Per ottenere un raccordo più regolare possiamo imporre che fra le due curve ci sia
continuità C 1 nel punto di raccordo. Questo consiste nell’imporre, date le due curve
generiche (6.12), non solo che f1 (β1 ) = f2 (α2 ), ma anche che il vettore derivato
(definito nel Capitolo 4) sia continuo nel punto di raccordo, ossia f1 (β1 ) = f2 (α2 ).
Poiché consideriamo il vettore derivato, quindi la derivata prima della funzione
vettoriale f, si parla di continuità C 1 . Nel caso del raccordo fra due curve di Bézier
l’espressione del vettore derivato è particolarmente semplice nei punti iniziali, t = 0,
e finali, t = 1. Data l’espressione della curva di Bézier (6.3), ricaviamo che il vettore
f si può esprimere come
n
f (t) = Bin (t)pi .
i=0
Le derivate delle funzioni di base, che sono polinomi, sono le seguenti
⎧ n
⎪
⎨ −n(1 − t)n−1 se i = 0,
n n
0
Bi (t) = i −(n − i)(1 − t)
n−i−1 t + i(1 − t) t
i n−i i−1 se 1 ≤ i ≤ n − 1,
⎪
⎩ n n−1
n nt se i = n.
f (0) = n(p1 − p0 ).
164 6 Curve Freeform
P1
Q1
P3
P0 Q0 Q2
P2 Q3
Figura 6.17 Raccordo con continuità C 1 fra due curve di Bézier cubiche
Viceversa in t = 1 gli unici termini non nulli sono Bn−1
n (1) = −n, B n (1) = n,
n
quindi
f (1) = n(pn − pn−1 ).
Possiamo concludere che il vettore tangente alle curve di Bézier nel punto iniziale e
finale è parallelo rispettivamente al primo e ultimo lato del poligono di controllo, con
un coefficiente di proporzionalità pari al grado della curva. Ad esempio per raccordare
due curve cubiche di punti di controllo Pi , Q i dobbiamo imporre l’uguaglianza dei
seguenti vettori derivati: f1 (1) = 3(p3 − p2 ), f2 (0) = 3(q1 − q0 ), come mostrato in
Figura 6.17.
Esempio 6.4
Consideriamo la curva di Bézier quadratica definita dai punti di controllo P0 =
(0, 0), P1 = (0, 1), P2 = (1, 1). Vogliamo costruire una seconda curva di
Bézier di pari grado, definita dai punti di controllo Q 0 , Q 1 , Q 2 che si raccordi
alla prima in P2 con continuità C 1 . Innanzitutto dobbiamo imporre Q 0 = P2
per garantire il raccordo con continuità minima. Successivamente calcoliamo
il vettore tangente alla prima curva nel punto finale, f1 (1) = 2(p2 − p1 ),
e imponiamo che sia uguale al vettore tangente alla seconda curva nel suo
punto iniziale, ossia f2 (0) = 2(q1 − q0 ).
q1 − q0 = p2 − p1 (6.15)
Abbiamo quindi ottenuto Q 1 = (2, 1). Infine, il punto Q 2 può essere collocato
in qualsiasi posizione, ad esempio scegliamo Q 2 = (3, 2), come in Figura
6.18.
y Q2
P1 P2 = Q0 Q1
P0
x
Figura 6.18 Raccordo con continuità C1 fra due curve di Bézier quadratiche
Osserviamo che si può ottenere un raccordo regolare dal punto di vista geometrico
imponendo una condizione più debole rispetto all’uguaglianza dei vettori derivati,
ossia la proporzionalità. Se, nel punto di raccordo, imponiamo f1 (β1 ) = λf2 (α1 )
dove λ è un generico numero reale positivo, si parla di raccordo con continuità
geometrica G 1 . In questo caso i vettori tangenti sono paralleli nel punto di raccordo
ma non necessariamente uguali: se interpretiamo il parametro t come il tempo e le
due curve come traiettorie, nel caso di continuità G 1 abbiamo una variazione del
modulo della velocità nel punto di raccordo. La differenza fra un raccordo C 1 e G 1
è illustrata nella Figura 6.19.
P1 P1 Q1
Q1
P0 P3 = Q0 Q2 P0 P3 = Q0 Q2
P2 Q3 P2 Q3
Figura 6.19 Differenza fra un raccordo con continuità del vettore tangente (C 1 ) a sinistra, e con
continuità geometrica (G 1 ) a destra: effetto sulla velocità di percorrenza
166 6 Curve Freeform
Esempio 6.5
Consideriamo la curva di Bézier cubica definita dai punti di controllo P0 =
(0, 0), P1 = (0, 1), P2 = (1, 1), P3 = (1, 0), ed una seconda curva di Bézier
quadratica definita dai punti Q 0 = (1, 0), Q 1 = (1, −1), Q 2 = (2, 0). Con
quale regolarità si raccordano le due curve? Osserviamo innanzitutto che
Q 0 = P3 garantisce la continuità C 0 . Quindi calcoliamo i vettori tangenti
alle due curve rispettivamente nel punto finale per la prima, iniziale per la
seconda:
1 1 0
f1 (1) = 3(p3 − p2 ) = 3 − = (6.17)
0 1 −3
1 1 0
f2 (0) = 2(q1 − q0 ) = 2 − = (6.18)
−1 0 −2
Osserviamo che i due vettori non sono uguali ma solo proporzionali, infatti
3
f1 (1) = f2 (0). In questo caso abbiamo continuità geometrica o G 1 (si veda
2
la Figura 6.20).
P1 P2
P0 P3 = Q0 Q2
x
Q1
Figura 6.20 Raccordo con continuità C 1 fra due curve di Bézier quadratiche
Esempio 6.6
Consideriamo la curva di Bézier di grado 3 definita dai seguenti punti di
controllo: P0 = (0, 1), P1 = (1, 3), P2 = (2, 0), P3 = (3, 1). Vogliamo
costruire una seconda curva di Bézier con punti di controllo Q 0 , Q 1 , Q 2 , Q 3
che si raccordi a quella data formando un angolo α = π4 fra i vettori tangenti.
Innanzitutto calcoliamo il vettore tangente alla prima curva nel punto finale,
f1 (1) = 3(p3 − p2 ), e indichiamo con t il vettore tangente alla seconda curva
6.3 Raccordo di curve di Bézier 167
nel punto iniziale. Affinché l’angolo compreso fra i due vettori tangenti sia α
dobbiamo soddisfare la seguente relazione:
f1 (1) · t
cos(α) = ,
f1 (1)t
vale a dire
√
2 3tx + 3t y
=√ .
2 18 tx2 + t y2
y
f1 (1)
P1
P3 = Q0 Q1
P0
f2 (0)
P2 x
Q2 Q3
π
Figura 6.21 Raccordo con angolo imposto fra le tangenti α = 4
168 6 Curve Freeform
Una lettera come quella rappresentata in Figura 6.23 è memorizzata come una
serie di “percorsi”, ciascuno dei quali corrisponde ad una curva chiusa: un per-
corso per lettere come la “T”, due per “O”, “R” e ogni lettera con un occhiello,
tre per “B”, “8” e così via. Ogni percorso è formato da una lunga serie di curve
di Bézier di vario grado, a cui corrispondono due, tre o quattro punti di con-
trollo. Come mostrato in Figura 6.23 per ottenere un font modificato possiamo
localmente modificare la posizione di alcuni punti di controllo deformando le
corrispondenti curve di Bézier.
6.4 Real life application: le curve di Bézier nei font True Type 169
Figura 6.23 A sinistra, un carattere del font Arial (TrueType) e i suoi punti di controllo. A
destra, il corrispondente carattere corsivo (italic) ottenuto applicando una trasformazione di
taglio ai punti di controllo
n
p
c(t) = Bi (t)pi a ≤ t ≤ b.
i=0
L’apice p indica il grado polinomiale delle funzioni di base, che, al contrario delle
curve di Bézier, non è necessariamente pari ad n, ma si può scegliere liberamente
purché p ≤ n. Inoltre, osserviamo che il parametro t non è compreso fra 0 e 1 come
170 6 Curve Freeform
nel caso delle curve di Bézier, ma varia in un generico intervallo [a, b]. Su questo
intervallo si definisce una serie di nodi t j tali che t j ≤ t j+1 e tali che t0 = a, tm = b
per un totale di m + 1 nodi. Se i nodi sono equispaziati si parla di B-spline uniformi
ed è una convenzione comune scegliere a = 0 e t j+1 − t j = 1. Su tale partizione
p
vengono costruite le funzioni di base Bi tramite la formula di ricorsione di de Boor.
Le funzioni di grado zero sono definite come
1 se ti ≤ t ≤ ti+1
Bi0 =
0 altrimenti.
grado p = 1, p = 2, p = 3 Bi2
definite su 6 nodi 0.8
Bi3
0.6
0.4
0.2
0
0 1 2 3 4 5
6.5 Curve B-spline 171
P1
0
0 1 2 3 4
Poiché che la scelta del grado p è libera, dato un set di punti di controllo possiamo
realizzare diverse curve B-spline. Ad esempio, consideriamo i 6 punti di controllo
rappresentati in Figura 6.25. Se fissiamo p = 2, ossia funzioni di base quadratiche,
otteniamo m = n + 1 + p = 8, ossia un totale di 9 nodi. Di questi nodi 3 si collocano
coincidenti in a, 3 in b e i restanti 3 dividono la curva in 4 archi raccordati fra loro.
Si noti che, dove i nodi sono “singoli”, ossia non ripetuti, le curve si raccordano con
la massima regolarità possibile che in questo caso corrisponde alla continuità C 1 .
Dato lo stesso set di punti di controllo, se invece scegliamo p = 3 significa che
la curva è definita su 10 nodi, di cui 8 sono distribuiti (4+4) agli estremi e i restanti
dividono la curva in 3 tratti. Infine, se si sceglie p = 5 questo corrisponde a costruire
un’unica curva, che corrisponde alla curva di Bézier di grado 5 definita dai 6 punti
di controllo.
Riassumiamo quindi le principali differenze fra curve di Bézier e curve B-spline:
Curve di Bézier Curve di B-spline
• Sono definite da n + 1 punti di • Sono definite da n + 1 punti di
controllo
P i. controllo
P i.
n n p
• c(t) = i=0 Bin (t)pi . • c(t) = i=0 Bi (t)pi .
• Le funzioni di base hanno grado n. • Le funzioni di base hanno grado p ≤
• Le funzioni di base sono globali. n.
• Il parametro t varia tra 0 e 1. • Le funzioni di base sono locali.
• Il parametro t varia in un interval-
lo generico [a, b] su cui si definisco-
no n + 2 − p nodi eventualmente
coincidenti.
172 6 Curve Freeform
Nonostante le curve B-spline siano molto flessibili non sono in grado di rappre-
sentare in modo esatto, con nessuna opportuna scelta dei punti di controllo, curve
molto importanti quali archi di circonferenze, ellissi, iperboli. Per rappresentare que-
ste forme è necessario introdurre una ulteriore generalizzazione. Le curve NURBS
garantiscono questa elevata flessibilità e sono quindi, insieme alle superfici NURBS
(si veda il Capitolo 7) ampiamente usate nei moderni software di grafica. Il nome
NURBS è un acronimo per Non-Uniform-Rational-B-Spline e riassume le principali
caratteristiche di queste curve: si tratta infatti di una generalizzazione delle curve
B-Spline con distribuzione dei nodi non uniforme la cui espressione però non è più
un semplice polinomio ma una funzione razionale.
Per semplicità deriviamo l’espressione nel caso bidimensionale in cui è più sem-
plice dare un’interpretazione geometrica dei coefficienti. Una curva B-spline, come
visto precedentemente, ha la seguente espressione
n
p
c(t) = Bi pi .
i=0
prospettica sul piano W = 1 di tale B-spline: osserviamo che assegnando pesi diversi,
e quindi distanze diverse dall’origine in direzione W otteniamo una distorsione della
curva proiettata.
Per illustrare meglio l’effetto dei pesi consideriamo un caso semplice eppure
molto rilevante: mostriamo come, a partire da una semplice curva quadratica con tre
punti di controllo, si possano rappresentare archi di circonferenze, ellissi e iperboli.
Tutte queste curve appartengono alla famiglia delle coniche e si possono ottenere
intersecando una superficie conica con piani di diversa giacitura. La parabola si
ottiene intersecando la superficie conica con un piano parallelo ad una generatrice,
come mostrato in Figura 6.27.√Ad esempio in Figura 6.27 abbiamo considerato un
piano di normale N = [1, 1, 2]T . Su questo piano costruiamo una parabola √ con
funzioni di base quadratiche e punti di controllo P̃0 = (1, 0, 1), P̃1 = (1, 1, 2/2),
P̃2 = (0, 1, 1): possiamo osservare che la proiezione di questa parabola sul piano
W = 1 è un arco di circonferenza, in quanto intersecando una superficie conica con
un piano perpendicolare all’asse si ottiene appunto una circonferenza. In particolare
si tratta di un arco di circonferenza sotteso ad un angolo φ = π2 che può essere
rappresentato con una curva NURBS scegliendo √
un opportuno peso per il punto P1 ,
w1 = sin( φ2 ), nel nostro caso pari appunto a 22 .
Un altro caso interessante è rappresentato in Figura 6.28. Consideriamo una super-
ficie conica di asse X che, intersecata con un piano di normale N = [1, 0, 1]T deter-
mina una parabola. Descriviamo un arco di questa
√ parabola con funzioni di base
√ qua-
dratiche ed i punti di controllo P̃0 = (2, − 3, 1), P̃1 = (1, 0, 2), P̃2 = (2, 3, 1):
possiamo osservare che la proiezione di questa parabola sul piano W = 1 è un arco
di iperbole, che si ottiene appunto intersecando la superficie conica con un piano
parallelo all’asse. In questo caso abbiamo utilizzato per il punto P1 un peso w1 > 1.
In generale, come riassunto in Figura 6.29, un peso maggiore di uno “avvicina” la
curva al corrispondente punto di controllo, e viceversa.
174 6 Curve Freeform
Figura 6.27 Relazione fra una curva NURBS bidimensionale che rappresenta un arco di cir-
conferenza sul piano W = 1, e la corrispondente curva polinomiale quadratica nello spazio
tridimensionale (X, Y, W )
Figura 6.28 Relazione fra una curva NURBS bidimensionale che rappresenta un arco di iperbole
sul piano W = 1 e la corrispondente curva polinomiale quadratica nello spazio tridimensionale
(X, Y, W )
6.6 Curve NURBS 175
P1
P0 P2
Figura 6.29 Curve NURBS corrispondenti a diversi valori del peso w1 : in blu w1 = 1 (parabola),
in verde w1 < 1 (ellisse), in rosa w1 = sin(φ/2) (circonferenza), in nero w1 = 2 (iperbole)
Superfici Freeform
7
Lo sviluppo dei concetti matematici alla base delle superfici freeform si è avuto
durante gli anni ’40 e ’50. Tale strumenti dovevano rispondere essenzialmente a due
esigenze: la prima era quella di poter archiviare in forma digitale le superfici proget-
tate e la seconda era quella di trovare metodologie che consentissero di introdurre tali
superfici come input alle nascenti macchine a controllo numerico. Lo sviluppo delle
superfici freeform è quindi un tipico esempio di come una necessità di carattere spic-
catamente progettuale abbia portato alla creazione di innovativi concetti e strumenti
matematici; questo è confermato anche dal fatto che i pionieri in questo contesto
operavano in ambito automobilistico (Citroën, Renault) e aerospaziale (Boeing).
Le superfici freeform hanno poi iniziato ad essere utilizzate in svariati contesti
applicativi diversi da quelli tipicamente ingegneristici come ad esempio l’architettura
ed il design.
Figura 7.1
A03 A13 A23 A33
Schematizzazione del
reticolo di controllo per una
superficie di grado (3, 3)
m
n
x(u, v) = Bim (u)B nj (v)ai j , 0 ≤ u ≤ 1, 0 ≤ v ≤ 1, (7.1)
i=0 j=0
dove Bim (u) e B nj (v) sono la i-esima e la j-esima funzione di base e u e v due
parametri al cui variare si identifica la superficie; tali funzioni sono rispettivamente
di grado m ed n e pertanto la superficie di Bézier così costruita si dirà di grado (m, n).
L’espressione (7.1) si può riscrivere nel seguente modo
m
n
x(u, v) = Bi,m,n
j (u, v)ai j , 0 ≤ u ≤ 1, 0 ≤ v ≤ 1,
i=0 j=0
Bi,m,n
j (u, v) = Bi (u)B j (v).
m n
7.1 Superfici di Bézier 179
Esempio 7.1
Si vogliono rappresentare le funzioni di base per la generazione di una superfi-
cie di grado (3, 2). Ad esempio, la funzione di base generatrice corrispondente
a i = j = 0 è data da
3,2
B0,0 = (1 − u)3 · (1 − v)2 ,
Figura 7.2 Esempio di funzioni di base per la generazione di una superficie di grado
3,2
(3, 2). A sinistra, è rappresentata la funzione B0,0 = (1 − u)3 · (1 − v)2 ; a destra, la
3,2
funzione B1,1 = 3(1 − u)2 u · 2(1 − v)v. Sui piani verticali sono rappresentate in rosso le
corrispondenti funzioni monodimensionali
Consideriamo una superficie di Bézier di grado (3, 3) (si veda la Figura 7.3): ogni
riga composta da 4 punti di controllo definisce una curva di Bézier in u (per questo
motivo tali curve sono dette u-curve), valutando ognuna di queste 4 curve per lo
stesso valore di u si ottengono 4 punti di controllo virtuali che consentono di creare
una nuova curva di Bézier in v (v-curve). Valutando tale curva per un generico valore
di v si ottengono le coordinate del punto sulla superficie (Figura 7.3). In altri termini
partendo da due curve di Bézier γ1 (u) e γ2 (v) definite rispettivamente dai punti di
controllo A00 , A10 , . . . Am0 e B00 , B01 , . . . B0n con A00 = B00 la superficie definita
dalla (7.1) si ottiene immaginando di traslare la curva γ1 (u) lungo la traiettoria
definita dalla curva γ2 (v) o viceversa.
180 7 Superfici Freeform
1. Reticolo di controllo: la superficie di Bézier x(u, v) passa per i punti A00 , Am0 ,
A0n e Amn cioè per i quattro vertici del reticolo di controllo (si veda la Figura 7.4).
3,3 3,3
Questa proprietà è diretta conseguenza del fatto che B0,0 (0, 0) = Bm,0 (1, 0) =
3,3 3,3
B0,n (0, 1) = Bm,n (1, 1) = 1.
2. Inviluppo convesso: la superficie di Bézier x(u, v) appartiene all’inviluppo con-
vesso dei punti che definiscono il suo reticolo di controllo (si veda la Figura
7.5).
3. Invarianza rispetto a trasformazioni affini: la superficie che si ottiene applicando
una trasformazione affine alla superficie di Bézier coincide con la superficie che
si costruisce utilizzando come punti di controllo i punti ottenuti applicando ai
punti di controllo originari la trasformazione affine in oggetto.
4. u-curve e v-curve: le curve che definiscono il bordo della superficie sono curve
di Bézier. Ogni curva con u o v costante è una curva di Bézier.
5. Piani tangenti: i vettori v1 = A01 − A00 e v2 = A10 − A00 sono tangenti alla
superficie nel punto A00 ; pertanto tali vettori v1 e v2 definiscono il piano tangente
alla superficie nel punto A00 . Analogamente per gli altri vertici.
6. Non-località: modificando la posizione di un punto di controllo del reticolo tutta
la superficie di Bézier viene modificata.
Sulla base di queste proprietà si può mostrare come, mediante l’utilizzo delle
superfici di Bézier, sia possibile costruire particolari superfici rigate, cilindriche o
coniche, scegliendo in modo opportuno la posizione dei punti che formano il reticolo
di controllo. Vediamo nel dettaglio come costruire tali superfici.
Per quanto concerne le superfici rigate è sufficiente considerare una generica
superficie di Bézier di grado (1, n): infatti in tale caso le u-curve sono curve di
7.2 Proprietà delle superfici di Bézier 181
Bézier di grado 1 cioè rette (si veda la Figura 7.6); in modo del tutto analogo è
possibile procedere per ottenere una superficie cilindrica. Per ottenere invece una
superficie conica è sufficiente considerare ancora una superficie di Bézier di grado
(1, n) dove i punti di controllo di una delle due curve di Bézier di bordo siano tutti
coincidenti come in Figura 7.7.
B1 j = B0 j + α(A3 j − A2 j ), j = 0, 1, 2, 3, (7.2)
dove α è un arbitrario numero appartenente a R+ . Dal punto di vista geometrico la
condizione (7.2) equivale a richiedere che:
Figura 7.11 Teiera creata mediante il raccordo di 32 superfici di Bézier: in alto sono
evidenziati in colori diversi i vari pacth bicubici ed in basso la superficie ottenuta
Per generare superfici B-spline o NURBS si utilizza la stessa idea che ci ha guidato
nella costruzione delle superfici di Bézier. La superficie è definita mediante un reti-
colo di controllo e l’espressione matematica di una superficie B-spline o NURBS si
ottiene a partire dalla (7.1) dove in luogo dei polinomi di Bernstein vengono usate
le funzioni di base delle curve B-spline o NURBS. Più precisamente nel caso delle
186 7 Superfici Freeform
m
n
p q
x(u, v) = Bi (u)B j (v)ai j , 0 ≤ u ≤ 1, 0 ≤ v ≤ 1, (7.3)
i=0 j=0
p q
dove Bi (u) e B j (v) sono la i-esima e la j-esima funzione di base B-spline di grado
rispettivamente p e q nelle direzioni u e v definite sui vettori di nodi u e v. In modo
analogo a quanto fatto per le superfici di Bézier, l’espressione (7.3) si può riscrivere
nel seguente modo
m
n
p,q
x(u, v) = Bi, j (u, v)ai j , 0 ≤ u ≤ 1, 0 ≤ v ≤ 1,
i=0 j=0
dove
p,q p q
Bi, j (u, v) = Bi (u)B j (v).
Analogamente si può procedere nel caso delle superfici NURBS utilizzando come
funzioni di base le funzioni razionali viste in 6.6.
Le superfici B-spline godono delle stesse proprietà delle superfici di Bézier, ma,
in aggiunta, esattamente come accade nel caso delle curve, godono della proprietà
di località cioè lo spostamento di un punto del reticolo di controllo influenza solo
una porzione limitata della superficie. Le superfici NURBS, oltre a soddisfare la
proprietà di località, estendono la proprietà di invarianza anche al caso di trasfor-
mazioni prospettiche. Infine osserviamo che, anche nel caso delle superfici NURBS,
un incremento del valore del peso relativo ad un punto di controllo del reticolo di
7.4 Superfici B-spline e NURBS 187
Figura 7.12 Superficie NURBS definita da 9 punti di controllo: nella parte alta tutti i punti di
controllo hanno peso pari ad 1, nella parte bassa il punto di controllo centrale ha peso pari a 4
La divisione che separa il saggio dal folle è più sottile della tela
del ragno.
(K. Gibran)
Nella definizione delle curve di Bézier, delle B-spline o delle NURBS (e nelle cor-
rispondenti superfici) a partire da un set di punti che identificano il poligono di
controllo, tutti i punti della curva vengono definiti in forma analitica, attraverso
l’utilizzo di opportune funzioni di base. Una curva di suddivisione è definita dai
© Springer-Verlag Italia S.r.l., part of Springer Nature 2019 189
E. Miglio et al., Matematica e Design, UNITEXT - La Matematica per il 3+2 115,
https://doi.org/10.1007/978-88-470-3987-2_8
190 8 Curve e superfici di suddivisione
(a) (b)
(c) (d)
Figura 8.1 Curva di suddivisione ottenuta con l’algoritmo di Chaikin: (a) poligono di controllo
iniziale, (b) primo livello di suddivisione, (c) secondo livello di suddivisione, (d) curva limite
(B-spline quadratica)
(a) (b)
(c) (d)
Figura 8.2 Curva di suddivisione cubica: (a) poligono di controllo iniziale, (b) primo livello di
suddivisione, (c) secondo livello di suddivisione, (d) curva limite (B-spline cubica)
(a) (b)
(c) (d)
Figura 8.3 Curva di suddivisione interpolatoria: (a) poligono di controllo iniziale, (b) primo livello
di suddivisione, (c) secondo livello di suddivisione, (d) curva limite
zando schemi differenti, riportiamo in Figura 8.4 le curve limite ottenute con i tre
schemi di suddivisione considerati.
Per mostrare nel dettaglio come si può implementare una procedura di suddivi-
sione, nella prossima sezione descriviamo l’algoritmo di Chaikin [8]. Per una pano-
ramica generale sui diversi algoritmi di suddivisione e sulle relative proprietà si può
fare riferimento, ad esempio, a [14].
L’algoritmo di Chaikin si basa sul “taglio” degli angoli di una curva ottenuta con-
giungendo linearmente dei punti (spezzata). Ciò permette di definire curve di forma
arbitraria mediante raffinamenti ricorsivi. In particolare, partendo dalla spezzata che
unisce con linee rette i punti di controllo iniziali, ogni vertice del raffinamento suc-
cessivo si ottiene come combinazione lineare dei vecchi vertici, si veda Figura 8.5
per un esempio.
j
Operativamente, per ogni vertice pi del livello j, viene tagliato il corrispondente
j+1 j+1
angolo inserendo due nuovi punti p2i e p2i+1 e il nuovo segmento che unisce questi
ultimi. In questo modo la lunghezza dei segmenti viene ridotta ad ogni raffinamento.
Le regole con cui ciò viene fatto sono le seguenti:
8.1 Curve di suddivisione 193
(b)
(c)
194 8 Curve e superfici di suddivisione
D
C
B
A
j+1 1 j 3 j j+1 3 j 1 j
p2i = pi−1 + pi , p2i+1 = pi−1 + pi . (8.1)
4 4 4 4
Al limite, per j → ∞, l’algoritmo di Chaikin produce curve B-spline quadratiche
uniformi.
8.1 Curve di suddivisione 195
Esempio 8.1
Dati i punti di controllo A = (1, 0), B = (3, 0.5), C = (4, 3), D = (2, 3.5),
rappresentati in Figura 8.5, identifichiamo p00 con A, p01 con B, p02 con C e
p03 con D. Allora, al termine della prima suddivisione, grazie alle (8.1), i
seguenti punti generati dall’algoritmo di Chaikin formano il set dei nuovi
punti di controllo:
1 0 3 0 1 3 5 7 T
p10 = p + p0 = [2 3.5]T + [1 0]T = ,
4 3 4 4 4 4 8
T
3 1 0 9 21
p11 = p03 + p = ,
4 4 0 4 8
1 0 3 0 5 3 T
p12 = p + p = ,
4 0 4 1 2 8
T
3 1 0 3 1
p13 = p00 + p1 = ,
4 4 2 8
T
1 3 0 15 19
p14 = p01 + p = ,
4 4 2 4 8
3 0 1 0 13 9 T
p15 = p + p = ,
4 1 4 2 4 8
T
1 3 0 5 27
p16 = p02 + p3 = ,
4 4 2 8
T
3 1 0 7 25
p17 = p02 + p = ,
4 4 3 2 8
Mostriamo in questo paragrafo come una B-spline possa essere ottenuta come limite
di una curva di suddivisione, si veda per maggiori dettagli [17]. In particolare, con-
sideriamo una curva B-spline Bl (t) di ordine l. Denotiamo con Bi,l (t) = Bl (t − i) la
copia traslata della curva Bl (t) e con Bl (2t) la copia dilatata di Bl (t), vale a dire le
funzioni ottenute dalla B-spline originale operando rispettivamente una traslazione
e una dilatazione rispetto al parametro t. Per tali funzioni vale la seguente regola
di suddivisione che sta alla base degli algoritmi per generare curve e superfici di
suddivisione [7]:
l+1
1 l +1
Bl (t) = l Bl (2t − k), (8.2)
2 k
k=0
196 8 Curve e superfici di suddivisione
che mostra come una B-spline possa essere ottenuta da una combinazione lineare di
copie traslate e dilatate di se stessa e che quindi di fatto sia una curva di suddivisione.
Introducendo il vettore riga bl (t), le cui componenti sono date da bil (t) = Bl (t −i),
è possibile scrivere, utilizzando la regola di suddivisione (8.2), la seguente relazione
al variare di i e k.
Si consideri ora una curva B-spline
N
N
x(t)
c(t) = = pi Bi,l (t) = pi Bl (t − i),
y(t)
i=−N i=−N
c(t) = B(t)P 0
= B(2t)P 1 = B(2t)S P 0
= B(22 t)P 2 = B(22 t)S P 1 = B(22 t)S 2 P 0
..
.
= B(2 j t)P j = B(2 j t)S P j−1 = . . . = B(2 j t)S j P 0 .
pj+1
5
pj4 pj3 pj+1
4
pj+1
3
pj+1
2
Figura 8.6 Due livelli di suddivisione per la generazione di una B-spline cubica
reale e i suoi punti di controllo sono difficilmente distinguibili dopo pochi passi
di suddivisione (si può dimostrare che la convergenza è di tipo geometrico [17]).
Su questa ultima osservazione si basa tutto il paradigma delle curve e superfici di
suddivisione: invece di disegnare la curva B-spline reale si traccia la curva lineare a
tratti che connette i suoi punti di controllo.
Scrivendo esplicitamente le relazioni P j+1 = S P j per i punti di controllo con
indice dispari e pari, si ottiene
j+1 j
p2i+1 = k S2i+1,k pk ,
j+1 j
p2i = k S2i,k pk .
Figura 8.7 Superficie di suddivisione approssimante: (a) reticolo di controllo iniziale, (b) primo
livello di suddivisione, (c) secondo livello di suddivisione, (d) superficie limite
Figura 8.8 Differenti regole di raffinamento per facce quadrilatere. Schema primale (in alto) e
schema duale (in basso)
j+1
faccia una faccia più piccola delimitata da quattro nuovi vertici pi , i = 0, 1, 2, 3,
j
che vengono ottenuti dai quattro vertici della faccia di partenza pi , i = 0, 1, 2, 3,
mediante la seguente regola di suddivisione (si veda Figura 8.9),
j+1 9 j 3 j 1 j 3 j
p0 = p0 + p1 + p2 + p3 ,
16 16 16 16
scritta per i vertici p0 ma valida in maniera del tutto analoga anche per i p1 , p2 , p3 .
Si noti come i vertici della faccia siano stati numerati in modo che p0 sia opposto
a p2 . Ciò significa che nella generazione di un nuovo vertice, viene dato più peso
(9/16) al nodo di partenza che occupa la stessa posizione (0 e 1 nei due esempi in
figura) e peso minore (1/16) a quello opposto. Le nuove facce così ottenute (di tipo
faccia) vengono poi collegate unendo i vertici con lo stesso pedice formando nuove
facce (di tipo lato), si veda Figura 8.10. Infine, vengono uniti i vertici che si sono
generati a partire da uno stesso vertice del livello precedente (in numero di tre in
Figura 8.10) formando le nuove facce di tipo vertice.
Un altro schema classico di suddivisione uniforme è lo schema di Catmull-Clark
[7] che converge a superfici B-spline bi-cubiche uniformi. L’elemento base che viene
suddiviso è formato da 16 punti di controllo e nel nuovo livello ci sono 25 punti posti
200 8 Curve e superfici di suddivisione
pj+1 pj+1
1
0
pj0 9
16
pj1 3
16
pj3 1
16
pj2 3
16
pj+1
3 pj+1
2
pj+1 pj+1
1
0
pj0 3
16
pj1 9
16
all’interno dell’elemento base. Di questi punti, alcuni si trovano al centro dei rettan-
goli del reticolo di partenza (punti di faccia); altri giacciono sui lati che congiungono
due punti originali (punti di lato); infine, altri (detti punti di vertice) si trovano vicini
(ma non coincidono) ai punti di controllo di partenza. Un nuovo punto di faccia è
definito come media dei quattro vertici che delimitano la faccia di cui il nuovo è al
centro. Ad esempio, con riferimento a Figura 8.11, si ha
8.2 Superfici di suddivisione 201
1 1
4 4
1 3 1
16 8 16
1 3 1
16 8 16
1 6 1
164 64 64
36
6 64 6
64 64
1
1 6 64
64 64
j j j j
p11 + p21 + p12 + p22
j+1
p11 = , (8.4)
4
dove i due indici indicano la posizione in termini di riga e colonna nel reticolo.
202 8 Curve e superfici di suddivisione
Figura 8.12 Superficie di suddivisione: (a) reticolo di controllo iniziale, (b) primo livello di
suddivisione, (c) secondo livello di suddivisione, (d) superficie limite
Un nuovo punto di lato è invece definito mediante la seguente media pesata dei
sei punti che delimitano le due facce che condividono il lato. Ad esempio, con
riferimento a Figura 8.11
j j j j j j
j+1 p + 6p12 + p13 + p21 + 6p22 + p23
p12 = 11 .
16
Infine, l’espressione per un nuovo punto di vertice è data da
j j j j j j j j j
j+1 p11 + 6p21 + p31 + 6p12 + 36p22 + 6p32 + p13 + 6p23 + 36p33
p22 = .
64
Sia l’algoritmo di Doo-Sabin che quello di Catmull-Clark possono essere estesi
al caso di reticoli formati da poligoni generali (non quadrilateri) [23] e al caso non-
uniforme [14] (si veda ad esempio la Figura 8.12). In questo caso i pesi dipendono
dal numero di lati di una faccia m e dalla valenza di un vertice (cioè il numero di lati
che condividono quel vertice).
8.2 Superfici di suddivisione 203
Un ultimo cenno è dato alle NURSS (Non Uniform Recursive Subdivision Sur-
faces) che estendono le superfici ottenute mediante gli algoritmi di Doo-Sabin e
Catmull-Clark al caso di poligoni generali mediante il prodotto tensoriale di B-spline
non uniformi [27]. In questo modo, si ottiene una grande flessibilità nel generare su-
perfici arbitrarie e si possono trattare facilmente situazioni particolari quali cuspidi,
creste e punte.
Figura 8.13 Robot modellato con superfici di suddivisione. Si ringraziano per la concessione
dell’immagine Nicolò Azzolin, Carlo Cocchetti e Andrea Picardi. Si veda anche il sito https://
alphasunshine.github.io
204 8 Curve e superfici di suddivisione
Figura 8.15 Modello di barca (a sinistra), triangolazione STL (al centro) e oggetto stampato
in 3D (a destra). Si ringrazia Francesco Cattoglio per la realizzazione della stampa
Riferimenti bibliografici
1. Bézier, Professor: A short biography. Comput. Aided Des. 22(9), 523 (1990)
2. Doo, D., Sabin, M.: Behaviors of recursive division surfaces near extraordinary points. Comput.
Aided Des. 10, 356–360 (1978)
3. Bèzier, P.: Essai de définition numérique des courbes et des surfaces experimentales: Con-
tribution à l’étude des propriétés des courbes et des surfaces paramétriques polynomiales à
coefficients vectoriels. Universite Pierre et Marie Curie (Paris VI), Diss (1977)
4. Bézier, P.: Style, mathematics and NC. Comput. Aided Des. 22(9), 524–526 (1990)
5. Bramanti, M., Pagani, C.D., Salsa, S.: Calcolo infinitesimale e algebra lineare. Zanichelli (2004)
6. Burns, M.: Automated Fabrication: Improving Productivity in Manufacturing. PTR Prenrice
Hall, Upper Saddle River (1993)
7. Catmull, E., Clark, J.: Recursively generated b-spline surfaces on arbitrary topological meshes.
Comput. Aided Des. 10, 350–355 (1978)
8. Chaikin, G.: An algorithm for high-speed curve generation. Comput. Graph. Image Process. 3,
346–349 (1974)
9. de Faget de Casteljau, P.: De Casteljau’s autobiography: My time at Citroën. Comput. Aided
Geom. Des. 16(7), 583–586 (1999)
10. DeRose, T., Kass, M., Truong, T.: Subdivision surfaces in character animation. In: Proceedings
of the 25th Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH
’98, pp. 85–94. ACM, New York (1998)
11. Farin, G.: Curves and Surfaces for Computer Aided Geometric Design. A Pratical Guide.
Academic Inc, Cambridge (1990)
12. Forrest, A.R.: Interactive interpolation and approximation by Bézier polynomials. Comput.
Aided Des. 22(9), 527–537 (1990)
13. Lane, J.M., Riesenfeld, R.F.: A geometric proof for the variation diminishing property of B-
spline approximation. J. Approx. Theory 37(1), 1–4 (1983)
14. Ma, W.: Subdivision surfaces for CAD - An overview. Comput. Aided Des. 37, 693–709 (2005)
15. Mantero, A.M., Ferrari, A.: Algebra e Arte: La magia dei gruppi di simmetria. Serie di architet-
tura e design, Franco Angeli Edizioni (2017)
16. Miller, J.R.: Vector geometry for computer graphics. IEEE Comput. Graph. Appl. 19(3), 66–73
(1999)
17. Levin, D., Dyn, N., Gregory, J.A.: Analysis of uniform binary subdivision schemes for curve
design. Constr. Approx. 7(1), 127–147 (1991)
18. Peterson, M.J.: CNC Programming: Reference Book. CreateSpace Independent Publishing
Platform (2008)
19. Pickover, C.: Il nastro di Möbius. Apogeo Saggi, Apogeo (2006)
20. Piegl, L., Tiller, W.: The NURBS Book, 2nd edn. Springer Inc, New York (1997)
21. Prautzsch, H., Boehm, W., Paluszny, M.: Bezier and B-Spline Techniques. Springer Inc, New
York (2002)
22. Rogers, D.F., Adams, J.A.: Mathematical Elements for Computer Graphics, 2nd edn. McGraw-
Hill Inc, New York (1990)
23. Sabin, M.A.: Subdivision surfaces. In Farin, G.E., Hoschek, J., Kim, M.S. (eds.) Handbook of
computer aided geometric design. North Holland, New York (2002)
24. Salomon, D.: Computer Graphics and Geometric Modeling, 1st edn. Springer, Berlin (1999)
25. Salomon, D.: Curves and Surfaces for Computer Graphics. Springer, Berlin (2006)
26. Sederberg, T.W., Anderson, D.C., Goldman, R.N.: Implicit representation of parametric curves
and surfaces. Comput. Vis. Graph. Image Process. 28(1), 72–84 (1984)
27. Sederberg, T.W., Zheng, J., Sewell, D., Sabin, M.: Non-uniform recursive subdivision surfaces.
In: Proceeding of the ACM SIGGRAPH Computer Grapichs, pp. 387–394 (1998)
Indice analitico
A di Bézier, 152
Algoritmo di suddivisione, 189
Catmull-Clark, 199 elica cilindrica, 113
Chaikin, 192 elica conica, 113
di De Casteljau, 157 ellisse, 108
Doo-Sabin, 198 forma cartesiana, 92
Animazione digitale, 203 forma parametrica, 94
Ascissa, 27 iperbole, 110
non-uniform rational b-splines (NURBS),
B 172
B-spline, 169, 185 parabola, 111
parametrica, 152
C retta, 95
Cicloide, 115 spirale di Archimede, 112
Cilindro, 135 Curva parametrica, 94
Circonferenza, 106 retta, 96
Coefficiente binomiale, 156 Curve di suddivisione, 189
Combinazione lineare, 14, 37
Composizione di trasformazioni, 77
Computer-Aided Design (CAD), 189 D
Cono, 138 Deformazione di taglio, 64
Coordinate cartesiane, 26 Derivata, 163
Coordinate cilindriche, 31 Determinante, 57
Coordinate geografiche, 32 Distanza, 26, 27
Coordinate omogenee, 44 Dominio dei parametri, 123
Coordinate polari, 29
Coordinate sferiche, 31
Coseno, 6, 11 E
Curva, 91 Elica cilindrica, 113
B-spline, 169, 195 Elica conica, 113
cicloide, 115 Ellisse, 108
circonferenza, 106 Ellissoide, 133
F numeri naturali, 2
Font, 168 numeri razionali, 2
Fregio, 81 numeri reali, 2
Funzione, 6 numeri trascendenti, 3
continuità, 17 Numero di Nepero, 16
derivabilità, 17 NURBSNon-Uniform Rational B-Splines
derivate parziali, 22 (NURBS), 185
di base, 152, 170, 178 NURSSNon Uniform Recursive Subdivision
di due variabili, 21 Surfaces (NURSS), 203
esponenziale, 15
limite, 7 O
logaritmica, 15 Operazioni su matrici, 50
polinomiale, 14, 152 differenza, 50
trigonometrica, 10 prodotto scalare-matrice, 52
prodotto tra matrici, 52
G somma, 50
Grado polinomiale, 156 Ordinata, 27
I P
Inviluppo convesso, 157, 180 Parabola, 111
Iperbole, 110 Parallelo, 32
Iperboloide, 140 Piano, 123, 126
tangente, 146
L Piano tangente, 180
Laplace, sviluppo di, 59 Planarità , 29
Latitudine, 32, 131 Prodotto scalare, 36, 41
Lente torica, 132 Prodotto scalare-matrice, 52
Località, 160, 180, 186 Prodotto scalare-vettore, 35, 40
Longitudine, 32, 131 Prodotto tra matrici, 52
Prodotto vettoriale, 36, 43, 128
M Proiezione ortogonale, 83
Mappatura di pattern, 143 Proiezione prospettica, 85
Matrice, 50 Punti di controllo, 152, 170, 178
diagonale, 54 Punto, 26, 27
di trasformazione, 74 all’infinito, 45
identità, 54 medio, 28
inversa, 55
ortogonale, 56 R
quadrata, 54 Raccordo tra curve, 162
simmetrica, 55 Raccordo tra superfici, 181
trasposta, 55 Radianti, 10
triangolare, 55 Regola del parallelogramma, 35
Meridiano, 32 Regola di suddivisione, 190
Reticolo di controllo, 180, 187
N Retta
Nastro di Möbius, 141 generatrice, 140
Non-Uniform Rational B-Splines (NURBS), Retta tangente, 119
172 Rette, 95, 96
Numeri, 1 coincidenti, 101
numeri algebrici, 3 incidenti, 101
numeri interi, 2 parallele, 101
Indice analitico 211