Sei sulla pagina 1di 216

UNITEXT 115

Edie Miglio · Nicola Parolini ·


Anna Scotti · Christian Vergara

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

Paolo Biscari, Politecnico di Milano, Milan, Italy

Ciro Ciliberto, Università Degli Studi di Roma “Tor Vergata”, Rome, Italy

Camillo De Lellis, Institute for Advanced Study, Princeton, NJ, USA

Victor Panaretos, Institute of Mathematics, EPFL, Lausanne, Switzerland

Wolfgang J. Runggaldier, Università di Padova, Padova, Italy


The UNITEXT - La Matematica per il 3+2 series is designed for undergraduate
and graduate academic courses, and also includes advanced textbooks at a research
level. Originally released in Italian, the series now publishes textbooks in English
addressed to students in mathematics worldwide. Some of the most successful
books in the series have evolved through several editions, adapting to the evolution
of teaching curricula.

More information about this subseries at http://www.springer.com/series/5418


Edie Miglio • Nicola Parolini •
Anna Scotti • Christian Vergara

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

Anna Scotti Christian Vergara


MOX, Dipartimento di Matematica LABS - Dipartimento di Chimica, Materiali
Politecnico di Milano e Ingegneria Chimica “Giulio Natta”
Milano, Italy Politecnico di Milano
Milano, Italy

ISSN versione cartacea: 2038-5714 ISSN versione elettronica: 2532-3318


UNITEXT - La Matematica per il 3+2
ISSN versione cartacea: 2038-5722 ISSN versione elettronica: 2038-5757
ISBN 978-88-470-3986-5 ISBN 978-88-470-3987-2 (eBook)
https://doi.org/10.1007/978-88-470-3987-2
© Springer-Verlag Italia S.r.l., part of Springer Nature 2019
Quest’opera è protetta dalla legge sul diritto d’autore e la sua riproduzione è ammessa solo ed
esclusivamente nei limiti stabiliti dalla stessa. Le fotocopie per uso personale possono essere effettuate
nei limiti del 15% di ciascun volume dietro pagamento alla SIAE del compenso previsto dall’art. 68. Le
riproduzioni per uso non personale e/o oltre il limite del 15% potranno avvenire solo a seguito di
specifica autorizzazione rilasciata da AIDRO, Corso di Porta Romana n. 108, Milano 20122, e-mail
segreteria@aidro.org e sito web www.aidro.org.
Tutti i diritti, in particolare quelli relativi alla traduzione, alla ristampa, all’utilizzo di illustrazioni e
tabelle, alla citazione orale, alla trasmissione radiofonica o televisiva, alla registrazione su microfilmo in
database, o alla riproduzione in qualsiasi altra forma (stampata o elettronica) rimangono riservati anche
nel caso di utilizzo parziale. La violazione delle norme comporta le sanzioni previste dalla legge.
L’utilizzo in questa pubblicazione di denominazioni generiche, nomi commerciali, marchi registrati, ecc.
anche se non specificatamente identificati, non implica che tali denominazioni o marchi non siano protetti
dalle relative leggi e regolamenti.

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).

Questa edizione è pubblicata da Springer-Verlag Italia S.r.l., part of Springer Nature,


con sede legale in Via Decembrio 28, 20137 Milano, Italy
Questo libro è dedicato
a chi è curioso di trovare
la Matematica nelle forme
Prefazione

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.

Milano, Italy Edie Miglio


Febbraio 2019 Nicola Parolini
Anna Scotti
Christian Vergara
Indice

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

3.3 Trasformazioni geometriche affini . . . . . . . . . . . . . . . . . . . . . . . 60


3.3.1 Identità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.3.2 Scalatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.3.3 Deformazione di taglio (o shear) . . . . . . . . . . . . . . . . . . . 64
3.3.4 Rotazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.3.5 Riflessione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.3.6 Traslazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
3.3.7 Costruire una matrice di trasformazione . . . . . . . . . . . . . 74
3.4 Trasformazioni con coordinate omogenee . . . . . . . . . . . . . . . . . . 75
3.4.1 Traslazione con coordinate omogenee . . . . . . . . . . . . . . . 76
3.4.2 Trasformazioni affini arbitrarie . . . . . . . . . . . . . . . . . . . . 76
3.5 Composizione di trasformazioni . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.5.1 Classificazione delle trasformazioni affini . . . . . . . . . . . . 80
3.6 Real life applications: i sette fregi . . . . . . . . . . . . . . . . . . . . . . . 81
3.7 Trasformazioni non affini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.7.1 Proiezione ortogonale . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.7.2 Proiezione prospettica . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4 Curve parametriche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.1 Rappresentazione di una curva nel piano . . . . . . . . . . . . . . . . . . 91
4.1.1 Forma cartesiana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.1.2 Forma parametrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.2 Rette nel piano e nello spazio . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.2.1 Rette in forma parametrica . . . . . . . . . . . . . . . . . . . . . . . 96
4.2.2 Posizione reciproca di due rette nel piano e nello
spazio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.3 Generazione di curve parametriche . . . . . . . . . . . . . . . . . . . . . . 104
4.3.1 Circonferenza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
4.3.2 Ellisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
4.3.3 Iperbole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
4.3.4 Parabola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
4.3.5 Spirale di Archimede . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
4.3.6 Elica cilindrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
4.3.7 Elica conica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
4.4 Real life applications: la traiettoria di un pedale . . . . . . . . . . . . . 115
4.5 Retta tangente a una curva . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
5 Superfici parametriche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
5.1 Rappresentazione di superfici nello spazio . . . . . . . . . . . . . . . . . 121
5.2 Piani . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
5.2.1 Forma parametrica di un piano passante per l’origine . . . . 123
5.2.2 Forma parametrica di un piano generico . . . . . . . . . . . . . 126
Indice xi

5.3 Superfici di rivoluzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129


5.3.1 Superficie sferica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
5.3.2 Superficie torica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
5.3.3 Ellissoide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
5.3.4 Cilindro retto a base circolare . . . . . . . . . . . . . . . . . . . . . 135
5.3.5 Superficie conica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
5.4 Superfici rigate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
5.5 Real life applications: mappatura di pattern . . . . . . . . . . . . . . . . 143
5.6 Real life applications: St. Mary Axe . . . . . . . . . . . . . . . . . . . . . 145
5.7 Piano tangente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
5.8 Real life applications: creazione di texture . . . . . . . . . . . . . . . . . 149
6 Curve Freeform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
6.1 Curve di Bézier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
6.1.1 Algoritmo di De Casteljau . . . . . . . . . . . . . . . . . . . . . . . 157
6.2 Proprietà delle curve di Bézier . . . . . . . . . . . . . . . . . . . . . . . . . . 160
6.3 Raccordo di curve di Bézier . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
6.4 Real life applications: le curve di Bézier nei font True Type . . . . 168
6.5 Curve B-spline . . . . . . . . . . . . . . . . . . . . . . . . . ......... . . . 169
6.6 Curve NURBS . . . . . . . . . . . . . . . . . . . . . . . . . ......... . . . 172
7 Superfici Freeform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
7.1 Superfici di Bézier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
7.2 Proprietà delle superfici di Bézier . . . . . . . . . . . . . . . . . . . . . . . 180
7.3 Raccordo di superfici di Bézier . . . . . . . . . . . . . . . . . . . . . . . . . 181
7.4 Superfici B-spline e NURBS . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
8 Curve e superfici di suddivisione . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
8.1 Curve di suddivisione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
8.1.1 L’algoritmo di Chaikin . . . . . . . . . . . . . . . . . . . . . . . . . . 192
8.1.2 Le B-spline come curve di suddivisione . . . . . . . . . . . . . 195
8.2 Superfici di suddivisione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
8.3 Real life applications: l’animazione digitale . . . . . . . . . . . . . . . . 203
8.4 Real life applications: la stampa 3D . . . . . . . . . . . . . . . . . . . . . . 204
Riferimenti bibliografici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Indice analitico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Gli Autori

Edie Miglio è Professore Associato di Analisi Numerica presso il Dipartimento di


Matematica del Politecnico di Milano. Si occupa di modellistica numerica per
problemi differenziali con particolare riferimento alla dinamica dei fluidi a super-
ficie libera e geodinamica. È stato responsabile di diversi progetti di ricerca
finanziati da industrie. È docente di Metodi Numerici nell’ambito dei corsi di
Laurea in Ingegneria e Design.

Nicola Parolini è Professore Associato di Analisi Numerica presso il Dipartimento


di Matematica del Politecnico di Milano. Si occupa di modellistica numerica per
problemi differenziali con particolare riferimento alla dinamica dei fluidi a superficie
libera e all’interazione fluido-struttura. Da sempre interessato allo sviluppo di
modelli matematici con applicazioni in ambito industriale, è stato responsabile di
numerosi progetti di ricerca e consulenza finanziati da partner industriali. Tiene corsi
di Metodi Numerici e Calcolo Scientifico in corsi di Laurea di Ingegneria e Design.
Recentemente si è anche dedicato a progetti di formazione rivolti ad insegnanti di
matematica delle scuole secondarie e ad attività di divulgazione scientifica.

Anna Scotti è ricercatrice presso il Dipartimento di Matematica del Politecnico di


Milano. Si è laureata in Ingegneria Aeronautica nel 2006 e ha conseguito il dot-
torato di ricerca in Ingegneria Matematica nel 2010. Da alcuni anni tiene corsi di
Matematica per studenti di Design. La sua attività di ricerca si concentra sui metodi
di approssimazione numerica applicati a problemi nell’ambito delle geoscienze,
quali il flusso in mezzi porosi e la geomeccanica.

Christian Vergara è professore associato di Analisi Numerica dal 2015, attual-


mente presso il LABS, Dipartimento di Chimica, Materiali e Ingegneria Chimica
“Giulio Natta”, Politecnico di Milano. Ha ottenuto il titolo di Dottore di Ricerca con
un dottorato in Ingegneria Matematica nel 2006. I suoi principali interessi di ricerca
sono la approssimazione numerica per problemi di interazione fluido-struttura e di
accoppiamento eterogeneo, la modellazione numerica del sistema cardiovascolare,
sia in termini di fluido-dinamica del sangue che di attività elettrica del cuore, e
l’applicazione a casi di interesse clinico.

xiii
Richiami di base
1

Non tutto ciò che può essere contato conta e non tutto ciò che
conta può essere contato.
(A. Einstein)

In questo capitolo si fornisce un breve richiamo degli insiemi numerici e delle


loro proprietà. Si dà inoltre una breve introduzione alle funzioni, al concetto di
limite e a quello di derivata. Si forniscono inoltre le basi della trigonometria
e delle funzioni polinomiali, esponenziali e logaritmiche.

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).

1.1 Insiemi numerici

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

© Springer-Verlag Italia S.r.l., part of Springer Nature 2019 1


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_1
2 1 Richiami di base

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

risultato, apparentemente paradossale, è stato dimostrato da Georg Cantor a fine


1800.
Un altro insieme di numeri che contiene i numeri razionali, è quello dei numeri
algebrici. Questi ultimi sono le soluzioni delle equazioni polinomiali del tipo

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 è π.

1.2 Richiami di trigonometria

La trigonometria è la branca della matematica che studia le relazioni che sussistono


tra gli angoli ed i lati di un triangolo. Alla base della trigonometria vi è il Teorema
di Talete (si veda Figura 1.2).

Teorema 1.1 Una retta parallela ad un lato di un triangolo taglia gli altri due lati
del triangolo in modo proporzionale.

Con riferimento al triangolo di Figura 1.2 si ha quindi che:

|AB  | |AC  |
= ,
|B  B| |C  C|

dove con |P Q| si è indicata la lunghezza del segmento di estremi P e Q, si veda


Capitolo 2. Come diretta conseguenza del Teorema di Talete si ha che

|AB  | |AC  | |B  C  | |AC  |


= e = . (1.1)
|AB| |AC| |BC| |AC|
4 1 Richiami di base

C

θ
A B B

Figura 1.2 Rappresentazione grafica del Teorema di Talete


C

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

riferimento alla Figura 1.3, si ha, per il Teorema di Pitagora, che


|AC|2 = |AB|2 + |BC|2
e dividendo entrambi i membri per |AC|2 si ottiene
   
|AB| 2 |BC| 2
+ = (cos(θ))2 + (sin(θ))2 = 1. (1.2)
|AC| |AC|
La precedente relazione è detta relazione fondamentale della trigonometria.
Combinando la prima e la seconda delle (1.1) si ha anche che
|BC| |B  C  |
= ,
|AB| |AB  |
cioè il rapporto tra le lunghezze dei cateti è costante; a tale costante viene dato il
nome di tangente dell’angolo θ e si indica con tan(θ). Si noti che
|BC| |BC| |AC| sin(θ)
tan(θ) = = = ,
|AB| |AC| |AB| cos(θ)
cioè la tangente è il rapporto tra il seno ed il coseno dell’angolo.
Le definizioni fornite di seno, coseno e tangente di un angolo permettono di
comprenderne a fondo il significato geometrico che sarà di fondamentale importanza
nel seguito del testo.

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(θ).

Dalle seguenti relazioni, ricaviamo che

sin(θ)
C2 = C1 = C1 tan(θ).
cos(θ)

B
I

C2
θ
C A

C1
Figura 1.5 Triangolo rettangolo con cateti e ipotenusa

Bisogna, tuttavia, sottolineare come le definizioni geometriche siano valide a


rigore solo quando l’ampiezza dell’angolo in A è compresa tra 0 e 90◦ . L’estensione
al caso di angolo qualunque richiede l’introduzione della circonferenza goniometrica
che sarà oggetto della Sezione 1.4.1. In questo contesto facciamo solo notare come la
circonferenza goniometrica riprenda le definizioni appena date nel caso particolare
in cui l’ipotenusa del generico triangolo rettangolo abbia lunghezza unitaria.

1.3 Introduzione alle funzioni

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

∀ε > 0, ∃δ > 0 tale che, se x − a < δ, allora | f (x) − b| < ε,

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 −

quando la funzione assume valori arbitrariamente vicini a b qualora x si avvicini ad


a da sinistra. In termini rigorosi, ciò accade quando

∀ε > 0, ∃δ > 0 tale che, se a − x < δ, allora | f (x) − b| < ε,

si veda la Figura 1.7 in alto a destra.


Si dice che una funzione ammette limite per x = a e che il suo valore è b se

lim f (x) = lim f (x) = b


x→a + x→a −

e si indica nel seguente modo


lim f (x) = b,
x→a
1.3 Introduzione alle funzioni 9

cioè il limite di una funzione quando x si avvicina ad un valore a è pari a b se


la funzione assume valori arbitrariamente vicini a b qualora x si avvicini ad a. In
termini rigorosi, ciò accade quando

∀ε > 0, ∃δ > 0 tale che, se |x − a| < δ, allora | f (x) − b| < ε,

si veda la Figura 1.7 in basso.


Nelle precedenti definizioni sia a sia b possono assumere il valore +∞ o −∞.
Non ci soffermiamo qui sulla definizione rigorosa di limite nel caso in cui a e/o b
assumano valore infinito né sulle procedure per il calcolo dei limiti. Per maggiori
dettagli si veda ad esempio [5]. Tuttavia, a scopo illustrativo, forniamo di seguito tre
esempi di limiti di questo tipo.

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

lim f (x) = +∞, lim f (x) = −∞.


x→1+ x→1−

x=1 x

Figura 1.8 Esempio di una funzione con limiti infiniti per x → 1


10 1 Richiami di base

Esempio 1.5

Data la funzione f (x) = x 3 − 1 (rappresentata in Figura 1.9),

lim f (x) = +∞.


x→+∞

x=1 x

Figura 1.9 Esempio di una funzione che ammette un limite infinito per x → +∞

1.4 Esempi di funzioni particolari

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.

1.4.1 Funzioni trigonometriche

Una particolare classe di funzioni è costituita dalle funzioni trigonometriche che,


come anticipato nella Sezione 1.2, consentono di estendere la definizione di seno e
coseno al caso di un angolo di ampiezza arbitraria. Per esse, la variabile assume il si-
gnificato di angolo, perciò esse rivestono una particolare importanza nella geometria
e di conseguenza nel design.
L’estensione del concetto di seno e coseno passa attraverso l’introduzione della
cosiddetta circonferenza goniometrica cioè la circonferenza di raggio unitario e di
centro C. Sia θ l’angolo compreso fra l’asse orizzontale e una semiretta che parte
da C e che interseca la circonferenza in P, si veda Figura 1.10. L’angolo θ è spesso
misurato in radianti. Dato un angolo θ misurato in gradi, θ = X ◦ , il suo valore
1.4 Esempi di funzioni particolari 11


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:

– Seno dell’angolo θ la lunghezza del segmento che unisce Q a P.


– Coseno dell’angolo θ la lunghezza del segmento che unisce C a Q.

Le definizioni appena fornite ovviamente coincidono con quelle presentate nella


Sezione 1.2 per θ ∈ [0, π/2]. Si noti come la lunghezza di un segmento si intenda
qui con segno, in particolare essa è positiva (negativa) muovendosi da sinistra verso
destra (da destra verso sinistra) o dal basso verso l’alto (dall’alto verso il basso).
Seno e coseno quindi possono assumere valori compresi fra −1 e 1 (estremi inclusi).
In Tabella 1.1 sono riportati i valori di seno e coseno per alcuni angoli θ ∈ [0, π/2].
Inoltre, notiamo che le funzioni seno e coseno assumono valori positivi o negativi
in accordo con la Tabella 1.2.
Per estendere i valori delle funzioni seno e coseno riportati in Tabella 1.1 (ma in
generale anche per tutti gli altri valori di θ ∈ [0, π/2]), ad angoli maggiori di π/2 si

Figura 1.10 Definizione


delle funzioni seno e coseno
P

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

π<θ< <0 <0 >0
2

< θ < 2π <0 >0 <0
2

possono utilizzare le seguenti relazioni:

sin(π − θ) = sin(θ) cos(π − θ) = − cos(θ),


sin(π + θ) = − sin(θ) cos(π + θ) = − cos(θ),
sin(2π − θ) = − sin(θ) cos(2π − θ) = cos(θ),

illustrate in Figura 1.11.

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

Dato l’angolo θ = 56 π(= 150◦ ), il seno e il coseno corrispondenti sono dati


da
   
sin 56 π = sin π − 16 π = sin( 16 π) = 21 ,
    √
cos 56 π = cos π − 16 π = − cos( 16 π) = − 23 .
1.4 Esempi di funzioni particolari 13

(a) (b) (c)

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

Dato l’angolo θ = 45 π(= 225◦ ), il seno e il coseno corrispondenti sono dati


da
    √
sin 45 π = sin π + 41 π = − sin( 41 π) = − 22 ,
    √
cos 45 π = cos π + 41 π = − cos( 41 π) = − 22 .

Esempio 1.8

Dato l’angolo θ = 53 π(= 300◦ ), il seno e il coseno corrispondenti sono dati


da
    √
sin 53 π = sin 2π − 13 π = − sin( 13 π) = − 23 ,
    √
cos 53 π = cos 2π − 13 π = − cos( 13 π) = − 23 .

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

(a) y (b) y (c) y


π

π π
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

Dato il triangolo rettangolo ABC mostrato in Figura 1.5, se il cateto AC ha


lunghezza 4 e l’angolo θ = π3 , allora la lunghezza dell’ipotenusa è data da

AC 4
BC = = = 8,
cos(θ) 1/2

e la misura dell’altro cateto è data da



3
AB = BC sin(θ) = 8 .
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

1.4.2 Funzioni polinomiali

N N quantità A1 , . . . , A N , una loro combinazione lineare è definita come


Date
j=1 β j A j , con β j coefficienti scalari, di cui almeno uno non nullo. Una funzione
1.4 Esempi di funzioni particolari 15

y y

x x

Figura 1.14 Esempio di polinomio di grado 1 (retta, a sinistra) e polinomio di grado 3 (a destra)

polinomiale è data dalla combinazione lineare di potenze della variabile x, cioè


N
f (x) = βjx j,
j=0

dove i β j sono i coefficienti della combinazione lineare e N < ∞.


Se la funzione polinomiale ammette x n come potenza di grado massimo (β j =
0, j > n) si dice che il polinomio è di grado pari a n. Ad esempio, se n = 0 si ha
f (x) = β0 , cioè una funzione costante; se n = 1 si ha f (x) = β0 + β1 x, cioè una
retta; se n = 2 si ha f (x) = β0 + β1 x + β2 x 2 , cioè una parabola; e così via. Si fa
notare che per un polinomio di grado n, il numero di punti in cui il suo grafico passa
da crescente a decrescente (o viceversa) è al più n − 1 (si veda Figura 1.14).

1.4.3 Funzioni esponenziali e logaritmiche

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.

Per i logaritmi valgono inoltre le seguenti proprietà:

loga (1) = 0 (infatti a 0 = 1), loga (b) = − loga (1/b),


loga (b)
 +  loga (c) = loga (bc), loga (bc ) = c loga (b),
loga a b = b.
16 1 Richiami di base

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.

Una funzione è di tipo esponenziale se è della forma

f (x) = a x , a = 0,

si veda Figura 1.15.


Analogamente, si introduce la funzione logaritmica

f (x) = loga x, a > 0, x > 0,

si veda Figura 1.16.


Un valore notevole della base a usato sia per le funzioni esponenziali che per
quelle logaritmiche è dato dal numero di Nepero e. Esso è un numero trascendente,
il cui valore è pari a 2.7182.... ed assieme a π è tra le costanti più importanti in
matematica perché compare in alcune identità fondamentali2 La funzione e x è l’unica

2 Si pensi ad esempio alla celebre identità eiπ + 1



= 0, con i = −1 l’unità immaginaria necessaria
per definire i numeri complessi.
1.4 Esempi di funzioni particolari 17

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.

1.5 Continuità e derivabilità

Una funzione si dice essere continua per x = a se

lim f (x) = f (a).


x→a

Se ciò non succede, la funzione si dice essere discontinua in x = a. Ciò può


avvenire se:

i) I limiti destro e sinistro esistono e sono finiti ma assumono valori diversi


(discontinuità di prima specie o “a salto”).
ii) Almeno uno dei due limiti destro e sinistro non esiste o assume valore ±∞
(discontinuità di seconda specie).
iii) Il limite sinistro e destro esistono finiti e sono coincidenti, ma la funzione assu-
me un valore diverso oppure non è ivi definita (discontinuità di terza specie o
“eliminabile”).

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

Figura 1.18 Rappresentazione geometrica del concetto di derivata

Esempio 1.15

La funzione y(x) = sin(x)


x presenta una discontinuità di terza specie in x = 0.
Infatti x = 0 non appartiene al dominio perché annulla il denominatore.
Tuttavia, si ha
sin(x) sin(x)
lim = lim = 1.
x→0− x x→0 + x

Si consideri una funzione f continua in D1 . Allora, se per x = a esiste il limite

f (a + h) − f (a)
lim ,
h→0 h

quest’ultimo prende il nome di derivata di f per x = a e si indica con f  (a). Dal


punto di vista geometrico assume il significato di coefficiente angolare della retta
tangente ad f per x = a, si veda il Capitolo 4 per la definizione di retta tangente. In
altri termini, si ha f  (a) = tan(θ), con θ l’angolo compreso fra l’asse orizzontale e
la tangente, si veda Figura 1.18.
Esempi del calcolo della derivata di funzioni note sono

(x) = 1, (x 2 ) = 2x, (x n ) = nx n−1 ,


(k f ) = k f  (per k costante),
(sin(x)) = cos(x), (cos(x)) = − sin(x).
20 1 Richiami di base

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

Data la funzione f (x) = cos(x)x 3 , il valore della derivata di f nel punto


x = π vale
   
f  (π) = f  (x)|x=π = (cos(x)) x 3 + cos(x) x 3 |x=π

 
= − sin(x)x 3 + 3 cos(x)x 2 |x=π = −3π 2 .

Richiamiamo infine la regola di derivazione per le funzioni composte. Date due


funzioni a valori reali f (x) e g(x), la loro composizione è definita dalla funzione

h(x) = g( f (x)),

dove la funzione f , in questo caso, risulta essere l’argomento della funzione g. È


possibile calcolare la derivata della funzione h rispetto al suo argomento x attraverso
la regola di derivazione delle funzioni composte, che è data dalla seguente relazione
h  (x) = g  ( f (x)) 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

applicando la regola di derivazione delle funzioni composte, si ha che la


derivata di h è data da

h  (x) = g  ( f (x)) f  (x) = − sin(x 2 + 2x − 1)(2x + 2).

1.6 Un cenno alle funzioni di due variabili

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).

Figura 1.19 Grafico di una funzione di due variabili


22 1 Richiami di base

∂f ∂f
Figura 1.20 Interpretazione geometrica delle derivate parziali , come pendenza di due
∂x1 ∂x2
rette tangenti al grafico della funzione

Il concetto di limite si estende in maniera naturale dal caso di funzione di una


variabile. In questo caso abbiamo

lim f (x1 , x2 ) = l
(x1 ,x2 )→(a,b)

se il valore della funzione tende a l quando x1 e x2 si avvicinano ad a e b ri-


spettivamente. Ciò permette di estendere in maniera naturale anche il concetto di
continuità.
Per quanto riguarda il concetto di derivata, notiamo che in questo caso possiamo
definire due derivate distinte, una fatta rispetto alla variabile x1 e l’altra rispetto
alla variabile x2 . Queste prendono il nome di derivate parziali e si indicano con
∂f ∂f
∂x j , j = 1, 2. Dal punto di vista geometrico la derivata parziale ∂x j (a, b) è il
coefficiente angolare della retta tangente alla superficie f nel punto (a, b) e la cui
proiezione sul piano x1 x2 è parallela a x j come mostrato in Figura 1.20.
Ciò è equivalente alla seguente definizione in termini di rapporto incrementale:
data una funzione f (x1 , x2 ) continua in D1 ⊆ D, per (a, b) ∈ D1 si ha

∂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

Punto! Due punti! . . . ma sì, fai vedere che abbondiamo...


(Dal film Totò, Peppino e la malafemmina)

In questo capitolo si introducono i concetti di punti e vettori che rappresentano


le entità matematiche elementari sulla base delle quali sarà possibile definire
una rappresentazione analitica di curve e superfici nel piano e nello spazio.

La rappresentazione analitica (ovvero mediante espressioni matematiche) di cur-


ve e superfici risulta essere fondamentale in vista della progettazione e costruzione di
edifici e oggetti. Ad una rappresentazione, diciamo, artistica di una curva o superfi-
cie, creata dalla mente e dalla mano del designer in base a criteri estetici e funzionali,
ne deve quindi seguire una quantitativa, esprimibile mediante formule matematiche
precise che ne garantiscano la riproducibilità e l’implementazione in software op-
portuni. Questo (apparente) ossimoro fra creatività artistica e rigore matematico sta
alla base della progettazione nell’ambito del design.
La rappresentazione analitica di curve e superfici si basa sulla creazione di un
legame, espresso mediante formule matematiche, fra i punti dello spazio che co-
stituiscono la curva o la superficie. Perciò, risulta fondamentale come primo passo
saper rappresentare i punti nello spazio. Vedremo come ai punti risulta intimamente
connesso il concetto di vettore.

© Springer-Verlag Italia S.r.l., part of Springer Nature 2019 25


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_2
26 2 Punti e vettori nello spazio

2.1 Sistemi di riferimento e punti

Al fine di individuare in maniera non arbitraria la posizione di un punto nello spazio,


dobbiamo introdurre un sistema di riferimento, cioè un ambiente nel quale misurare
le distanze rispetto ad alcuni punti di riferimento. Il più noto e utilizzato è quello
cartesiano, dal nome del filosofo e scienziato Cartesio che lo propose nel XVII secolo.

2.1.1 Sistema di riferimento cartesiano

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 ,

mentre la distanza assoluta è definita da

d P Q = |x P − x Q |,

dove il simbolo | · | rappresenta il valore assoluto. Ovviamente si ha d P→Q =


−d Q→P . Il segmento che unisce P a Q viene indicato con P Q e la sua lunghezza
con |P Q|, che di fatto corrisponde alla distanza assoluta d P Q .

P O Q

x
xP = − 32 xQ = 2

Figura 2.1 Localizzazione dei punti P e Q in un sistema cartesiano monodimensionale. Le


corrispondenti coordinate x Q > 0 e x P < 0 sono date dalla distanza con segno dall’origine O
2.1 Sistemi di riferimento e punti 27

Figura 2.2 Proiezione


ortogonale H di P su r

P
r

Il passaggio al caso bidimensionale, ovvero alla rappresentazione di un punto nel


piano, si ottiene considerando due rette orientate. Nel caso del sistema cartesiano
considereremo due assi perpendicolari che chiameremo asse x ed asse y. Al fine di
misurare le distanze del punto dall’origine (identificata come il punto di intersezione
degli assi), definiamo innanzitutto la distanza fra un punto P ed una retta r: essa è
data da d P→r = d P→H , dove H è il punto di proiezione ortogonale di P su r, si
veda Figura 2.2.
La posizione di un punto P è quindi individuata univocamente dalla sua distanza
x P dall’asse y (ascissa) e dalla sua distanza y P dall’asse x (ordinata). Si userà di
seguito la notazione P = (x P , y P ) per evidenziare la corrispondenza fra un punto
P e le sue coordinate x P , y P . Ovviamente si ha O = (0, 0). La distanza assoluta fra
due punti P e Q è data dal teorema di Pitagora ed è definita da

d P Q = (x P − x Q )2 + (y P − y Q )2 .

L’estensione al caso tridimensionale, ovvero di rappresentazione di punti nello


spazio, è facilmente ottenibile considerando un terzo asse orientato (z) perpendicolare
ai precedenti e in modo che i tre assi costituiscano una terna destrorsa1 . Le tre
coordinate che identificano un punto P nello spazio sono date dalle tre distanze con
segno di P dai tre piani π yz , πx z , πx y , ovvero
 
P = x P = d P→π yz , y P = d P→πx z , z P = d P→πx y ,

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 .

1 Una terna di assi orientati a, b e c che si intersecano in un punto O


si dice destrorsa se un osservatore
posto con i piedi in O e con la testa rivolta nel verso di c, per sovrapporre a su b ruotando a nel
piano di a e b di un angolo θ < π, vedrebbe una rotazione in senso orario.
28 2 Punti e vettori nello spazio

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.

In generale le operazioni tra punti non sono lecite. Si considerino, ad esempio


due punti P e Q rappresentati in due sistemi di riferimento diversi x y ed x  y  (si
veda la Figura 2.3); nel primo sistema di riferimento le coordinate dei due punti sono
rispettivamente P = (1, 1) e Q = (2, 0.5), mentre nel secondo P = (−3, −2) e
Q = (−2, −2.5). Supponiamo di definire la somma dei punti come:

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

Figura 2.3 Somma tra punti y


in due sistemi di riferimento

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.

2.1.2 Altri sistemi di riferimento

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

Figura 2.4 Esempio di


superficie reale ottenuta
come composizione di
triangoli (fotografia
realizzata da Roberto Lapi,
riprodotta su gentile
concessione di Fiera Milano
S.p.A.)

P
yP

ρP

θP
O xP x

Figura 2.5 Sistema di coordinate polari


2.1 Sistemi di riferimento e punti 31

Figura 2.6 Sistema di z


coordinate sferiche

θP
ρP

O yP
xP φP
P y

Le precedenti espressioni permettono di passare dalle coordinate polari a quelle


cartesiane e viceversa. Nello spazio, le coordinate polari diventano cilindriche ag-
giungendo la coordinata z. Queste sono particolarmente utili nel caso di simmetrie
cilindriche.
Infine, nel caso di simmetrie sferiche, un possibile sistema di riferimento alter-
nativo per rappresentare punti nello spazio è dato dalle coordinate sferiche, si veda
Figura 2.6. Le coordinate in questo caso sono, oltre alla distanza dall’origine ρ (ana-
loga al caso precedente), l’angolo θ fra il segmento O P  e l’asse x, con P  proiezione
ortogonale di P su πx y , e l’angolo ϕ fra il segmento O P e l’asse z. Di conseguenza
si ha

x P = ρ P sin (ϕ P ) cos (θ P ) , y P = ρ P sin (ϕ P ) sin (θ P ) , z P = ρ P cos (θ P ) ,

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.

2.2 Real life applications: le coordinate geografiche

Ogni punto della superficie terrestre è individuato da due numeri, la latitudine


e la longitudine. Si tratta di due angoli che formano un sistema di coordina-
te sulla superficie della terra (che possiamo considerare approssimativamente
una sfera di raggio R). Dato un punto sulla superficie della terra identificato
in coordinate sferiche dalla terna (R, θ, φ), la sua latitudine δ è il complemen-
tare dell’angolo θ, quindi determinata dalla relazione δ = 90◦ − θ, e la sua
longitudine l è definita dalla relazione l = φ − 180◦ . In base a questa defini-
zione il polo Nord corrisponde a δ = 90◦ ed il polo Sud a δ = −90◦ (anche
indicato come 90◦ Sud). Le circonferenze ottenute intersecando la superficie
terrestre con piani perpendicolari all’asse di rotazione sono formate da punti
con la stessa latitudine e sono dette paralleli: in particolare il parallelo con
δ = 0◦ è l’Equatore, mentre a δ = ±23◦ 26 16” si trovano i Tropici. Le circon-
ferenze ottenute invece tagliando la superficie con piani passanti per l’asse di
rotazione contengono punti con la stessa longitudine e sono dette meridiani. Il
meridiano che corrisponde a l = 0 passa per Greenwich (Londra). Conoscendo
il raggio della terra e le coordinate di due città è possibile calcolarne la distanza
“in linea d’aria”. Consideriamo ad esempio Milano, le cui coordinate sono ap-
prossimativamente δ1 = 45.46◦ , l1 = 9.19◦ , e La Havana, con δ2 = 23.12◦ e
l2 = −82.39◦ . La distanza più breve è quella percorsa lungo una circonferenza
massima, cioè ottenuta tagliando la superficie terrestre con un piano passante
per il centro, come mostrato in Figura 2.7. Per calcolare la lunghezza dell’arco
di circonferenza dal punto M (Milano) al punto H (La Havana) è necessario
introdurre la legge dei coseni in geometria sferica. Consideriamo un triangolo
formato da circonferenze massime come mostrato in Figura 2.7. Se indichiamo
con a, b e c gli archi che formano i lati del triangolo sferico e con α, β e γ i
corrispondenti angoli sottesi dal centro della sfera, mentre con C indichiamo
l’angolo opposto all’arco c sulla superficie, la legge sferica dei coseni afferma
che
cos(γ) = cos(α) cos(β) + sin(α) sin(β) cos(C).
Osserviamo che nel nostro caso α e β sono legati alla latitudine delle due
2.2 Real life applications: le coordinate geografiche 33

città, in particolare α = 90◦ − δ1 = 44.54◦ e β = 90◦ − 23.12◦ = 66.89◦ .


Inoltre l’angolo C corrisponde alla differenza fra le longitudini delle due città,
C = l1 − l2 = 91.56◦ . Otteniamo quindi cos(γ) = 0.2622 cioè γ = 74.80◦ .
Sapendo che il raggio medio della Terra è R = 6371km otteniamo la distanza
cercata con la formula
γ
M H = Rπ = 8317km.
180◦

Figura 2.7 A sinistra, distanza fra due punti sulla superficie terrestre; a destra, legge dei
coseni in geometria sferica

Si introduce di seguito un esempio pratico in cui il concetto di coordinate non è


riferito come usualmente accade all’ambito geometrico. In particolare, nel seguente
caso le coordinate rappresentano un modo per rappresentare i colori.

2.3 Real life applications: gli spazi dei colori

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.

Figura 2.8 Spazi di colore RGB e HSV

2.4 Punti e vettori

In questa sezione introdurremo il concetto di vettore, le operazioni ad esso collegate


e il suo rapporto con il concetto di punto precedentemente introdotto e descritto.

2.4.1 Definizione di vettore

Un vettore v è un’entità matematica caratterizzata da un modulo o intensità v, da


una direzione e da un verso (si veda Figura 2.9).
A differenza del punto, che ha una precisa localizzazione ma non direzione e
lunghezza, il vettore non ha una precisa localizzazione. In altri termini, un vettore
rappresenta sempre un incremento (o decremento) di qualche grandezza fisica, come
lo spostamento o la forza effettiva, giusto per fornire qualche esempio.
2.4 Punti e vettori 35

(a) (b) (c) (d)


v1 v1 v1 v1

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

2.4.2 Operazioni coi vettori: approccio geometrico

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.10 Somma di vettori con il metodo del parallelogramma

(a) (b) (c)


v1
v1 v1
v2 v2
v2

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

differenza congiunga la punta di w con la punta di v (metodo “punta-coda”).


Il prodotto scalare fra due vettori v e w è invece definito come la lunghezza vw della
proiezione di v su w moltiplicata per il modulo di w, si veda Figura 2.13. Il risultato
è quindi uno scalare e l’operazione viene indicata con v · w. Equivalentemente, se θ
è l’angolo fra i due vettori, si ha

v · w = v w cos θ.

Se esso è nullo e v  = 0 e w  = 0, allora si ha θ = 21 π o θ = 23 π, cioè i due vettori


sono ortogonali.
Un altro tipo di prodotto fra vettori è dato dal prodotto vettoriale, indicato co-
me v × w, che restituisce il vettore ortogonale ai due precedenti, e il cui verso è
identificato dalla regola della vite (immaginando di avvitare v su w, si veda Figura
2.14) e di modulo pari a v w sin θ. Si noti come il prodotto vettoriale sia stato
definito direttamente nel caso tridimensionale non essendoci una controparte in due
dimensioni.
È possibile anche definire operazioni fra punti e vettori. In particolare, si può
pensare di sommare ad un punto P un vettore v. Questa operazione consiste nel
“traslare” il punto P di una quantità che coincide proprio con v. Quello che si
ottiene è un nuovo punto Q = P + v, si veda Figura 2.15. Si fa notare come la
2.4 Punti e vettori 37

Figura 2.14 Prodotto vettore e interpretazione del verso del vettore risultante secondo la regola
della vite

Figura 2.15 Somma tra Q


punto e vettore

P v

precisa localizzazione di P e la delocalizzazione di v permettano di individuare


univocamente Q indipendentemente dal sistema di riferimento.
Concludiamo questa sezione facendo notare che dati due vettori non paralleli u e
v nel piano, ogni altro vettore z può essere rappresentato come combinazione lineare
di u e v, ossia

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

2.4.3 Relazione fra punti e vettori

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 .

In modo del tutto analogo, il modulo di un vettore nello spazio è dato da



v = |P Q| = (x Q − x P )2 + (y Q − y P )2 + (z Q − z P )2 .

Consideriamo ora la base canonica precedentemente introdotta, cioè la base for-


mata dai vettori di modulo unitario allineati con gli assi cartesiani e rappresentiamo
un vettore in tale sistema. Il vettore v che congiunge P a Q può essere rappresentato
algebricamente nel seguente modo
⎡ ⎤ ⎡ ⎤
vx xQ − xP
v = ⎣ vy ⎦ = ⎣ yQ − yP ⎦ , (2.1)
vz zQ − zP

Q
yQ v

P
yP

xP xQ x

Figura 2.16 Vettore che congiunge i punti P e Q


2.4 Punti e vettori 39

dove con vx , v y e vz si sono indicate le componenti di v rispetto agli assi cartesiani


x, y e z. D’ora in avanti, se non diversamente specificato, le coordinate di un vettore
verranno intese rispetto ad assi cartesiani. Notiamo che abbiamo usato la notazione
di indicare un vettore v come colonna. Qualora lo si volesse rappresentare come
vettore riga, lo si indicherà con v T .
Con questa scelta è facile vedere come le componenti dei vettori che costituiscono
la base canonica nel piano siano
 
1 0
i= , j= ,
0 1

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

I vettori i, j e k che costituiscono la base canonica, essendo di modulo unitario, sono


versori.
Nel piano, ogni vettore v può essere rappresentato in maniera semplice come
combinazione lineare dei versori allineati con gli assi cartesiani:

v = vx i + v y j.

Analogamente, ogni vettore nello spazio è dato da

v = vx i + v y j + vz k,

dove vx , v y e vz costituiscono le componenti cartesiane del vettore.


40 2 Punti e vettori nello spazio

Esempio 2.3

Dato il vettore v = [3, −4]T nel piano, il suo modulo è dato da



v = 32 + (−4)2 = 5.

Le componenti del versore 


v associato a v sono quindi date da
 
vx /v 3/5

v= = .
v y /v −4/5

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.

2.4.4 Operazioni coi vettori: approccio algebrico

Grazie alla definizione di un vettore per componenti, possiamo di seguito reinter-


pretare per via algebrica le operazioni coi vettori definite precedentemente per via
geometrica.
La somma fra due vettori è un vettore definito per via algebrica nel seguente modo
⎡ ⎤
vx + wx
v + w = ⎣ vy + wy ⎦ ,
vz + wz

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

Figura 2.17 Somma e differenza di vettori

Analogamente, moltiplicando per uno scalare un vettore v nello spazio, si ha


⎡ ⎤
αvx
αv = ⎣ αv y ⎦ .
αvz

Il nuovo vettore w = αv è per costruzione parallelo a v. Infatti, considerando per


semplicità il caso piano, è facile mostrare che, se θ è l’angolo che v forma con
l’asse x, si ha che tan θ = v y /vx . Tuttavia, poiché w y /wx = (αv y )/(αvx ) si anche
w y /wx = tan θ.
Nella Sezione 2.4.2, abbiamo introdotto il prodotto scalare tra due vettori v e w
come
v · w = vw cos θ.
La stessa operazione può essere definita per via algebrica nel seguente modo

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

Come da definizione geometrica, il prodotto scalare rappresenta la lunghezza del


vettore vw ottenuto proiettando v su w, moltiplicata per la lunghezza di w stesso (o
viceversa). Infatti, per costruzione e grazie alla (2.2) si ha
v·w v·w
vw  = v cos θ = v = =v·
w. (2.3)
v w w

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.

La lunghezza del segmento AH può essere calcolato come proiezione orto-


gonale di AC su AB, per cui, notando che AB = [2, 1] e AC = [1, 2], dalla
(2.3) si ha

AB · AC 2·1+1·2 4 5
|AH | = = √ = .
|AB| 5 5
L’altezza |C H | è quindi data dal teorema di Pitagora

 3 5
|C H | = |AC|2 − |AH |2 =
5
e l’area è quindi
|AB||C H | 3
A= = .
2 2
2.4 Punti e vettori 43

B
H

O x

Figura 2.18 Calcolo dell’area di un triangolo

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

Dati i vettori v = [2, 1, −3]T e w = [1, 0, 4]T , il prodotto vettoriale fra di


essi è dato da
⎡ ⎤ ⎡ ⎤
1 · 4 − (−3) · 0 4
v × w = ⎣ −2 · 4 + (−3) · 1 ⎦ = ⎣ −11 ⎦ .
2·0−1·1 −1

L’angolo compreso fra i due vettori è invece determinato da


√ 
v × w 42 + 112 + 12 69
sin θ = =√ √ = ,
v w 22 + 12 + 32 12 + 02 + 42 119

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

(v × w) · v =(v y αvz − vz αv y )vx +


(−vx αvz + vz αvx )v y +
(vx αv y − v y αvx )vz = 0,

ovvero i vettori (v × w) e v, avendo prodotto scalare nullo, sono ortogonali.


Analogo risultato si trova calcolando (v × w) · w.

Le operazioni con vettori e punti permettono, dati due punti P0 e P1 e un parametro


scalare α, di definire il punto P dato dalla relazione

P = P0 + α(P1 − P0 ).

Facendo variare α fra 0 e 1 si ha una rappresentazione parametrica dei punti del


segmento P0 P1 , data da
⎡ ⎤
x P0 + α(x P1 − x P0 )
P(α) = ⎣ y P0 + α(y P1 − y P0 )⎦ .
z P0 + α(z P1 − z P0 )

Questo tipo di rappresentazione verrà discussa in dettaglio nel Capitolo 4.

2.5 Coordinate omogenee

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

Figura 2.19 Rappresentazione in coordinate omogenee del piano

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

x = X/W, y = Y /W. (2.5)

Le terne in cui il peso è pari a zero definiscono i punti all’infinito.


In modo analogo lo spazio Euclideo può essere visto come un sottoinsieme di
uno spazio a 4 dimensioni in cui le coordinate sono (X, Y, Z , W ); un punto nello
spazio Euclideo di coordinate (x, y, z) può essere quindi rappresentato in coordinate
omogenee da una quaterna di numeri del tipo (λx, λy, λz, λ) con λ ∈ R e λ = 0.
A rigore la notazione in coordinate omogenee che abbiamo appena introdotto, è
relativa alla rappresentazione dei punti. Il corrispondente vettore p rappresentativo
del punto P di coordinate (x, y) viene scritto in modo diverso a seconda dei contesti:
46 2 Punti e vettori nello spazio

1. Come differenza tra punti, cioè


⎡ ⎤ ⎡ ⎤
x 0
p = P − O = ⎣ y ⎦ − ⎣0⎦; (2.6)
1 1

2. Aggiungendo semplicemente una terza componente pari ad 1, cioè


⎡ ⎤
x
p = ⎣y⎦. (2.7)
1

Consideriamo, ad esempio, i punti A = (3, 5) e B = (2, 1); una la loro rappre-


sentazione in coordinate omogenee è A = (3, 5, 1) e B = (2, 1, 1). Se utilizziamo
la rappresentazione vettoriale dei punti in coordinate omogenee data dalla (2.6)
abbiamo
⎡ ⎤ ⎡ ⎤ ⎡ ⎤
3 0 3
a = A − O = ⎣5⎦ − ⎣0⎦ = ⎣5⎦, (2.8)
1 1 0
⎡ ⎤ ⎡ ⎤ ⎡ ⎤
2 0 2
b = B − O = ⎣1⎦ − ⎣0⎦ = ⎣1⎦. (2.9)
1 1 0
In questo modo possiamo sommare i vettori a e b per ottenere il risultato che ci
aspettiamo applicando la regola del parallelogramma, cioè a + b = [5, 6, 0]T . Se
avessimo utilizzato la rappresentazione vettoriale data dalla (2.7) la somma sarebbe
stata
⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤
3 2 5 2.5
a + b = ⎣5⎦ + ⎣1⎦ = ⎣6⎦ = ⎣ 3 ⎦, (2.10)
1 1 2 1
cioè avremmo ottenuto le coordinate del punto medio del segmento A − B.
In questo testo sarà utilizzata la seconda convenzione che, seppur meno rigorosa,
è quella più comune nel contesto della grafica computazionale dove l’introduzione
delle coordinate omogenee è funzionale alla possibilità di rappresentare tutte le
trasformazioni geometriche (comprese le traslazioni e le trasformazioni prospettiche)
mediante l’operazione di moltiplicazione tra una matrice ed un vettore.

Esempio 2.9
Dati i seguenti punti del piano rappresentati in coordinate omogenee:

( px , p y , w) = (2, 6, 2) ( px , p y , w) = (3, 9, 3) ( px , p y , w) = (3, 9, 0),

verifichiamo di seguito se essi si riferiscano allo stesso punto o meno.


2.5 Coordinate omogenee 47

Dalla prima rappresentazione abbiamo


 
P = px /w p y /w = (1 3) ,

mentre dalla seconda


 
Q = px /w p y /w = (1 3) ,

per cui P = Q. Dalla terza invece abbiamo


 
R = px /w p y /w = (+∞ + ∞) ,

che rappresenta quindi il punto all’infinito sulla retta y = 3x.


Matrici e trasformazioni geometriche
3

Continuai la mia strada, in mezzo alle trasformazioni del


mondo, anch’io trasformandomi.
(Italo Calvino)

In questo capitolo, vengono introdotte le matrici che sono un ingrediente chiave


per definire le trasformazioni geometriche nel piano e nello spazio. Le trasfor-
mazioni geometriche sono, a loro volta, alla base della grafica computazionale
in quanto consentono di descrivere, muovere e deformare entità geometriche
nel piano e nello spazio.

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.

© Springer-Verlag Italia S.r.l., part of Springer Nature 2019 49


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_3
50 3 Matrici e trasformazioni geometriche

3.1 Operazioni tra matrici

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.

3.1.1 Somma e differenza di matrici

È possibile definire l’operazione di somma o differenza tra due (o più matrici) di


dimensioni uguali. Date due matrici A, B ∈ Rn×m la loro somma è data dalla matrice
C ∈ Rn×m di uguali dimensioni definita da
⎡ ⎤ ⎡ ⎤
c11 c12 ... c1m a11 + b12 a12 + b12 · · · a1m + b1m
⎢c21 c22 ... c2m ⎥ ⎢ a21 + b21 a22 + b22 · · · a2m + b2m ⎥
⎢ ⎥ ⎢ ⎥
C = A+B =⎢ . .. .. .. ⎥ = ⎢ .. .. .. .. ⎥,
⎣ .. . . . ⎦ ⎣ . . . . ⎦
cn1 cn2 · · · cnm an1 + bn1 an2 + bn2 · · · anm + bnm

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

la somma C = A + B è data dalla matrice C ∈ R2×3 definita da


  
1 2 −1 −1 1 0 0 3 −1
C = A+B = + = .
2 0 −2 −1 1 1 1 1 −1

Analogamente si definisce l’operazione di differenza tra matrici. Date due matrici


A, B ∈ Rn×m la loro differenza è data dalla matrice C ∈ Rn×m di uguali dimensioni
definita da
⎡ ⎤ ⎡ ⎤
c11 c12 · · · c1m a11 − b12 a12 − b12 · · · a1m − b1m
⎢c21 c22 · · · c2m ⎥ ⎢ a21 − b21 a22 − b22 · · · a2m − b2m ⎥
⎢ ⎥ ⎢ ⎥
C = A−B =⎢ . . . . ⎥=⎢ .. .. .. .. ⎥,
⎣ .. .. . . .. ⎦ ⎣ . . . . ⎦
cn1 cn2 · · · cnm an1 − bn1 an2 − bn2 · · · anm − bnm

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

la differenza C = A − B è data dalla matrice C ∈ R2×3 definita da


⎡ ⎤ ⎡ ⎤ ⎡ ⎤
21 12 1 −1
C = A − B = ⎣3 1⎦ − ⎣1 0⎦ = ⎣2 1 ⎦ .
22 01 2 1
52 3 Matrici e trasformazioni geometriche

3.1.2 Prodotto tra uno scalare e una matrice

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

Dato lo scalare α = 2 e la matrice A ∈ R3×3 definita da


⎡ ⎤
2 1 1
A = ⎣ 1 0 1 ⎦,
−2 1 −1

il prodotto C = α A è dato dalla matrice C ∈ R3×3 definita da


⎡ ⎤ ⎡ ⎤
2 1 1 4 2 2
C = α A = 2⎣ 1 0 1 ⎦ = ⎣ 2 0 2 ⎦.
−2 1 −1 −4 2 −2

3.1.3 Prodotto matriciale

È 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

c11 = a11 b11 + a12 b21 + · · · + a1l bl1 .

Esempio 3.4

Date le matrici A ∈ R3×2 e B ∈ R2×4 definite da


⎡ ⎤
1 2 
−1 1 0 2
A = ⎣ 0 1⎦ B= ,
−2 2 1 1
−1 2

il prodotto C = A B è dato dalla matrice C ∈ R3×4 definita da


⎡ ⎤ ⎡ ⎤
1 2 −1 1 0 2 −5 5 2 4
C = A B = ⎣ 0 1⎦ −2 2 1 1 = ⎣−2 2 1 1⎦ .
−1 2 −3 3 4 0

Un caso particolare di prodotto tra matrici e vettori è rappresentato dal prodotto


tra un vettore riga

uT = u 1 u 2 · · · u n ,
visto come matrice di dimensioni 1 × n e un vettore colonna di pari lunghezza
⎡ ⎤
v1
⎢ v2 ⎥
⎢ ⎥
v = ⎢ . ⎥,
⎣ .. ⎦
vn

visto come matrice di dimensioni n × 1. È immediato verificare che il prodotto


matriciale tra di essi equivale al prodotto scalare tra vettori, infatti applicando le
regole del prodotto matriciale si ha
⎡ ⎤
u1 u2 · · · un v1
⎢ v2 ⎥
⎢ ⎥
uT v = ⎢ .. ⎥ = u 1 v1 + u 2 v2 + · · · + u n vn = u · v.
⎣.⎦
vn
54 3 Matrici e trasformazioni geometriche

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

Come vedremo nella Sezione 3.3, le matrici quadrate 2 × 2 e 3 × 3 saran-


no utilizzate per rappresentare rispettivamente le trasformazioni nel piano e nello
spazio quando si considerano coordinate cartesiane. Analogamente, in coordinate
omogenee, avremo a che fare con matrici 3 × 3 per trasformazioni nel piano e 4 × 4
per trasformazioni nello spazio. L’azione di trasformazione avverrà moltiplicando
una matrice per il vettore (colonna) corrispondente ad un punto. Questo è possibi-
le applicando il prodotto tra matrici in quanto, per esempio, il vettore colonna che
rappresenta un punto nel piano in coordinate cartesiane può essere visto come una
matrice di dimensioni 2 × 1. Analogamente, un vettore colonna che rappresenta un
punto nello spazio corrisponde ad una matrice di dimensioni 3 × 1.

3.2 Alcune matrici particolari

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

La matrice A ∈ R3×3 definita da


⎡ ⎤
200
A = ⎣0 1 0⎦
003

è una matrice diagonale in quanto tutti gli elementi extra-diagonali, ovvero


ai j per i = j, sono nulli.

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

La matrice I3 ∈ R3×3 definita da


⎡ ⎤
100
I3 = ⎣0 1 0⎦
001

è la matrice identità di ordine 3.

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

La matrice A ∈ R3×3 definita da


⎡ ⎤
213
A = ⎣1 3 2 ⎦
320

è simmetrica in quanto ai j = a ji , per ogni i, j = 1, . . . , 3.

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

Data la matrice A ∈ R3×3 definita da


⎡ ⎤
101
A = ⎣2 1 1⎦
313

verifichiamo che la matrice A−1 definita da


⎡ ⎤
2 1 −1
A = ⎣−3 0 1 ⎦
−1 −1 1
è la sua inversa. Infatti, valgono le seguenti identità
⎡ ⎤⎡ ⎤ ⎡ ⎤
101 2 1 −1 100
A A−1 = ⎣2 1 1⎦ ⎣−3 0 1 ⎦ = ⎣0 1 0⎦ = I3 ,
313 −1 −1 1 001

⎡ ⎤⎡ ⎤ ⎡ ⎤
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

Una matrice quadrata invertibile è detta ortogonale se

A−1 = A T ,

ovvero se la sua inversa coincide con la sua trasposta.

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.

3.2.1 Matrici invertibili e determinante

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).

Osservazione 3.1 L’invertibilità di una matrice gioca un ruolo fondamentale anche


quando essa viene utilizzata per definire un sistema lineare. Si consideri, per esempio,

A−1
x

Figura 3.1 Trasformazione e trasformazione inversa


58 3 Matrici e trasformazioni geometriche

un sistema lineare di n equazioni in n incognite



⎪ a11 x1 + a12 x2 + · · · + a1n xn = b1 ,

⎪a x + a x + ··· + a x = b ,
⎨ 21 1 22 2 2n n 2
. (3.1)

⎪ ..


an1 x1 + an2 x2 + · · · + ann xn = bn .

Esso può essere scritto in forma matriciale compatta come

Ax = b,

dove A ∈ Rn×n è la matrice quadrata di elementi ai j con i, j = 1, . . . , n e x =


[x1 , x2 , . . . , xn ]T e b = [b1 , b2 , . . . , bn ]T ∈ Rn sono, rispettivamente, il vettore
delle incognite e dei termini noti.
Se la matrice A è invertibile, il sistema (3.1) ammette una soluzione unica
data da
x = A−1 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 .

Il determinante di una matrice quadrata A di dimensioni 2 × 2 è definito da



a11 a12
detA = det = a11 a22 − a12 a21 ,
a21 a22

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

dove il termine Ci j è il complemento algebrico relativo alla posizione (i, j) definito


dalla relazione
Ci j = (−1)i+ j detAi j ,
3.2 Alcune matrici particolari 59

con Ai j che denota la matrice di dimensioni (n − 1) × (n − 1) (detta minore) ottenuta


da A eliminando la i-sima riga e la j-sima colonna. Si noti come il termine (−1)i+ j
attribuisca segni alternati, positivi e negativi, ai termini della sommatoria.

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.

Data una generica matrice A di dimensioni 3 × 3 definita da


⎡ ⎤
a11 a12 a13
A = ⎣a21 a22 a23 ⎦ ,
a31 a32 a33

il suo determinante calcolato utilizzando lo sviluppo di Laplace (3.2) è dato da

detA = a11 a22 a33 + a12 a23 a31 + a13 a21 a32 − a31 a22 a31 − a11 a23 a33 − a12 a21 a31 .

La cosiddetta regola di Sarrus, applicabile solo alle matrici di dimensioni 3 × 3,


permette di memorizzare facilmente quest’ultima relazione: definita la matrice
rettangolare estesa ottenuta ripetendo a destra della matrice A le sue prime due
colonne
a11 a12 a13 a11 a12
a21 a22 a23 a21 a22 ,
a31 a32 a33 a31 a32

il determinante di A si ottiene sommando i prodotti degli elementi che stanno sulle


3 diagonali principali della matrice estesa (indicati dalle linee rosse) e sottraendo i
prodotti degli elementi che stanno sulle 3 diagonali secondarie (indicati dalle linee
blu).
Il determinante delle matrici gode delle seguenti proprietà:

• Determinante nullo: il determinante di una matrice è nullo se la matrice ha una


riga (o una colonna) composta solo da zeri, oppure se due o più righe (o due o più
60 3 Matrici e trasformazioni geometriche

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

• Determinante del prodotto tra matrici (Teorema di Binet):

det(AB) = detA detB.

• Determinante della matrice trasposta:

det(A T ) = detA.

• Determinante della matrice inversa: se A è invertibile, allora

1
det(A−1 ) = .
detA
• Determinante di una matrice ortogonale: se A è ortogonale, allora

det(A) = ±1.

3.3 Trasformazioni geometriche affini

Come già anticipato le matrici rappresentano uno strumento estremamente efficace


per rappresentare le trasformazioni geometriche nel piano e nello spazio. Una tra-
sformazione è una funzione che associa ad un punto nel piano (o nello spazio) un
altro punto nel piano (o nello spazio). In questa sezione andremo ad introdurre le
principali trasformazioni geometriche, ricavandone la rappresentazione matriciale e
discutendone le principali proprietà.
In generale, data una matrice quadrata A ∈ Rn×n invertibile e un vettore d ∈ Rn ,
una trasformazione affine associa a un vettore p ∈ Rn un altro vettore p ∈ Rn dato
da
p = A p + d. (3.3)
Qui ci limitiamo a considerare le trasformazioni affini che rappresentano trasfor-
mazioni geometriche nel piano e nello spazio. Lavorando in coordinate cartesiane,
una trasformazione nello spazio è associata ad una matrice A ∈ R3×3 , mentre per
3.3 Trasformazioni geometriche affini 61

una trasformazione nel piano la matrice associata A ha dimensioni 2 × 2. La matrice


A definita da
⎡ ⎤
a11 a12 a13
A = ⎣a21 a22 a23 ⎦
a31 a32 a33
e il vettore d di coordinate
⎡ ⎤
d1
d = ⎣d2 ⎦
d3
definiscono una trasformazione affine che mappa un punto nello spazio P associato
al vettore p di coordinate [ px , p y , pz ]T in un nuovo punto P  associato al vettore p
di coordinate
⎡ ⎤ ⎡ ⎤⎡ ⎤ ⎡ ⎤
px a11 a12 a13 px dx
⎣ p y ⎦ = ⎣a21 a22 a23 ⎦ ⎣ p y ⎦ + ⎣d y ⎦ .
pz a31 a32 a33 pz dz
Le proprietà della matrice A riflettono quelle della trasformazione a cui è associata.
In particolare, il fatto che la matrice A sia invertibile (ovvero abbia il determinante
diverso da zero) garantisce l’esistenza di una trasformazione inversa, associata alla
matrice inversa A−1 che trasporta P  in P, ovvero
⎡ ⎤ ⎡ ⎤−1 ⎡  ⎤
px a11 a12 a13 px − dx
⎣ p y ⎦ = ⎣a21 a22 a23 ⎦ ⎣ p y − d y ⎦ .
pz a31 a32 a33 pz − dz

Il valore che assume il determinante fornisce indicazioni sulle caratteristiche della


trasformazione geometrica a cui la matrice è associata. In particolare, quando una
trasformazione nel piano rappresentata dalla matrice A viene applicata ad una figura
piana di area S, l’area della figura trasformata sarà pari a

S  = |det(A)| S.

Analogamente dato un solido di volume V , una trasformazione nello spazio applicata


ad esso definisce un solido trasformato di volume

V  = |det(A)| V.

Le trasformazioni a determinante unitario hanno quindi la proprietà di mantenere


invariati l’area (nel piano) o il volume (nello spazio) degli oggetti a cui sono applicate.
In generale, tutte le trasformazioni affini trasformano segmenti di retta in segmenti
di retta, inoltre preservano il parallelismo tra due segmenti e conservano il rapporto
fra segmenti paralleli (in particolare il punto medio di un segmento corrisponde al
punto medio del segmento trasformato). Tuttavia, in generale una trasformazione
62 3 Matrici e trasformazioni geometriche

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à

La trasformazione più semplice è quella che trasforma un oggetto in se stesso. Essa


è detta trasformazione identità e, non sorprendentemente, è definita dalla matrice
identità A = In . Infatti, dato un generico punto P nello spazio associato al vettore
p di coordinate [ px , p y , pz ]T , il punto P  ottenuto attraverso la matrice identità è
associato al vettore p di coordinate
⎡ ⎤ ⎡ ⎤⎡ ⎤ ⎡ ⎤
px 100 px px
⎣ p y ⎦ = ⎣0 1 0⎦ ⎣ p y ⎦ = ⎣ p y ⎦ ,
pz 001 pz pz

ovvero coincide con P.


È banale verificare che l’identità è una trasformazione invertibile con

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

La trasformazione di scalatura (o scaling) rappresenta l’amplificazione o la contra-


zione delle coordinate di un punto, rispetto ad un centro di scalatura. Introduciamo
la scalatura nel caso in cui il centro di scalatura sia l’origine degli assi. Vedremo più
avanti (Sezione 3.5) come, componendo opportunamente diverse trasformazioni,
sarà sempre possibile ricondursi a questo caso.
La matrice di scalatura S rispetto all’origine è una matrice diagonale definita da
⎡ ⎤
λx 0 0
S = ⎣ 0 λy 0 ⎦ ,
0 0 λz

dove λx , λ y e λz sono numeri reali non nulli che rappresentano, rispettivamente, il


fattore di scalatura lungo le direzioni x, y e z.
3.3 Trasformazioni geometriche affini 63

Il suo effetto, quando è applicata ad un generico punto P associato al vettore


p di coordinate [ px , p y , pz ]T , è quello di amplificarne le diverse coordinate del
rispettivo fattore di scalatura, ovvero il punto trasformato P  sarà associato al vettore
p di coordinate
⎡ ⎤ ⎡ ⎤⎡ ⎤ ⎡ ⎤
px λx 0 0 px λx px
⎣ p y ⎦ = ⎣ 0 λ y 0 ⎦ ⎣ p y ⎦ = ⎣λ y p y ⎦ .
pz 0 0 λz pz λz pz

Nel piano, le matrici di scalatura sono di dimensioni 2 × 2 ottenute restringendo


le matrici appena introdotte alle prime due righe e due colonne.

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

Applicando la trasformazione ai vettori associati ai vertici del quadrato è


facile vedere (Figura 3.2, destra) come il quadrato venga trasformato in un
rettangolo di vertici A , B  , C  , D  le cui coordinate sono date da
         
ax 20 0 0 bx 20 2 4
= = , = = ,
a y 0 21 0 0 by 0 21 0 0

         
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

Figura 3.3 Scalatura uniforme in due dimensioni

Quando i fattori di scalatura nelle diverse direzioni sono uguali, si parla di


scalatura uniforme, che è rappresentata da una matrice della forma
⎡ ⎤
λ00
S = ⎣0 λ 0⎦ .
00λ

Un esempio di scalatura uniforme in due dimensioni, al variare del fattore di


scalatura λ è mostrato in Figura 3.3.
Per valori del fattore di scalatura λ maggiori di 1 l’oggetto viene allontanato dal
centro di scalatura, per valori compresi tra 0 e 1 l’oggetto si avvicina al centro di
scalatura, mentre per valori negativi l’oggetto oltre che aumentare (per λ < −1) o
ridurre (per −1 < λ < 0) la distanza dal centro di scalatura, viene anche ”ribaltato”
rispetto all’origine.
La scalatura è una trasformazione invertibile, infatti, per λx , λ y e λz non nulli, si
ha
det(A) = λx λ y λz  = 0;
inoltre la matrice inversa è data da
⎡ ⎤−1 ⎡ 1 ⎤
λx 0 0 λx 0 0
⎢ ⎥
S −1 = ⎣ 0 λ y 0 ⎦ = ⎣ 0 λ y 0 ⎦ .
1

0 0 λz 0 0 λ1z

3.3.3 Deformazione di taglio (o shear)

La deformazione di taglio (detta anche di shear) muove un punto in una direzione


assegnata di una quantità proporzionale alla distanza con segno da una retta (nel pia-
no) o da un piano (nello spazio) paralleli alla direzione di spostamento. Un esempio
3.3 Trasformazioni geometriche affini 65

y y

x x

Figura 3.4 Deformazione di taglio nel piano in direzione x

nel piano è mostrato in Figura 3.4 dove lo deformazione di taglio è in direzione x e


la sua intensità è proporzionale alla distanza dall’asse x.
Nel piano la matrice associata ad una deformazione di taglio in direzione x è data
da

1m
Dx = ,
0 1
dove m è detto fattore di deformazione il cui valore pesa il livello di deforma-
zione imposto. Ad esempio, la deformazione visualizzata in Figura 3.4 è ottenuta
considerando un fattore di deformazione m = 1.
Analogamente la deformazione in direzione y è rappresentata dalla matrice

1 0
Dy = .
m1

Nello spazio, è possibile definire deformazioni di taglio in direzioni x, y e z con


una deformazione proporzionale alla distanza da uno dei piani paralleli alla direzione
considerata. A titolo di esempio, la deformazione in direzione x proporzionale alla
distanza z dal piano x y è rappresentata dalla matrice
⎡ ⎤
10m
Dxz = ⎣0 1 0 ⎦ .
00 1

In generale, la matrice di deformazione di taglio è data dalla matrice identità


modificata ponendo uguale al fattore di deformazione m l’elemento sulla riga as-
sociata alla direzione di deformazione e sulla colonna associata alla distanza dal
piano di riferimento.
66 3 Matrici e trasformazioni geometriche

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

Il triangolo ABC viene trasformato nel triangolo A B  C  di vertici


   1
 
ax 1 0 0
= 2 = ,
a y 0 1 0 0
   1
 
bx 1 2 2
= 2 = ,
by 0 1 0 0
   1
 
cx 1 2 4
= 2 = .
cy 0 1 4 4

y y
C C

A B x A B x

Figura 3.5 Deformazione di taglio nel piano in direzione x

Essendo caratterizzate da matrici triangolari con elementi unitari sulla diagona-


le principale, tutte le deformazioni di taglio hanno determinante unitario e quindi
conservano l’area (nel piano) e il volume (nello spazio). Inoltre sono trasformazioni
sempre invertibili e la matrice inversa è ottenuta invertendo il segno del fattore di
deformazione. Ad esempio, si ha
 −1 
1m 1 −m
Dx−1 = = .
0 1 0 1
3.3 Trasformazioni geometriche affini 67

Figura 3.6 Rotazione nel y


piano

P

P
β

3.3.4 Rotazione

Un’altra importante trasformazione è la rotazione. Iniziamo con l’introdurre la rota-


zione nel piano. Come nel caso della scalatura, anche la rotazione è definita rispetto ad
un centro di rotazione. Anche in questo caso possiamo considerare il caso particolare
in cui il centro di rotazione sia l’origine degli assi. Rotazioni rispetto ad altri pun-
ti possono essere ottenute attraverso un’opportuna composizione di trasformazioni
(si veda Sezione 3.5).
Come mostrato in Figura 3.6, ruotando nel piano un punto P associato al vettore p
di coordinate [ px , p y ]T di un angolo β (preso positivo in senso antiorario) si ottiene
un punto P  associato al vettore p di coordinate

px = px cos(β) − p y sin(β),


p y = px sin(β) + p y cos(β),

ovvero la matrice di rotazione di un angolo β attorno all’origine è data da



cos(β) − sin(β)
R= .
sin(β) cos(β)

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

I vertici del triangolo ruotato A B  C  sono quindi dati da


   1 √  
ax − 23 2 1
= √
2 = √ ,
a y 3 1 0 3
2 2
   √ 
3  
2 − 2
1
bx 4 √2
= √ = ,
by 3 1 0 2 3
2 2
   1 √   √ 
cx − 3
4 2 − 3
= √ 2 2 = √ 21 .
cy 3 1 1 2 3+
2 2 2

y y
C
B

A
C

β
A Bx x

Figura 3.7 Rotazione nel piano di β = π/3 attorno all’origine degli assi

Nello spazio, è possibile definire una rotazione in funzione di un generico asse


di rotazione (identificato da una retta orientata) e di un angolo. Ci limitiamo qui
a ricavare le matrici di rotazione nello spazio relative agli assi cartesiani (si veda
Figura 3.8).
In particolare, una rotazione di un angolo β attorno all’asse z è definita dalla
seguente matrice
⎡ ⎤
cos(β) − sin(β) 0
Rz = ⎣ sin(β) cos(β) 0⎦ ,
0 0 1
da cui è facile verificare che un punto P nello spazio che viene fatto ruotare attorno
all’asse z subirà una variazione delle coordinate x e y, mentre manterrà invariata la
coordinata z, infatti
⎡ ⎤ ⎡ ⎤⎡ ⎤ ⎡ ⎤
px cos(β) − sin(β) 0 px px cos(β) − p y sin(β)
P  = ⎣ p y ⎦ = ⎣ sin(β) cos(β) 0⎦ ⎣ p y ⎦ = ⎣ px sin(β) + p y cos(β)⎦ .
pz 0 0 1 pz pz
3.3 Trasformazioni geometriche affini 69

z z z

P P

x P y x y x y
P P
P

Figura 3.8 Rotazioni nello spazio attorno agli assi cartesiani x, y e z

Analogamente possiamo introdurre le matrici di rotazione rispetto all’asse x


⎡ ⎤
1 0 0
Rx = ⎣0 cos(β) − sin(β)⎦ ,
0 sin(β) cos(β)

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

det(R y ) = cos(β)2 + sin(β)2 = 1.

Inoltre, la trasformazione inversa si ottiene considerando la stessa rotazione con


un angolo opposto (ovvero con segno invertito). Per esempio, si ha
⎡ ⎤−1 ⎡ ⎤ ⎡ ⎤
cos(β) 0 sin(β) cos(−β) 0 sin(−β) cos(β) 0 − sin(β)
R −1
y =
⎣ 0 1 0 ⎦ =⎣ 0 1 0 ⎦=⎣ 0 1 0 ⎦.
− sin(β) 0 cos(β) − sin(−β) 0 cos(−β) sin(β) 0 cos(β)

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)

dove I è la matrice identità (I = I2 nel piano e I = I3 nello spazio) e n̂ è il


versore normale (ovvero perpendicolare) all’asse di riflessione (nel piano) e al piano
di riflessione (nello spazio). Essendo n̂ un vettore colonna di dimensioni 2 × 1 nel
piano (3 × 1 nello spazio) la matrice risultante dal prodotto di n̂ per il suo trasposto
sarà di dimensioni 2 × 2 nel piano e 3 × 3 nello spazio.
La formula (3.4) che definisce la matrice di riflessione può essere ricavata at-
traverso alcuni semplici passaggi partendo dalla definizione di punto riflesso. Per
semplicità facciamo riferimento alla Figura 3.10 che rappresenta il caso bidimen-
sionale in cui un punto P viene riflesso rispetto alla retta r di versore normale n̂.
Sia p il vettore che rappresenta il punto P. Per calcolare il punto riflesso si calcola
innanzitutto il punto H , proiettando P sulla retta di riflessione. Successivamente si
trova il punto riflesso P  , rappresentato dal vettore p , in modo che |P H | = |H P  |,
e che i tre punti P, H , P  siano allineati.

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

Figura 3.10 Derivazione y


della matrice di riflessione

x
p
P

H
p
P

Ricordiamo che p · n̂ è la proiezione del vettore p in direzione normale alla retta


di riflessione; notiamo quindi che p = h + (p · n̂)n̂. Di conseguenza

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

p = p − 2n̂(p · n̂) = p − 2n̂(n̂ · p)


= p − 2n̂(n̂T p) = (I − 2n̂n̂T )p = Mp,

da cui si ottiene la (3.4).

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

La matrice di riflessione è quindi data da


  √  √ √ 
2
M = I − 2n̂n̂ = T10
−2 2√ 2
2
− 2
2
01 − 2 2
  1 
10 −1 01
= − 2 2 1 12 = ,
01 −2 2 10

da cui è facile calcolare le coordinate di P  date da


    
px 01 2 1
= = .
p y 10 1 2

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

La riflessione è una trasformazione sempre invertibile e il determinante della


matrice associata è sempre pari a -1. Consideriamo per semplicità il caso piano, si
ha
  2 
10 nx nx n y
det(M) = det(I − 2n̂n̂T ) = det −2 =
01 n y n x n 2y

1 − 2n 2x −2n x n y
= det = (1 − 2n 2x )(1 − 2n 2y ) − 4n 2x n 2y = −1,
−2n y n x 1 − 2n 2y

dove si è usato il fatto che il versore normale n̂ = [n x , n y ]T ha modulo unitario.

3.3.6 Traslazione

Introduciamo, infine, un’ultima trasformazione affine elementare ottenuta a partire


dalla trasformazione identità e aggiungendo un vettore d non nullo. Tale trasforma-
3.3 Trasformazioni geometriche affini 73

zione è la traslazione, che associa ad un punto P associato al vettore p di coordinate


[ px , p y , pz ]T un punto P  associato al vettore p di coordinate
⎡ ⎤ ⎡ ⎤⎡ ⎤ ⎡ ⎤ ⎡ ⎤
px 100 px dx px + dx
⎣ p y ⎦ = ⎣0 1 0⎦ ⎣ p y ⎦ + ⎣d y ⎦ = ⎣ p y + d y ⎦ .
pz 001 pz dz pz + dz

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

Figura 3.12 Traslazione nel piano


74 3 Matrici e trasformazioni geometriche

Anche in questo caso si tratta di una trasformazione rigida e quindi, essendo la


matrice associata data dall’identità, la trasformazione conserva l’area (nel piano) e
il volume (nello spazio).

3.3.7 Costruire una matrice di trasformazione

Abbiamo visto come ogni trasformazione affine è associata a una corrispondente


matrice quadrata e ad una eventuale traslazione. È possibile valutare la matrice asso-
ciata ad una particolare trasformazione se si conosce l’effetto che la trasformazione
ha quando è applicata alla base canonica. La base canonica è formata dai versori
⎡ ⎤ ⎡ ⎤ ⎡ ⎤
1 0 0
i = ⎣0⎦ , j = ⎣ 1⎦ , k = ⎣0⎦ .
0 0 1

Se una trasformazione porta la base canonica nei versori i , j , k , la trasformazio-


ne è rappresentata dalla matrice ottenuta affiancando i versori colonna trasformati.
Infatti, se consideriamo una generica matrice di trasformazione A di elementi ai j ,
osserviamo che
⎡ ⎤⎡ ⎤ ⎡ ⎤
a11 a12 a13 1 a11
i = Ai = ⎣a21 a22 a23 ⎦ ⎣0⎦ = ⎣a21 ⎦ ,
a31 a32 a33 0 a31

cioè la prima colonna di A coincide con il primo vettore trasformato. Analogamente


si mostra che j corrisponde alla seconda colonna di A e k alla terza.
Consideriamo ora un esempio bidimensionale, ricordando che la base canonica
nel piano cartesiano è formata dai vettori i = [1, 0]T , j = [0, 1]T .

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(β)

La matrice di rotazione nel piano è infatti definita da



cos(β) − sin(β)
R = [i |j ] = .
sin(β) cos(β)
3.4 Trasformazioni con coordinate omogenee 75

j
j

i

i x

Figura 3.13 Rotazione della base canonica

3.4 Trasformazioni con coordinate omogenee

Abbiamo appena visto come la traslazione possa essere definita attraverso


l’operazione di somma vettoriale. Tutte le altre trasformazioni che sono state in-
trodotte (identità, scalatura, shear, rotazione, riflessione) sono invece applicate at-
traverso l’azione di una matrice su un vettore (ovvero un prodotto tra una matrice
quadrata e un vettore colonna di dimensioni compatibili).
Come risulterà più chiaro nella Sezione 3.5, al fine di facilitare l’operazione di
composizione tra trasformazioni, risulta utile identificare una rappresentazione ma-
triciale anche della traslazione. Per fare ciò è necessario fare ricorso alle coordinate
omogenee, che sono state introdotte nel Capitolo 2.
Tutte le trasformazioni (identità, scalatura, shear, rotazione, riflessione) introdot-
te nelle Sezioni 3.3.1-3.3.5 si applicano attraverso un prodotto matrice vettore tra
la matrice A (di dimensioni 2 × 2 nel piano e 3 × 3 nello spazio) associata alla
trasformazione e il vettore colonna associato al punto che si vuole trasformare.
In coordinate omogenee, ciascuna di queste trasformazioni può essere ottenuta
considerando la matrice estesa data, nel caso di trasformazione nello spazio, da
0 a11 a12 a13 0
= A 0 a a22 a23 0
A = 21
0 a31 a32 a33 0
0 0 01 0 0 0 1

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

Un punto P nello spazio è identificato in coordinate omogenee dal vettore


p = [ px , p y , pz , 1]T , e la sua trasformazione nel punto P  in coordinate omoge-

nee è ottenuta ancora una volta attraverso un prodotto matrice vettore, in particolare
attraverso la matrice A: 
⎡ ⎤ ⎡ ⎤⎡ ⎤
px a11 a12 a13 0 px
⎢ p y ⎥ ⎢a21 a22 a23 0⎥ ⎢ p y ⎥
⎢ ⎥=⎢ ⎥⎢ ⎥
⎣ pz ⎦ ⎣a31 a32 a33 0⎦ ⎣ pz ⎦ .
1 0 0 0 1 1

3.4.1 Traslazione con coordinate omogenee

Utilizzando le coordinate omogenee è possibile definire la traslazione associata ad un


vettore d = [d1 , d2 , d3 ]T attraverso la seguente matrice estesa di dimensioni 4 × 4:
⎡ ⎤
1 0 0 dx
⎢0 1 0 dy ⎥
D=⎢
⎣0
⎥,
0 1 dz ⎦
0 0 0 1

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

3.4.2 Trasformazioni affini arbitrarie

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

che, applicata al generico punto P nello spazio, esegue la trasformazione associata


alla matrice A seguita dalla traslazione identificata dal vettore d.

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.

3.5 Composizione di trasformazioni

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

Dato il punto P nel piano, di coordinate [2, −1]T , vogliamo calcolare il


punto ottenuto applicando in successione una riflessione rispetto all’asse x
e una rotazione di un angolo π/2 in senso antiorario (si veda Figura 3.14,
sinistra). Notando che il versore normale alla retta di riflessione è in questo
caso dato da [0 1]T , la riflessione e la rotazione considerate sono rappresentate
rispettivamente dalle matrici:

1 0
Mx = ,
0 −1


0 −1
Rπ/2 = .
1 0

Le coordinate del punto trasformato P  si ottengono quindi valutando il


seguente prodotto tra le matrici di trasformazione e il punto iniziale:
         
px 0 −1 px 0 −1 1 0 2 01 2 −1
= = = = .
p y 1 0 p y 1 0 0 −1 −1 1 0 −1 2

Si può notare come la trasformazione risultante dalla composizione della ri-


flessione e della rotazione corrisponda in questo caso alla matrice di riflessione
rispetto alla bisettrice del primo e terzo quadrante, data da

01
M=
10

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

In questo caso la matrice ottenuta dalla composizione delle due


trasformazione è data da

0 −1
M= ,
−1 0
3.5 Composizione di trasformazioni 79

e corrisponde ad una riflessione rispetto alla bisettrice del secondo e quarto


quadrante.

y y

P P

P

x x

P P

P 

Figura 3.14 Composizione di una riflessione seguita da una rotazione (a sinistra) e


composizione delle stesse trasformazioni in ordine inverso (a destra)

La composizione di trasformazioni, realizzata attraverso il prodotto tra le matrici


corrispondenti, consente di ottenere, a partire dalle trasformazioni di base intro-
dotte precedentemente, una collezione potenzialmente illimitata di trasformazioni
arbitrariamente complesse.
In particolare, è utile mostrare come la composizione può essere utilizzata per
generalizzare alcune trasformazioni che sono state introdotte per casi particolari.
Nel seguente esempio, vediamo come, a partire dalla rotazione nel piano rispetto
all’origine, opportunamente composta con delle traslazioni, è possibile derivare la
rotazione attorno ad un punto arbitrario.

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

nell’origine degli assi ed è definita dalla matrice


⎡ ⎤
1 0 −1
T = ⎣0 1 −1⎦ .
00 1

La rotazione di π/2 attorno all’origine è rappresentata dalla matrice


⎡ ⎤
0 −1 0
Rπ/2 = ⎣1 0 0 ⎦ .
0 0 1

Il punto trasformato P  è quindi ottenuto applicando in sequenza la traslazione


T , la rotazione Rπ/2 e la traslazione inversa T −1 , ovvero
⎡ ⎤ ⎡ ⎤⎡ ⎤⎡ ⎤⎡ ⎤ ⎡ ⎤⎡ ⎤ ⎡ ⎤
px 101 0 −1 0 1 0 −1 2 0 −1 2 2 1
⎣ p y ⎦ = ⎣0 1 1⎦ ⎣1 0 0⎦ ⎣0 1 −1⎦ ⎣1⎦ = ⎣1 0 0⎦ ⎣1⎦ = ⎣2⎦ .
1 001 0 0 1 00 1 1 0 0 1 1 1

y y

P P
Q Q
P P

x O x

Figura 3.15 Rotazione attorno ad un punto arbitrario come singola trasformazione (a


sinistra) e come composizione di trasformazioni semplici (a destra)

3.5.1 Classificazione delle trasformazioni affini

Nelle sezioni precedenti abbiamo considerato trasformazioni espresse nella forma

x = A x + d.

Abbiamo chiamato tali trasformazioni affini se det A = 0, ossia se la matrice A


è invertibile. Le trasformazioni affini hanno la caratteristica di trasformare rette in
3.5 Composizione di trasformazioni 81

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

rette e di conservare il parallelismo. Nella Sezione 3.7 vedremo alcuni esempi di


trasformazioni non affini.
Un sottoinsieme delle trasformazioni affini è costituito dalle trasformazioni isome-
triche o isometrie, che hanno la caratteristica di conservare le distanze fra i punti e la
misura degli angoli, rispettivamente. Appartengono a questa categoria la traslazione,
le rotazioni e la riflessione, mentre non è un’isometria il taglio. Ovviamente, poiché
sono conservati distanze e angoli, le isometrie mantengono invariati anche aree e vo-
lumi, quindi avranno determinante pari a 1 in modulo. In Figura 3.16 confrontiamo
una rotazione, con determinante pari a 1, ed una riflessione con determinante pari a
−1. Osserviamo che in entrambi i casi la forma del poligono è invariata. Tuttavia,
mentre la rotazione conserva il senso di percorrenza antiorario dei vertici, la rifles-
sione inverte l’orientazione del poligono. In questo senso, diremo che le rotazioni
appartengono all’insieme delle isometrie dirette, mentre le riflessioni sono isometrie
inverse.

3.6 Real life applications: i sette fregi

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)

In particolare, il primo fregio (a) è ottenuto applicando solo la traslazione


in direzione orizzontale. Il secondo fregio (b) è il risultato della traslazione e
di una riflessione rispetto ad un asse orizzontale. Il terzo fregio (c) è ottenuto
componendo la traslazione con una riflessione rispetto ad un asse verticale.
Il quarto fregio (d) è frutto della traslazione e di una rotazione di 180 gradi.
Il quinto fregio (e) è ottenuto componendo la traslazione con una rotazione
di 180 gradi e una riflessione rispetto ad un asse orizzontale. Il sesto fregio
(f) è il risultato della traslazione composta con due riflessioni rispetto ad un
asse verticale e ad uno orizzontale. Infine, il settimo fregio (g) è ottenuto da una
glissoriflessione, ovvero una riflessione rispetto ad un asse orizzontale composta
con la traslazione.
Per una descrizione dettagliata dei diversi gruppi di simmetria e una
discussione del ruolo dei fregi (e più in generale dei motivi geometrici ripetuti)
nell’Architettura e nel Design si può fare riferimento a [15].
3.7 Trasformazioni non affini 83

3.7 Trasformazioni non affini

Le trasformazioni affini permettono di descrivere un ampio spettro di trasformazioni


geometriche. Tuttavia esistono anche trasformazioni non affini che ricoprono un ruo-
lo importante nell’ambito della grafica computazionale. Una presentazione esaustiva
delle trasformazioni non affini e, più in generale, non lineari, va al di là degli obiettivi
di questo testo. Ci limitiamo qui ad introdurre le più rilevanti ovvero le proiezioni
ortogonali e prospettiche.

3.7.1 Proiezione ortogonale

Nel piano, la proiezione ortogonale su una retta r è la trasformazione che associa


ad un punto P il punto P  che giace sulla retta e ha distanza minima da P, in modo
tale che segmento P P  risulti ortogonale alla retta (si veda Figura 3.18, sinistra).
Analogamente, nello spazio, la proiezione ortogonale su un piano τ di normale n è
la trasformazione che associa ad un punto P il punto P  sul piano τ , che si trova a
minima distanza da P, in modo tale che il segmento P P  risulti ortogonale al piano
(si veda Figura 3.18, destra).
La matrice di proiezione ortogonale si ottiene mediante passaggi del tutto analoghi
a quelli utilizzati per costruire la matrice di riflessione (3.4) ed è definita da

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

considerando per semplicità il caso piano, si ha


  2 
10 nx nx n y
det(PO ) = det(I − n̂n̂ ) = det
T
− =
01 n y n x n 2y

1 − n 2x −n x n y
= det = (1 − n 2x )(1 − n 2y ) − n 2x n 2y = 0,
−n y n x 1 − n 2y

dove si è usato il fatto che il versore normale n̂ = [n x , n y ]T ha modulo unitario.


Abbiamo già notato in precedenza come il determinante rappresenti il rapporto tra
l’area (nel piano) e il volume (nello spazio) della figura trasformata rispetto a quella
di partenza. Nel caso della proiezione, come evidenziato in Figura 3.19, è chiaro che
tale rapporto è necessariamente zero.
Come detto, la proiezione non è una trasformazione invertibile, non è quindi
possibile definire una trasformazione inversa che riporti l’oggetto trasformato nella
configurazione originale. Dal punto di vista geometrico, ciò è associato al fatto che
esistono diverse figure che sottoposte alla stessa proiezione forniscono lo stesso
risultato (si veda Figura 3.20).

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

La matrice di proiezione è quindi data da


  2 √5   √ √ 
1 0 − 5 − 2 5
− 5
PO = I − n̂n̂ =T
− √ 5 5
0 1 5
5
  4 1 2
1 0 − 25
= − 5 = 25 45 ,
0 1 − 25 51 5 5

da cui è facile calcolare le coordinate di P  date da


  1 2  
qx 3 1
= 25 45 = ,
q y 1 2
5 5

si veda Figura 3.21.

P
P

x
Figura 3.21 Proiezione nel piano sulla retta passante per l’origine con normale n =
[−2, 1]T

3.7.2 Proiezione prospettica

L’ultima trasformazione che introduciamo è la cosiddetta proiezione prospettica. Tale


trasformazione consente di determinare la proiezione di un punto P di coordinate
nello spazio su un piano di proiezione π rispetto ad un centro di proiezione C che
identifica la posizione nello spazio di un osservatore.
86 3 Matrici e trasformazioni geometriche

Per semplicità consideriamo il caso particolare, mostrato in Figura 3.22, in cui il


piano di proiezione coincide con il piano yz, ovvero il luogo dei punti tali che x = 0.
Dato il punto P di coordinate [ px , p y , pz ]T , per calcolarne la proiezione prospettica
immaginiamo di congiungere con una retta il punto P e l’osservatore C: il punto
proiettato P  si ottiene intersecando questa retta con il piano x = 0.
È facile dimostrare che, essendo i tre punti P, P  e C allineati, valgono le seguenti
relazioni tra le loro coordinate

p y − c y py − cy
= ,
px − cx px − cx
pz − cz pz − cz
= ,
px − cx px − cx

da cui si possono valutare le coordinate del punto proiettato P  , imponendo che il


punto P  giaccia sul piano yz, come segue:
⎡ ⎤ ⎡ ⎤⎡ ⎤
px 0 0
⎣ p y ⎦ = ⎢ p y −c y ⎥ ⎢ c y px −cx p y ⎥
⎣c y − cx px −cx ⎦ ⎣ px −cx ⎦ .
pz cz − cx ppz −c
−c
x
z
x
cz px −cx pz
p −cx x

Figura 3.22 Proiezione prospettica di un punto sul piano x y


3.7 Trasformazioni non affini 87

Lavorando in coordinate omogenee è possibile esprimere tramite una matrice la


trasformazione di proiezione prospettica. Indichiamo con
⎤⎡
px
⎢ py ⎥
p=⎢
 ⎥
⎣ pz ⎦ ,
1

il vettore in coordinate omogenee che corrisponde al punto P, e con


⎡ ⎤
0
⎢ ⎥
 = ⎢c y px − cx p y ⎥ ,
p ⎣ cz p x − c x pz ⎦
px − cx

il vettore proiettato P  , dove, in quest’ultimo caso, abbiamo sfruttato le proprietà


delle coordinate omogenee riscalando le coordinate con il peso w = px − cx .
Possiamo quindi definire la trasformazione attraverso la corrispondente matrice
di proiezione prospettica data da
⎡ ⎤
0 0 0 0
⎢c y −cx 0 0 ⎥
PP = ⎢
⎣cx

0 −cx 0 ⎦
1 0 0 −cx

e vale la seguente relazione tra le coordinate omogenee dei punti P e P 


⎡ ⎤ ⎡ ⎤⎡ ⎤
0 0 0 0 0 px
⎢c y px − cx p y ⎥ ⎢c y −cx 0 0 ⎥ ⎢ py ⎥
⎢ ⎥ ⎢ ⎥⎢ ⎥.
⎣ cz p x − c x pz ⎦ = ⎣ cz 0 −cx 0 ⎦ ⎣ pz ⎦
px − cx 1 0 0 −cx 1

La matrice di proiezione prospettica si può analogamente riscrivere come


⎡ ⎤
0 000
⎢ cy ⎥
⎢− cx 1 0 0⎥
PP = ⎢
⎢− cz 0 1
⎥.
⎣ cx 0⎥⎦
− c1x 001
88 3 Matrici e trasformazioni geometriche

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

Osserviamo che la matrice PP è singolare in quanto ha una riga completamente


nulla, e, per questo motivo, non esiste la sua inversa. Come nel caso della proiezione
ortogonale (Figura 3.19), non sorprende che anche la proiezione prospettica sia
rappresentata da una matrice a determinante nullo.
La proiezione prospettica è fortemente dipendente dalla posizione reciproca del-
l’oggetto che viene proiettato, l’osservatore e il piano di proiezione. In Figura 3.23,
sono visualizzate due situazioni: la prima in cui il piano di proiezione è collocato in
mezzo tra l’osservatore e l’oggetto, mentre nella seconda l’oggetto è tra l’osservatore
e il piano di proiezione.
Osserviamo che il peso del punto proiettato è pari alla differenza x P − x E , ed è
quindi nullo quando l’osservatore e il punto si trovano alla stessa ascissa x (ovvero
alla stessa distanza con segno dal piano di proiezione): in questo caso, infatti, il
punto è correttamente proiettato all’infinito. Per una discussione più approfondita
dell’utilizzo della proiezione prospettica (e di altre trasformazioni) nell’ambito della
grafica computazionale, si può fare riferimento a [22].
Curve parametriche
4

Una linea è un punto che è andato a fare una passeggiata.


(Paul Klee)

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.

Per rappresentare un oggetto in un sistema di riferimento assegnato nel piano o


nello spazio è necessario introdurre opportuni strumenti matematici che consentono
di definire curve e superfici di forma arbitraria.

4.1 Rappresentazione di una curva nel piano

Iniziamo questo capitolo richiamando rapidamente le diverse possibili modalità con


cui una curva nel piano o nello spazio può essere rappresentata matematicamente.
In particolare, vediamo come le curve possano essere rappresentate come insiemi di
livello di campi scalari, attraverso la cosiddetta forma cartesiana, o come immagini
di funzioni vettoriali quando espresse in forma parametrica.

© Springer-Verlag Italia S.r.l., part of Springer Nature 2019 91


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_4
92 4 Curve parametriche

Figura 4.1 Curva nel piano definita implicitamente come livello zero di una superficie in 3
dimensioni

4.1.1 Forma cartesiana

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)

oppure nella forma


f (x, y) = x − g2 (y)
è possibile introdurre una rappresentazione della curva equivalente a quella implicita
e denominata forma cartesiana esplicita, data rispettivamente da

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)

dove, viceversa, l’ascissa x è espressa come funzione esplicita della corrispondente


ordinata y.
Molte curve nel piano possono essere rappresentate in forma cartesiana esplicita,
come grafici di funzioni di una variabile di tipo polinomiale, esponenziale, logarit-
mico, trigonometrico e tutte le possibili combinazioni tra esse, si veda Capitolo 1.
Tuttavia, le funzioni espresse in forma cartesiana esplicita presentano dei limiti nel
rappresentare alcune tipologie di forme anche piuttosto semplici, si pensi ad esempio
ad una circonferenza nel piano (si veda Sezione 4.3.1). In generale, la forma carte-
siana esplicita non consente di rappresentare curve per le quali ad un valore delle
ascisse corrispondono più valori sulle ordinate come mostrato in Figura 4.2, se non
suddividendo la curva in porzioni ciascuna esprimibile come relazione esplicita di y
rispetto a x.
Inoltre, le figure descritte da curve in forma cartesiana esplicita sono strettamente
connesse al sistema di riferimento considerato. È infatti evidente che quand’anche
una funzione in forma cartesiana esplicita fosse in grado di rappresentare una forma
desiderata, la stessa forma, soggetta per esempio ad una rotazione rigida, potrebbe
risultare non più rappresentabile come grafico di una funzione nello stesso sistema
di riferimento (si veda Figura 4.3).
Nonostante, in generale, le funzioni in forma cartesiana implicita consentano
di superare alcuni limiti delle funzioni in forma cartesiana esplicita, ad esempio
permettendo di rappresentare con un’unica curva funzioni a più valori (vedremo
ad esempio la circonferenza in Sezione 4.3.1), tuttavia non risultano uno strumento
efficace in generale, in quanto non sempre è facile definire la funzione f (x, y) tale che
il suo livello zero segua una forma arbitraria. Inoltre, la rappresentazione cartesiana
è di difficile estensione al caso di curve nello spazio. Nella prossima sezione si
introdurrà un diverso tipo di rappresentazione delle curve utile a superare molti dei
limiti evidenziati per la forma cartesiana.
94 4 Curve parametriche

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)

4.1.2 Forma parametrica

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),

dove il parametro può variare in un intervallo limitato (a ≤ t ≤ b) o illimitato


(Figura 4.4, sinistra). Come vedremo in seguito, le curve parametriche più utilizzate
nella grafica computazionale sono definite attraverso funzioni polinomiali, ma, in
generale, una curva in forma parametrica della forma (4.2) può essere definita a
partire da funzioni arbitrarie del parametro t [24].
È immediato vedere come questo tipo di rappresentazione possa essere facilmente
estesa al caso di curve nello spazio tridimensionale:


⎨x = f x (t),
y = f y (t), (4.3)


z = f z (t),

dove (x, y, z) rappresenta il generico punto appartenente alla curva e f x , f y , f z sono


tre funzioni del parametro indipendente t (Figura 4.4, destra).
4.2 Rette nel piano e nello spazio 95

y y

(fx (t), fy (t)) (fx (t), fy (t), fz (t))


x

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

4.2 Rette nel piano e nello spazio

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

m>0 m<0 m=0

x x x

Figura 4.6 Rette con diverse pendenze m

cartesiana esplicita di una retta verticale è invece data da

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)

che corrisponde alla forma cartesiana esplicita (4.4) con


a c
m=− e q=− .
b b

Si noti che per le rette verticali si ha b = 0 e p = − bc .


La retta nel piano descritta dall’equazione (4.6) può essere vista come il livello
zero del piano di equazione
z = ax + by + c
definito nello spazio tridimensionale.
Purtroppo non è possibile descrivere una retta nello spazio tridimensionale at-
traverso la forma cartesiana (4.4) (se non come intersezione di piani scritti in forma
cartesiana, si veda Sezione 5.2.2).
Come abbiamo già accennato, per superare i limiti imposti dalle forme cartesiana
esplicita ed implicita è possibile ricorrere alla formulazione parametrica.

4.2.1 Rette in forma parametrica

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

Figura 4.7 Retta in forma y


parametrica

5
p= 2
d

d
x

Figura 4.8 Dipendenza dal y


parametro t in una retta in
forma parametrica
t=4

t=3

t=2

d t=1

t=0 x

t = −1

La retta r sarà quindi definita in forma parametrica nel modo seguente:

r(t) = td, t ∈ R, (4.7)

dove il vettore d è denominato vettore direzione e t è un parametro che assume valori


reali. Ciascun punto lungo la retta è identificato da un valore del parametro t (Figura
4.8).
Limitando il parametro t è possibile definire un segmento di retta (a ≤ t ≤ b,
Figura 4.9, sinistra) o una semiretta (a ≤ t ≤ ∞, Figura 4.9, destra).
Il vettore direzione d ha componenti
 
d
d= x
dy

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

Per ricavare la forma esplicita della retta r , consideriamo le componenti



x = 2t,
y = t,

valuto il parametro t = x/2 dalla prima equazione e lo sostituisco nella


seconda ottenendo
x
y= .
2
4.2 Rette nel piano e nello spazio 99

Viceversa, il seguente esempio mostra come determinare la forma parametrica di


una retta espressa in forma cartesiana esplicita.

Esempio 4.2
Data la retta r in forma esplicita

r: y = 3x,

posso ottenere la forma parametrica, ad esempio, assegnando x = t. Ovvero


  
x = t, 1
−→ d= .
y = 3t, 3

In questo caso la forma parametrica risulta essere


 
1
r(t) = td = t , −∞ ≤ t ≤ ∞.
3

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

Figura 4.10 Retta arbitraria y


in forma parametrica

Q
q
O x

2. Trasliamo la retta s in modo che passi per il punto Q. L’operazione di traslazione


equivale a sommare (in senso vettoriale) ad ogni punto della retta s uno stesso
vettore q. Una possibile strategia per definire il vettore q si basa sull’osservazione
che la traslazione cercata è quella che porta l’origine nel punto Q e pertanto
q = Q − O.

La forma parametrica per una retta arbitraria sarà dunque definita da

r(t) = td + q, −∞ ≤ t ≤ ∞, (4.8)

dove il vettore d è il vettore direzione e q è il vettore che identifica un generico punto


Q appartenente alla retta.
La forma parametrica (4.8) evidenzia in modo chiaro come una retta sia identi-
ficabile dalla sua direzione e dal passaggio per un punto. Sappiamo anche che una
retta è univocamente definita dal passaggio per due punti. È immediato ottenere la
forma parametrica di una retta passante per due punti assegnati A e B rispettivamente
identificati dai vettori
⎡ ⎤ ⎡ ⎤
ax bx
a = ⎣a y ⎦ e b = ⎣b y ⎦ .
az bz
È infatti sufficiente utilizzare i due punti per identificare il vettore direzione, per
esempio
⎡ ⎤
bx − ax
d = b − a = ⎣b y − a y ⎦
bz − az
e prescrivere il passaggio per il punto A, ossia fissare q = a (o analogamente dal
punto B, q = b), per ricondursi alla forma parametrica (4.8).
Data una retta r definita come in (4.8) e un punto P, identificato dal vettore p, per
verificare se il punto appartiene alla retta è necessario cercare se esiste un valore del
parametro t¯ per il quale r(t¯) = p.
4.2 Rette nel piano e nello spazio 101

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.

4.2.2 Posizione reciproca di due rette nel piano e nello spazio

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

r1 (t) = td1 + p1 , e r2 (s) = sd2 + p2 ,

dove il parametro s utilizzato per la seconda retta è indipendente dal parametro t


utilizzato per la prima. Le rette r1 e r2 sono

• parallele se esiste un numero reale λ  = 0 tale che d2 = λd1 (i vettori direzione


delle due rette sono paralleli);
• perpendicolari se il prodotto scalare d1 · d2 = 0 (i vettori direzione sono
perpendicolari).
102 4 Curve parametriche

Esempio 4.4
Consideriamo le due rette nel piano
       
2 0 1 0
r1 (t) = t − , e r2 (s) = s + .
1 1 −1 2

I punti in comune tra le due curve possono essere individuati risolvendo il


seguente sistema nelle incognite t e s ottenuto uguagliando le ascisse e le
ordinate:
 
2t = s t = 1,
−→
t − 1 = −s + 2, s = 2.
Le curve r1 e r2 (rappresentate in Figura 4.11) si intersecano nel punto
attraversato da r1 per t = 1 e da r2 per s = 2, cioè P = (2, 0).

r1

x
P

r2

Figura 4.11 Rette incidenti nel piano

Esempio 4.5
Consideriamo ora le rette
     
2 0 1
r1 (t) = t − , e r2 (s) = s ,
1 1 1/2

e procediamo come nell’esempio precedente per determinare i punti di


intersezione. Il sistema

2t = s
t − 1 = s/2,
4.2 Rette nel piano e nello spazio 103

non ammette soluzioni, quindi le rette, rappresentate in Figura 4.12, sono


parallele (non avendo punti in comune). Infatti, si verifica facilmente che in
questo caso d1 = 2d2 .

y
r2

r1

Figura 4.12 Rette parallele nel piano

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

In questo caso i punti che appartengono ad entrambe le rette corrispondono


alle soluzioni del sistema
 
2t = s + 1 s = 2t − 1
−→
t − 1 = s/2 − 1/2, t − 1 = t − 1,

che ammette infinite soluzioni in quanto r1 e r2 sono due diverse


parametrizzazioni della stessa retta.
104 4 Curve parametriche

Figura 4.13 Esempio di rette sghembe

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).

4.3 Generazione di curve parametriche

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

Introduciamo ora le forme parametriche di alcune curve notevoli, a partire da


curve di uso comune come le coniche (circonferenza, ellisse, parabola e iperbole)
per poi passare a forme più complesse e generali.

y y

x x

Figura 4.14 Curva cubica originale (sinistra) e ruotata di β = −π/4 (destra)


106 4 Curve parametriche

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

Figura 4.15 Circonferenza y


in forma cartesiana √
y= R 2 − x2


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

Inoltre, scegliendo opportunamente l’ampiezza dell’intervallo in cui varia il


parametro è possibile definire archi di circonferenza di ampiezza arbitraria (Figura
4.17).
La forma parametrica può essere facilmente estesa alla definizione di una cir-
conferenza nello spazio. In particolare, le circonferenze centrate nell’origine che
giacciono sui piani cartesiani x y, yz e zx (rappresentate in Figura 4.18) sono definite
rispettivamente da:
⎡ ⎤
R cos t
c(t) = ⎣ R sin t ⎦ , 0 ≤ t < 2π, (piano x y),
0
⎡ ⎤
0
c(t) = ⎣ R cos t ⎦ , 0 ≤ t < 2π, (piano yz),
R sin t
108 4 Curve parametriche

Figura 4.17 Arco di circonferenza con π/3 ≤ t ≤ 5π/6 (destra)

z z
z

x y x y
x y

Figura 4.18 Circonferenza nel piano x y (sinistra), yz (centro) e x z (destra)

⎡ ⎤
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

Figura 4.19 Ellisse. In y


rosso sono rappresentati i
fuochi

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

Infine, analogamente al caso della circonferenza si può ricavare l’espressione


dell’ellisse di centro P:
 
a cos t + px
c(t) = , 0 ≤ t < 2π.
b sin t + p y

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

Figura 4.20 Iperbole. In y


rosso sono rappresentati i
fuochi

x
4.3 Generazione di curve parametriche 111

L’equivalenza tra la forma parametrica (4.16) e la forma cartesiana (4.15) è di


facile verifica, infatti

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)

In questo caso il fuoco è il punto di coordinate


 
1 − b2 + 4ac b
,−
4a 2a

e la direttrice è la retta
1 + b2 − 4ac
x =− .
4a

Figura 4.21 Parabola. In y


rosso sono rappresentati la
direttrice e il fuoco

x
112 4 Curve parametriche

Una forma parametrica della parabola è data da


 
t
c(t) = , t ∈ R. (4.18)
at 2 + bt + c

4.3.5 Spirale di Archimede

È possibile generare curve di arbitraria complessità componendo opportunamente


trasformazioni nel piano e nello spazio. Per esempio, una spirale nel piano può
essere ottenuta componendo una rotazione e una scalatura uniforme. Ad esempio,
applicando al punto P = (1, 0) una rotazione di un angolo t attorno all’origine e
una scalatura di un fattore proporzionale a t stesso, si ha
     
at 0 cos t − sin t 1 at cos t
c(t) = = , 0 ≤ t < 2nπ, (4.19)
0 at sin t cos t 0 at sin t

dove n rappresenta il numero di spire e h = 2πa è il passo della spirale. In Figura


4.22, sono rappresentate due spirali con diverso numero di spire e passi diversi.
Le spirali definite in (4.19) e mostrate in Figura 4.22 si avvolgono in senso an-
tiorario. Per ottenere una spirale che si avvolge in senso orario è sufficiente consid-
erare una rotazione in senso opposto, ovvero definire il dominio di definizione del
parametro t a valori negativi.

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

Figura 4.23 Elica cilindrica

4.3.6 Elica cilindrica

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.

4.3.7 Elica conica

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

Figura 4.24 Elica conica

Ad esempio, un’elica conica centrata nell’origine, avente asse parallelo a z si


ottiene applicando una traslazione (funzione del parametro t) alla spirale definita sul
piano x y, ovvero:
⎡ ⎤ ⎡ ⎤⎡ ⎤ ⎡ ⎤
x 1 0 0 0 at cos t at cos t
⎢ y ⎥ ⎢0 0⎥ ⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢
c(t) = ⎣ ⎦ = ⎣
1 0 ⎥ ⎢ at sin t ⎥ = ⎢ at sin t ⎥ , 0 ≤ t < 2nπ. (4.21)
z 0 0 1 ct ⎦ ⎣ 0 ⎦ ⎣ ct ⎦
1 0 0 0 1 1 1

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

che coincide con (4.21).


4.4 Real life applications: la traiettoria di un pedale 115

4.4 Real life applications: la traiettoria di un pedale

È evidente come la strategia proposta permetta di definire una gamma infinita di


curve, combinando in modo opportuno le trasformazioni elementari introdotte
nel Capitolo 3.
Le possibili applicazioni di questo approccio sono innumerevoli sia nel-
la grafica computazionale che, più in generale, in tutte le applicazioni che
richiedono una formalizzazione matematica di una curva nel piano e nello
spazio. Si pensi, ad esempio, alla descrizione della cinematica di componenti
meccaniche in movimento o alle traiettorie di oggetti che si muovono all’interno
dei videogiochi.
Un altro esempio che può aiutare a capire le potenzialità dell’approccio
consiste nel determinare la forma parametrica della traiettoria compiuta da un
punto di una ruota che rotola su un piano. Tale curva prende il nome di cicloide.
Per una ruota di raggio R che si muove con velocità angolare di rotazione ω, il
centro della ruota avanza con velocità lineare ω R.
Come mostrato in Figura 4.25, la traiettoria del punto P della ruota (in-
izialmente appoggiato a terra) si ottiene componendo la rotazione attorno al
centro C (nel quale per semplicità è fissata l’origine degli assi) e la traslazione
orizzontale del centro stesso,
⎡ ⎤⎡ ⎤ ⎡ ⎤
cos(ωt) sin(ωt) Rωt 0 −R sin(ωt) + Rωt
c(t) = ⎣− sin(ωt) cos(ωt) 0 ⎦ ⎣−R ⎦ = ⎣ −R cos(ωt) ⎦ ,
0 0 1 1 1
(4.23)
per 0 ≤ t < 2π.

Figura 4.25 La traiettoria di un punto sulla ruota (cicloide)

Analogamente è possibile determinare la traiettoria di un pedale come com-


posizione dell’avanzamento e della rotazione dei pedali attorno al mozzo. La
forma di tale traiettoria dipende dal rapporto utilizzato. In Figura 4.26 sono
mostrate le traiettorie corrispondenti rispettivamente a un rapporto tra velocità
di rotazione della ruota e dei pedali di r = 1 : 1, r = 1 : 2 e r = 1 : 4.
116 4 Curve parametriche

r=1:1

r=1:2

r=1:4

Figura 4.26 La traiettoria di un pedale con diversi rapporti di pedalata

4.5 Retta tangente a una curva

Le curve espresse in forma parametrica permettono in modo molto agevole di val-


utare quantità geometriche locali che ne caratterizzano la pendenza e la curvatura.
In particolare, utilizzando il concetto di derivata di una funzione richiamato nel
Capitolo 1, in questa sezione verrà introdotta la retta tangente ad una generica curva
in un punto, vale a dire la retta che “tocca” una curva in un punto senza “tagliarla”.
Nel caso generale di curve arbitrarie definita in forma parametrica come
⎡ ⎤
cx (t)
c(t) = ⎣c y (t)⎦
cz (t)

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)

dipende dal parametro t, infatti la direzione della tangente cambia lungo la


curva (Figura 4.28).

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

e il vettore derivato risulta essere

r
(t) = d.

In questo caso, come ci si poteva aspettare, il vettore derivato è il vettore direzione


della retta e, quindi, la tangente coincide con la retta stessa.
Il prossimo esempio illustra come calcolare la retta tangente ad una curva
parametrica definita sul piano.

Esempio 4.9
Data l’ellisse definita dalla forma parametrica
 
2 cos(t) − 1
c(t) = .
sin(t) − 21

si vuole calcolare la retta tangente all’ellisse nel punto P corrispondente a


t = π/3. Il punto ha coordinate
    
xp 2 cos(π/3) − 1 √
0
= = 1 .
yp sin(π/3) − 21 2 − 2
3

Il vettore derivato per la curva in esame è dato da


 

2 sin(t)
c (t) =
− cos(t)

che valutato nel punto P assume il valore


  √ 
2 sin(π/3) 3
c
(π/3) = = .
− cos(π/3) − 21

La retta tangente può essere ottenuta utilizzando il vettore derivato come


vettore direzione e il punto P come punto di passaggio della retta, ovvero
√  
3 √
0
r(s) = s + 1 .
− 21 2 − 2
3
4.5 Retta tangente a una curva 119

Infine, mostriamo un esempio in cui si calcola la retta tangente ad una curva


parametrica nello spazio.

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

che valutato nel punto P assume il valore


⎡ ⎤ ⎡ ⎤
π/2 sin(π/2) + cos(π/2) π/2
c
(π/2) = ⎣−π/2 cos(π/2) + sin(π/2)⎦ = ⎣ 1 ⎦ .
2 2

Come nell’esempio precedente, la retta tangente è ottenuta utilizzando il vet-


tore derivato come vettore direzione e il punto P come punto di passaggio
della retta, ovvero
⎡ ⎤ ⎡ ⎤
π/2 0
r(s) = s ⎣ 1 ⎦ + ⎣π/2⎦ .
2 π
Superfici parametriche
5

Non c’è niente di più profondo di ciò che appare in superficie.


(Georg Wilhelm Friedrich Hegel)

In questo capitolo viene introdotta la rappresentazione parametrica delle su-


perfici partendo da quella più semplice (il piano) sino ad arrivare a superfici
complesse ottenute per generazione sfruttando le trasformazioni geometriche
introdotte nei capitoli precedenti. Sono presentati anche alcuni esempi applica-
tivi che dimostrano l’utilizzo di superfici parametriche in ambito architettonico
e grafico.

Nella pratica ingegneristica ed architettonica è di fondamentale importanza po-


ter descrivere dal punto di vista matematico superfici geometriche che possano
rappresentare oggetti, pezzi meccanici ed edifici (si veda la Figura 5.1).

5.1 Rappresentazione di superfici nello spazio

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

© Springer-Verlag Italia S.r.l., part of Springer Nature 2019 121


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_5
122 5 Superfici parametriche

Figura 5.1 Esempi di


superfici nel Design e
nell’Architettura: in alto, la
sedia Felt Chair di Marc
Newson (fotografia degli
autori); in basso, l’edificio
St. Mary Axe a Londra
progettato da Norman Foster
(fotografia di Colin Allen)
5.1 Rappresentazione di superfici nello spazio 123

coordinate geografiche latitudine e longitudine (che in questo contesto giocano il


ruolo di parametri). In generale quindi la rappresentazione di una superficie in forma
parametrica sarà del tipo


⎨x = f x (t, s),
y = f y (t, s),


z = f z (t, s),
essendo f x , f y ed f z tre funzioni assegnate, t ∈ It e s ∈ Is dove It ed Is possono
essere intervalli limitati (cioè It = [tmin , tmax ], Is = [smin , smax ]) o illimitati (cioè
It = [−∞, ∞], Is = [−∞, ∞]); l’insieme D = It × It si chiama dominio dei
parametri nello spazio parametrico. I parametri t e s possono assumere un significato
diverso a seconda della superficie considerata (tipicamente saranno lunghezze o
angoli).
Come vedremo nel seguito la forma parametrica di molte superfici, più o meno
complesse, può essere ottenuta adottando un approccio “generativo” analogo a quello
che è stato utilizzando nel caso delle curve.

5.2 Piani

La superficie più semplice che si possa immaginare è il piano. In questa sezione


vedremo dapprima come scrivere l’espressione parametrica di un piano ed in seguito
introdurremo alcune rappresentazioni alternative che possono risultare utili nelle
applicazioni.

5.2.1 Forma parametrica di un piano passante per l’origine

Cominciamo considerando i piani passanti per l’origine. In particolare, per iniziare


facciamo alcune osservazioni relativamente ai piani coordinati x y, x z ed yz; tali
piani sono denominati in questo modo poiché è possibile definire la posizione di
ogni punto dei 3 piani utilizzando una combinazione lineare di 2 vettori diretti come
gli assi che definiscono il nome del piano stesso. Ad esempio nel caso del piano x y
il vettore associato ad un generico punto P di tale piano può essere scritto come

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

π(t, s) = tv1 + sv2 , con t, s ∈ R, (5.1)


124 5 Superfici parametriche

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

Come ben noto dalla geometria un piano è univocamente determinato da 3 punti


P0 , P1 e P2 . Vediamo quindi come trovare i vettori giacitura noti i tre punti: in
particolare nel caso in esame uno dei 3 punti sarà l’origine (cioè P0 = O) mentre
gli altri due potranno essere due generici punti dello spazio. Come si vede facilmente
dalla Figura 5.2 i vettori giacitura sono dati da

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 .

Quindi il piano richiesto ha la seguente espressione


⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤
px 1 −1 t −s
⎣ p y ⎦ = t ⎣ 2 ⎦ + s ⎣ 0 ⎦ = ⎣ 2t ⎦ , con t, s ∈ R.
pz 3 1 3t + s

Si consideri una generica retta r(t) passante per l’origine


⎡ ⎤
v1x t
⎢ v1y t ⎥
r(t) = ⎢ ⎥
⎣ v1z t ⎦ ,
1

dove è stata utilizzata la rappresentazione in coordinate omogenee. Si consideri ora


una seconda retta w(s) sempre passante per l’origine e non parallela alla precedente
⎡ ⎤
v2x s
⎢ v2y s ⎥
w(s) = ⎢ ⎥
⎣ v2z s ⎦ .
1

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).

5.2.2 Forma parametrica di un piano generico

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

2. Trasliamo il piano σ in modo che passi per il punto Q. L’operazione di traslazione


equivale a sommare (in senso vettoriale) ad ogni punto del piano σ uno stesso
vettore q. Una possibile strategia per definire il vettore q si basa sull’osservazione
che la traslazione cercata è quella che porta l’origine nel punto Q e pertanto
q = Q − O (il vettore in blu in Figura 5.4). In conclusione il piano π cercato
ha la seguente espressione

p = tv1 + sv2 + q, con t, s ∈ R.

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 .

Il vettore q può essere scelto uguale a p0 (oppure a p1 o a p2 ).

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 .

Quindi il piano richiesto ha la seguente espressione (si veda la Figura 5.4):


⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤
px 2 −1 1 2t − s + 1
⎣ py ⎦ = t ⎣ 0 ⎦ + s ⎣ 1 ⎦ + ⎣ 3 ⎦ = ⎣ s + 3 ⎦ , con t, s ∈ R.
pz 2 1 3 2t + s + 3

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

Un piano può essere individuato assegnando la direzione normale al piano stesso


definita dal vettore normale n e la distanza del piano dall’origine dn misurata nella
direzione di n. Vediamo ora come ricavare n e dn a partire dai vettori giacitura v1
e v2 e dal punto P0 . Il versore n̂ = [n̂ x n̂ y n̂ z ]T si ottiene facilmente utilizzando il
prodotto vettoriale
v1 × v2
n̂ = . (5.3)
v1 × v2 
Da Figura 5.5 si nota che la distanza dn è la lunghezza della proiezione del vettore
p0 lungo la direzione individuata dal versore n̂, cioè

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̂.

Figura 5.5 Il modulo del


vettore arancione (che è
diretto come n̂) è la distanza
del piano dall’origine
misurata nella direzione di n̂
5.2 Piani 129

La precedente equazione ci consente anche di derivare in modo semplice la forma


cartesiana del piano. Infatti esplicitando il prodotto scalare si ha

n̂ x x + n̂ y y + n̂ z z − dn = 0,

che è la nota equazione del piano ax + by + cz + d = 0 dove sono espliciti i


significati dei coefficienti: a, b e c sono le componenti del versore normale al piano
e d è l’opposto della distanza del piano dall’origine misurata nella direzione di n̂.

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

Prendiamo come p il vettore associato al punto P0 ; si ha quindi



dn = p · n̂ = 8/ 206

Si verifichi che prendendo per p i vettori associati ai punti P2 o P3 il risultato


non cambia.

L’equazione (5.3) che consente di calcolare il versore normale ad un piano può


essere utilizzata per stabilire la posizione reciproca di due piani. In particolare dati
i piani σ e π ed i loro versori normali nσ ed nπ , l’angolo formato dai due piani
è dato da
θ = arccos (nσ · nπ ) .
In particolare se nσ · nπ = 0 allora le due normali sono perpendicolari e quindi
anche i piani lo sono.

5.3 Superfici di rivoluzione

Vediamo ora alcune superfici che si ottengono partendo da curve e ruotando tali
curve attorno ad un asse.
130 5 Superfici parametriche

5.3.1 Superficie sferica

Iniziamo a trattare il caso di generazione di una superficie sferica (o sfera) di raggio


r centrata nell’origine. A tale scopo consideriamo una circonferenza appartenente
al piano x y avente raggio r e centrata nell’origine; come abbiamo visto l’equazione
parametrica di tale curva è
⎡ ⎤
r cos(θ)
c(θ) = ⎣ r sin(θ) ⎦ .
0
Per generare la superficie sferica applichiamo alla precedente circonferenza una
rotazione attorno all’asse x (si potrebbe ruotare attorno ad una qualunque retta su cui
giace un diametro della circonferenza), ottenendo così la seguente forma parametrica
della sfera (si veda la Figura 5.6)

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

5.3.2 Superficie torica

Consideriamo ancora una circonferenza appartenente al piano x y di raggio r e centro


nel punto C = (0, R, 0). Una superficie torica (o toro) si ottiene applicando a tale
circonferenza una rotazione attorno all’asse x, cioè
⎡ ⎤⎡ ⎤ ⎡ ⎤
1 0 0 r cos(θ) r cos(θ)
S(θ, φ) = ⎣ 0 cos(φ) − sin(φ) ⎦ ⎣ r sin(θ) + R ⎦ = ⎣ (r sin(θ) + R) cos(φ) ⎦ .
0 sin(φ) cos(φ) 0 (r sin(θ) + R) sin(φ)

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.7 Superficie torica con R > r

Figura 5.8 Superfici toriche con R = r (a sinistra) ed R < r (a destra)


5.3 Superfici di rivoluzione 133

Figura 5.9 Sezioni delle superfici toriche con R = r (a sinistra) ed R < r (a destra)

Figura 5.10 Lente torica

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

Figura 5.11 Ellissoide ottenuto applicando una rotazione attorno all’asse x

Si può ottenere l’espressione di un ellissoide con centro nel punto C = (cx , c y , cz )


applicando la traslazione che porta il punto O nel punto C ad un ellissoide con centro
nell’origine, ottenendo:
⎡ ⎤
a cos(θ) + cx
S(θ, φ) = ⎣ b sin(θ) cos(φ) + c y ⎦ . (5.8)
b sin(θ) sin(φ) + cz

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.12 Ellissoide ottenuto applicando una rotazione attorno all’asse y

5.3.4 Cilindro retto a base circolare

Si consideri ora la seguente retta parallela all’asse z e passante per il punto di


coordinate (R, 0, 0)
⎡ ⎤ ⎡ ⎤
0 R
r(t) = ⎣ 0 ⎦ t + ⎣ 0 ⎦ , t ∈ R;
1 0
136 5 Superfici parametriche

Figura 5.13 Cilindro retto a base circolare ottenuto ruotando attorno all’asse z la retta blu

ruotando tale retta attorno all’asse z si ottiene


⎡ ⎤⎡ ⎤ ⎡ ⎤
cos(φ) − sin(φ) 0 R R cos(φ)
S(t, φ) = ⎣ sin(φ) cos(φ) 0 ⎦ ⎣ 0 ⎦ = ⎣ R sin(φ) ⎦ ,
0 0 1 t t

dove t ∈ R e φ ∈ [0, 2π). La superficie risultante è il cilindro retto a base circolare


di raggio R mostrato in Figura 5.13.

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

La direzione perpendicolare al piano x y è definita dal vettore k = [0 0 1]T , quindi


alla circonferenza C(φ) applicheremo una traslazione definita dal seguente vettore
⎡ ⎤
0
t = ⎣ 0 ⎦ , t ∈ R.
t

Utilizzando il formalismo delle coordinate omogenee, l’applicazione della trasla-


zione alla circonferenza equivale a
⎡ ⎤⎡ ⎤ ⎡ ⎤
1 0 0 0 R cos(φ) R cos(φ)
⎢0 0⎥ ⎢ ⎥ ⎢ ⎥
S(t, φ) = ⎢
1 0 ⎥ ⎢ R sin(φ) ⎥ = ⎢ R sin(φ) ⎥ ,
⎣0 0 1 t ⎦⎣ 0 ⎦ ⎣ t ⎦
0 0 0 1 1 1

con t ∈ R e φ ∈ [0, 2π), che corrisponde alla stessa forma parametrica ottenuta
ruotando una retta attorno all’asse z.

5.3.5 Superficie conica

Si consideri ora la seguente retta passante per l’origine ed appartenente al piano yz


⎡ ⎤
0
r(t) = ⎣ 1 ⎦ t, t ∈ R.
1

Ruotando tale retta attorno all’asse y si ottiene


⎡ ⎤⎡ ⎤ ⎡ ⎤
cos(φ) 0 sin(φ) 0 t sin(φ)
S(t, φ) = ⎣ 0 1 0 ⎦⎣ t ⎦ = ⎣ t ⎦, (5.9)
− sin(φ) 0 cos(φ) t t cos(φ)

dove t ∈ R e φ ∈ [0, 2π). La superficie risultante è la superficie conica (o cono) di


semi-apertura π/4 mostrata in Figura 5.15.

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

Figura 5.15 Superficie conica

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(φ)

5.4 Superfici rigate

Consideriamo due curve c(t) e d(t); la superficie

S(t, s) = c(t) + sd(t)


140 5 Superfici parametriche

si chiama superficie rigata; la curva c(t), t ∈ R, si chiama (curva) direttrice della


superficie. Inoltre per ogni t = t0 fissato, S(t0 , s) = c(t0 ) + sd(t0 ) è una retta
passante per c(t0 ) ed avente vettore direzione d(t0 ); tali rette sono dette generatrici
della superficie.
Esempi particolari si superfici rigate sono cilindro generato da una curva piana,
la cui forma parametrica è data da
⎡ ⎤ ⎡ ⎤
f (t) 0
S(t, s) = ⎣ g(t) ⎦ + s ⎣ 0 ⎦ ,
0 1
e la generalizzazione di una superficie conica, definita da
⎡ ⎤ ⎡ ⎤
cx f (t)
S(t, s) = ⎣ c y ⎦ + s ⎣ g(t) ⎦ .
cz h(t)

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

Figura 5.16 Iperboloide ad una falda

Esempio 5.11

Nel caso in cui si abbia c(t) = [cos(t), sin(t), 0]T e d(t) =


[cos(t/2) cos(t), cos(t/2) sin(t), sin(t/2)]T , si ottiene
⎡ ⎤ ⎡ ⎤
cos(t) cos(t/2) cos(t)
S(t, s) = ⎣ sin(t) ⎦ + s ⎣ cos(t/2) sin(t) ⎦ , (5.12)
0 sin(t/2)

che rappresenta un nastro di Möbius [19] (si veda la Figura 5.18).


142 5 Superfici parametriche

Figura 5.17 Sella

Figura 5.18 Nastro di Möbius


5.5 Real life applications: mappatura di pattern 143

5.5 Real life applications: mappatura di pattern

Supponiamo di voler applicare un pattern, descritto da un’immagine bidimen-


sionale, su una superficie di cui conosciamo l’espressione parametrica. In al-
cuni casi, si pensi ad esempio ad una superficie cilindrica, il procedimento è
piuttosto intuitivo: è sufficiente applicare l’immagine “arrotolandola” come un
foglio intorno alla superficie. Nella maggior parte dei casi tuttavia creare una
corrispondenza fra un pattern bidimensionale e una superficie 3D porta a ri-
sultati tutt’altro che prevedibili. Possiamo definire un procedimento generale
per la mappatura su superfici? Consideriamo una superficie descritta dalla sua
equazione parametrica, nel caso in esame una porzione di superficie cilindrica:
⎡ ⎤
R cos(φ)
S(t, φ) = ⎣ R sin(φ) ⎦ ,
t

dove t I ≤ t ≤ t F e φ I ≤ φ ≤ φ F .

Figura 5.19 Superficie cilindrica (sinistra) e pattern da applicare alla superficie (sinistra)

Inoltre, come mostrato in Figura 5.19, consideriamo un’immagine di larghez-


za e altezza pari a L e H rispettivamente, posizionata in un piano di coordinate
ξ, η. Ad ogni coppia di parametri t ∗ , φ∗ corrisponde un punto della superficie,
a cui vogliamo associare un punto nel piano ξη. Per coprire l’intera superfi-
cie dobbiamo scrivere una relazione tale per cui il punto (0, 0) del piano ξη
corrisponda al punto (t I , φ I ) della superficie, e (L , H ) corrisponda al punto
(t F , φ F ):
144 5 Superfici parametriche

t ∗ − tI
ξ∗ = L , (5.13)
tF − tI
φ∗ − φ I
η∗ = H . (5.14)
φF − φI

Si noti che avremmo anche potuto associare diversamente i parametri con le


coordinate ξ e η, ottenendo le seguenti relazioni:

φ∗ − φ I
η∗ = L , (5.15)
φF − φI
t ∗ − tI
ξ∗ = H . (5.16)
tF − tI

In Figura 5.20 possiamo osservare i risultati che si ottengono con le due


mappe proposte.

Figura 5.20 Risultato dell’applicazione del pattern sul cilindro in due direzioni diverso

In Figura 5.21 è mostrata la mappatura di un pattern su una sfera: si noti che in


corrispondenza dei poli tutti i punti, anche se con diversa longitudine, conver-
gono in un solo punto determinando la distorsione del pattern e la formazione
della figura “a stella”.
5.5 Real life applications: mappatura di pattern 145

Figura 5.21 Applicazione di un pattern (sinistra) su una superficie sferica (destra)

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.

5.6 Real life applications: St. Mary Axe

Il primo piano dell’edificio è posto ad una elevazione di 8.53 m ed il raggio


in corrispondenza di tale elevazione è di 22.86 m; il raggio massimo è pari a
28.65 m in corrispondenza del diciassettesimo piano (ogni piano ha un’altezza
di circa 4.23 m); infine al quarantesimo piano il raggio è di circa 3.05 m. Per
il momento approssimiamo metà della sezione verticale dell’edificio con il
seguente arco di parabola che interpola i dati descritti sopra:
⎡ ⎤
−0.0021t 2 + 0.2621t + 20.7751
c(t) = ⎣ 0 ⎦ , t ∈ [0, 175].
t

Ruotando tale curva attorno all’asse z si ottiene la superficie di Figura 5.22.


146 5 Superfici parametriche

Figura 5.22 Superficie di rotazione simile all’edificio St. Mary Axe (a sinistra); superficie
ricostruita e texturing (a destra)

5.7 Piano tangente

Si consideri una curva di coordinate

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

s (u) = S (t (u), s(u)) = St t + Ss s , (5.17)

dove i pedici t ed s denotano le derivate parziali rispetto a t ed s, mentre l’apice,


come visto nel Capitolo 1, indica l’operazione di derivata rispetto all’argomento
della funzione, in questo caso u. Allora il piano tangente in un punto P0 è l’unione di
5.7 Piano tangente 147

Figura 5.23 Mappatura di Spazio parametrico


una curva 2D definita nello
spazio dei parametri (in alto) s
su una superficie parametrica
3D (in basso). Nella figura in
basso la superficie S(t, s) è
rappresentata in verde
t = t(u), s = s(u)
mentre la curva s(u) è
rappresentata in blu smax

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

T(s̃, t˜) = S(t0 , s0 ) + t˜Su (t0 , s0 ) + s̃Sv (t0 , s0 ).

Il calcolo del piano tangente ad una superficie nel punto corrispondente ai


valori dei parametri (u 0 , v0 ) richiede quindi il calcolo dei due vettori giacitura
v1 = Su (u 0 , v0 ) e v2 = Sv (u 0 , v0 ) e del punto di tangenza p0 . Vediamo in dettaglio
come procedere al fine di determinare tali quantità.
148 5 Superfici parametriche

1. Calcolo del punto di tangenza. Banalmente per ottenere il punto di tangenza


dovremo sostituire i valori u 0 e v0 all’interno dell’espressione parametrica della
superficie, cioè p0 = S(u 0 , v0 ).
2. Calcolo dei vettori giacitura. I vettori giacitura si ottengono calcolando dappri-
ma i vettori derivati della superficie rispetto ai parametri u e v, (cioè le derivate
parziali Su (u, v) ed Sv (u, v) dell’espressione parametrica S(u, v)) e successiva-
mente sostituendo in tali vettori derivati i valori dei parametri u 0 e v0 . In pratica
avremo
v1 = Su (u 0 , v0 ), v2 = Sv (u 0 , v0 ).

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(φ)

Infine sostituiamo nelle espressioni appena trovate i valori t0 e φ0 ottenendo


⎡ ⎤ ⎡ ⎤
0 −1
v1 = St (t0 , φ0 ) = ⎣ 1 ⎦ , v2 = Sφ (t0 , φ0 ) = ⎣ 0 ⎦ .
1 0
5.7 Piano tangente 149

Figura 5.24 Piano tangente ad una superficie conica. In rosso sono evidenziati i vettori
giacitura del piano tangente

5.8 Real life applications: creazione di texture

Supponiamo di applicare ad una superficie non solo un’immagine bidimen-


sionale, ma di voler creare una vera e propria texture tridimensionale defor-
mando leggermente la superficie in modo da creare rilievi e profondità con
una precisa disposizione. In questa sezione mostreremo come creare una tex-
ture a partire da un’immagine supponendo che i punti con colori più chiari
(con valore o brightness maggiore nel sistema HSB) corrispondano a punti in
rilievo: si veda ad esempio Figura 5.25, in cui l’immagine di un labirinto è
150 5 Superfici parametriche

applicata ad un piano inclinato.

Figura 5.25 Creazione di una texture tridimensionale a partire da una immagine

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 )

dove n è il vettore normale alla superficie e α è un coefficiente che dipende dal


colore associato al punto. Nel caso di superfici generiche il vettore normale in
un punto può essere calcolato come prodotto vettore dei vettori giacitura del
piano tangente:
n(u 0 , v0 ) = Su (u 0 , v0 ) × Sv (u 0 , v0 ).
In Figura 5.26 mostriamo il risultato ottenuto mappando la fotografia di un
tessuto su una superficie, e creando la texture tridimensionale col procedimento
descritto.

Figura 5.26 Creazione di una texture ottenuta mappando l’immagine di un tessuto su una
superficie
Curve Freeform
6

La réussite d’une opération technique a toujours plusieurs


raisons, parmi lesquelles on peut compter une part de chance,
mais la proportion énoncée par Edison reste valable: 5%
d’inspiration, 95% de transpiration.
(Pierre Bézier)

Questo capitolo è dedicato alla presentazione delle curve freeform, ossia di


curve parametriche la cui forma è determinata da un set di punti detti punti di
controllo. Tali curve sono ampiamente utilizzate nella grafica computerizzata
grazie alla loro flessibilità e semplicità. Si illustreranno in dettaglio le proprietà
delle curve di Bézier, per poi trattare la generalizzazione alle curve B-spline
ed infine le curve NURBS.

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.

© Springer-Verlag Italia S.r.l., part of Springer Nature 2019 151


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_6
152 6 Curve Freeform

6.1 Curve di Bézier

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.

Riorganizzando l’espressione precedente si può osservare che i vettori corrispon-


denti ai punti di controllo sono moltiplicati per due funzioni del parametro t,

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

c(t) = B01 (t)p0 + B11 (t)p1 0 ≤ t ≤ 1,

Figura 6.1 Una curva di P1


y
Bézier definita da 4 punti di
controllo, evidenziati in
rosso
p1
P3
P0
p0 p3
p2
P2
x
6.1 Curve di Bézier 153

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 è

c(t) = p0 (1 − t)2 + p1 2(1 − t)t + p2 t 2


= B02 (t)p0 + B12 (t)p1 + B22 (t)p2 0 ≤ t ≤ 1. (6.1)

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

Figura 6.3 Funzioni di base Bi (t)


lineari B01 (t) e B11 (t)
1 B01 (t) B11 (t)

1 t

Figura 6.4 Funzioni di base Bi (t)


quadratiche B02 (t), B12 (t)
e B22 (t) 1 B02 (t) B22 (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

La curva è rappresentata in Figura 6.5.


z
P1

P0 P2 y
x
Figura 6.5 Curva di Bézier quadratica
6.1 Curve di Bézier 155

Figura 6.6 Funzioni di base Bi (t)


cubiche B03 (t), B13 (t), B23 (t)
e B33 (t) 1 B03 (t) B33 (t)

B13 (t) B23 (t)

1 t

Si procede analogamente per il caso di curve cubiche, definite da 4 punti di


controllo P0 , P1 , P2 , P3 ,

c(t) = p0 (1 − t)3 + p1 3(1 − t)2 t + p2 3(1 − t)t 2 + p3 t 3


= B03 (t)p0 + B13 (t)p1 + B23 (t)p2 + B33 (t)p3 0 ≤ t ≤ 1, (6.2)

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:

c(t) = (1 − t)3 p0 + 3(1 − t)2 tp1 + 3(1 − t)t 2 p2 + t 3 p3 =


       
3 0 1 2 1 3 3
(1 − t) + 3(1 − t) t
2
+ 3(1 − t)t +t =
1 2 0 1
 
3t − 3t 2 + 3t 3
.
1 + 3t − 9t 2 + 6t 3

La curva è rappresentata in Figura 6.7.

y P1

P0 P3

P2 x
Figura 6.7 Curva di Bézier cubica
156 6 Curve Freeform

Figura 6.8 Le prime righe


del triangolo di Tartaglia

Generalizzando, una curva di Bézier di grado n si esprime come la sommatoria


di n punti di controllo moltiplicati per le corrispondenti funzioni di base, dove il
parametro t varia nell’intervallo fissato [0, 1],


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.

6.1.1 Algoritmo di De Casteljau

L’algoritmo di De Casteljau si deve al matematico e fisico francese Paul De Casteljau


che lo ideò nel 1959, quando lavorava per la casa automobilistica Cïtroen. Si tratta di
un metodo iterativo per la costruzione dei punti delle curve di Bézier di grado qualsiasi
n. La sua formalizzazione matematica ci permette di ottenere l’espressione delle
funzioni di base Bi introdotte nel paragrafo precedente. Descriviamo l’algoritmo
di De Casteljau applicato alla costruzione di una curva di secondo grado, descritta
dai punti di controllo P0 , P1 , P2 . Come mostrato in Figura 6.11 un generico punto
Q 0 (t) del primo lato del poligono di controllo è indicato da un vettore q0 (t) ottenuto
come combinazione lineare di p0 e p1 , primi due vertici del poligono di controllo.
Si noti che il punto Q 0 dipende dal parametro t, ad esempio, per t = 21 , q0 indica
158 6 Curve Freeform

Figura 6.11 Algoritmo di P1


De Casteljau applicato alla
costruzione di una curva di
Bézier di grado due
Q0 Q1
c(t)
P2

P0

il punto medio del lato P0 P1 . Analogamente si definisce q1 (t) che rappresenta un


punto Q 1 (t) sul secondo lato (P1 P2 ) del poligono:

q0 (t) = (1 − t)p0 + tp1 , (6.4)


q1 (t) = (1 − t)p1 + tp2 . (6.5)

Successivamente, si collegano i punti Q 0 (t) e Q 1 (t) e su questo segmento si


sceglie un punto interno indicato dal vettore c(t), che è combinazione lineare di
q0 (t) e q1 (t) e dipende da t secondo le funzioni di base (1 − t) e t, come illustrato
in precedenza:
c(t) = (1 − t)q0 (t) + tq1 (t). (6.6)

Il punto ottenuto rappresenta il punto della curva di Bézier di grado 2 corrispon-


dente ad un generico valore del parametro t. Ripetendo questa costruzione geometrica
per 0 ≤ t ≤ 1 si ottengono tutti i punti della curva e, sostituendo le espressioni di
q0 (t) e q1 (t) in (6.6) otteniamo l’espressione delle funzioni di base della curva di
Bézier quadratica:

c(t) = (1 − t)((1 − t)p0 + tp1 ) + t ((1 − t)p1 + tp2 ) = (6.7)


(1 − t) p0 + 2(1 − t)tp1 + t p2 .
2 2

Per la costruzione di una curva cubica si segue un procedimento analogo, tuttavia è


necessario un passaggio in più come illustrato in Figura 6.12. Sui tre lati del poligono
di controllo si individuano tre punti Q 0 (t), Q 1 (t), Q 2 (t) (individuati dai vettori q0 (t),
q1 (t), q2 (t)) la cui posizione dipende da t: ad esempio, per t = 13 essi si trovano ad
un terzo della lunghezza del lato corrispondente:

q0 (t) = (1 − t)p0 + tp1 ,


q1 (t) = (1 − t)p1 + tp2 ,
q2 (t) = (1 − t)p2 + tp3 .
6.1 Curve di Bézier 159

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:

r0 (t) = (1 − t)q0 (t) + tq1 (t) = (1 − t)2 p0 + 2(1 − t)tp1 + t 2 p2 , (6.8)


r1 (t) = (1 − t)q1 (t) + tq2 (t) = (1 − t) p1 + 2(1 − t)tp2 + t p3 .
2 2
(6.9)

Infine, si collegano R0 (t) ed R1 (t) e, con la stessa proporzione dipendente dal


parametro t, si individua su questo segmento il generico punto della curva di terzo
grado, ottenuto combinando i corrispondenti vettori r0 (t) ed r1 (t),

c(t) = (1 − t)r0 (t) + tr1 (t). (6.10)

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:

c(t) =(1 − t)((1 − t)2 p0 + 2(1 − t)tp1 + t 2 p2 )+


t ((1 − t)2 p1 + 2(1 − t)tp2 + t 2 p3 )
=(1 − t)3 p0 + 3(1 − t)2 tp1 + 3(1 − t)t 2 p2 + t 3 p3 . (6.11)

Una rappresentazione dell’algoritmo di De Casteljau nel caso di curve cubiche è


presentata nella Figura 6.12.
Questo algoritmo è adattabile, ricorsivamente, a curve di grado n con n + 1 punti
di controllo.
160 6 Curve Freeform

6.2 Proprietà delle curve di Bézier

Le curve di Bézier introdotte nei paragrafi precedenti godono delle seguenti proprietà:

1. Grado: il grado polinomiale della curva n è legato al numero di funzioni di base


e punti di controllo, n + 1.
2. Poligono di controllo: il punto iniziale della curva coincide con P0 , il punto finale
con Pn .
3. Vettori tangenti: La curva è tangente al primo e ultimo lato del poligono di
controllo, come sarà dimostrato nel paragrafo successivo.
4. Inviluppo convesso: la curva è sempre contenuta nell’inviluppo convesso (convex
hull) dei punti di controllo. Come conseguenza, la curva è rettilinea se i punti
sono allineati, ed è piana se i punti sono complanari.
5. Variation diminishing: come mostrato in Figura 6.14 una retta interseca la curva
un numero di volte uguale o inferiore al numero di intersezioni con il poligono
di controllo. Si veda [13] per maggiori dettagli.
6. Invarianza rispetto a trasformazioni affini: applicare una trasformazione affine ai
punti di controllo equivale ad applicare la stessa trasformazione alla curva come
mostrato nell’Esempio 6.3.
7. Non località: a causa della natura delle funzioni di base la modifica di un solo
punto di controllo ha influenza sull’intera curva (Figura 6.15).

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

si può procedere in due modi:

1. Applicare la matrice R all’espressione vettoriale della curva f(t).


2. Applicare la matrice ai punti Pi ottenendo un set di punti trasformati Pi
con cui calcolare l’espressione della curva ruotata.

L’espressione della curva è la seguente

f(t) = (1 − t)3 p0 + 3(1 − t)2 tp1 + 3(1 − t)t 2 p2 + t 3 p3 =


         
1 2 3 3 1 + 3t − t 3
(1 − t)3 + 3(1 − t)2 t + 3(1 − t)t 2 + t3 =
1 2 2 1 1 + 3t − 3t 2

e moltiplicando per R si ottiene


6.2 Proprietà delle curve di Bézier 161

 
−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

Si noti che f̂(t) = f̃(t).

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

6.3 Raccordo di curve di Bézier

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

C1 : c(t) = f1 (t) α1 ≤ t1 ≤ β1 (6.12)


C2 : c(t) = f2 (t) α2 ≤ t2 ≤ β2 (6.13)

otteniamo un raccordo di continuità C 0 se il punto finale di C1 coincide con il punto


iniziale di C2 , ossia se f1 (β1 ) = f2 (α2 ). Nel caso delle curve di Bézier ricordiamo
che gli estremi per il parametro t sono sempre 0 e 1, quindi la condizione si riduce
a f1 (1) = f2 (0).
Inoltre ricordiamo che il punto iniziale e finale di una curva di Bézier coincidono
con il primo e ultimo punto di controllo rispettivamente. Se vogliamo raccordare
una curva caratterizzata dai punti di controllo P0 , . . . Pn con una seconda i cui punti
di controllo sono Q 0 , . . . Q m dobbiamo quindi richiedere che Q 0 = Pn . Come
mostrato in Figura 6.16 nel caso di due curve di terzo grado, imponendo la semplice
continuità C 0 non otteniamo necessariamente un raccordo “liscio”.
6.3 Raccordo di curve di Bézier 163

Figura 6.16 Raccordo con y


continuità C 0 fra due curve
di Bézier cubiche: si noti che
Q 0 = P3

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.

Siamo in particolare interessati a valutare il vettore derivato in t = 0 e t = 1. Nel



punto iniziale f  (0) = i=0
n
Bin (0)pi , e osserviamo che per t = 0 le uniche derivate
 
non nulle sono B0n (0) = −n, B1n (0) = n, quindi

f  (0) = n(p1 − p0 ).
164 6 Curve Freeform

P1

f1 (1) f2 (0)

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 ).

2(q1 − q0 ) = 2(p2 − p1 ) (6.14)


6.3 Raccordo di curve di Bézier 165

q1 − q0 = p2 − p1 (6.15)

Ricordando che q0 = p2 possiamo ricavare q1 come


     
2 0 2
q1 = 2p2 − p1 = 2 − = . (6.16)
2 1 1

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

Ovviamente è possibile anche realizzare raccordi in cui i vettori tangenti non


sono uguali o proporzionali. Nel prossimo esempio mostriamo come imporre che
due curve si raccordino con un angolo prescritto.

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

Esistono infiniti vettori t = [tx , t y ]T che soddisfano questa relazione. Se non


abbiamo ulteriori vincoli (ad esempio sul modulo di t) possiamo trovare una
delle infinite soluzioni semplicemente imponendo tx = 3. Otteniamo
√ √ 
2 18 9 + t y2 = 18 + 6t y

6 9 + t y2 = 18 + 6t y
9 + t y2 = 9 + 1 + 18t y + t y2
t y = 0.

Imponiamo quindi che 3(q1 − q0 ) = t, e inoltre che q0 = p3 , da cui q1 =


3 t + p3 = [4, 1] , da cui Q 1 = (4, 1). Scegliendo liberamente i punti
1 T

Q 2 e Q 3 completiamo la costruzione della seconda curva, rappresentata in


Figura 6.21.

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

6.4 Real life applications: le curve di Bézier nei


font True Type

Spesso, quando si ingrandisce molto un’immagine digitale raster (per esempio


in formato jpg, tif, png), si può notare che è formata da una griglia di pixel,
cioè di quadratini di colore diverso. Al contrario quando si ingrandiscono do-
cumenti pdf la risoluzione del testo risulta sempre perfetta indipendentemente
dallo zoom utilizzato, si veda la Figura 6.22. Questo è dovuto al fatto che la
forma dei caratteri è codificata non attraverso una griglia discreta di pixel, ma
tramite un’espressione matematica, con una serie di curve di Bézier raccordate
fra loro. In particolare per i font PostScript si utilizzano curve di Bézier rettili-
nee (lineari) e cubiche, mentre i font TrueType utilizzano solo curve lineari e
quadratiche, più semplici da calcolare.

Figura 6.22 Ingrandimento di alcuni caratteri senza perdita di qualità

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

6.5 Curve B-spline

Abbiamo sottolineato nei paragrafi precedenti alcuni limiti nell’applicabilità delle


curve di Bézier alla rappresentazione di forme complesse. In particolare le funzioni di
base globali rendono impossibile fare modifiche locali, ed il grado polinomiale della
curva cresce con il numero di punti di controllo, rendendo più oneroso il calcolo. Per
superare queste limitazioni è possibile utilizzare un diverso tipo di curve parametriche
polinomiali dette B-spline. Il nome deriva da spline, che indicava originariamente
una striscia sottile di legno, plastica o metallo che, fissata in alcuni punti, si può
flettere fino a descrivere la curva desiderata. Questo oggetto veniva utilizzato per la
progettazione, in particolare di imbarcazioni, prima che fossero disponibili sistemi
CAD. Oggi il termine spline indica una curva parametrica polinomiale, e il prefisso B
è un’abbreviazione di basis, ad indicare che la curva si esprime come combinazione di
funzioni di base. Tali funzioni di base però presentano importanti differenze rispetto
a quelle delle curve di Bézier, come vedremo.
Siano Pi , i = 0, . . . n gli n + 1 punti di controllo della curva B-spline, e siano
p
Bi (t) le corrispondenti funzioni di base: l’espressione della curva è


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.

Quindi, date le funzioni di grado p − 1 si definiscono quelle di grado p come

p t − ti p−1 ti+ p+1 − t p−1


Bi = Bi + B .
ti+ p ti+ p+1 − ti+1 i+1

In Figura 6.24 sono rappresentate le funzioni di base di grado p = 1, p = 2, p = 3


su un totale di 6 nodi. Possiamo osservare che il numero di funzioni di base, che deve
essere pari al numero di punti di controllo (n + 1), è legato al grado p ed al numero
di nodi m + 1. In particolare osserviamo che n + 1 = m − p = (m + 1) − ( p + 1),
ossia il numero di funzioni di base è pari al numero di nodi meno il grado più uno.
p
È inoltre importante osservare che le funzioni Bi (t) sono non nulle solo in una
parte limitata dell’intervallo [a, b]. Ciò ha una importante conseguenza: l’influenza
di un punto di controllo è limitata solo ad un tratto della curva. Ad esempio, nel caso
p = 1 ogni punto di controllo influenza solo l’intervallo fra un nodo t j ed il nodo
t j+2 , mentre se p = 2 le funzioni di base sono nulle fra t j e t j+3 . Le curve B-spline
quindi, al contrario delle curve di Bézier, sono locali. Si noti che le funzioni di base
rappresentate in Figura 6.24 sono tutte nulle in corrispondenza degli estremi a e b:
ciò significa che la curva non passa automaticamente per il primo e l’ultimo punto
di controllo, il cui peso è nullo in corrispondenza di t = a, t = b. Per far sì che
la curva passi per P0 , Pn è necessario collocare più nodi coincidenti in a e in b, in
particolare dobbiamo aggiungere in ciascun estremo p nodi coincidenti.

Figura 6.24 Le funzioni di Bi1


base delle curve B-spline di 1

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

Figura 6.25 In blu, una


curva B-spline con basi P4
4
quadratiche definita da 6
punti di controllo; in verde la
B-spline cubica definita dagli P3 P5
stessi punti di controllo. Il 3
simbolo “X” indica la
posizione dei nodi. In nero è
P2
rappresentata la 2
corrispondente curva di
Bézier di grado 5
P0
1

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

6.6 Curve NURBS

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

Consideriamo i punti Pi in coordinate omogenee e assegniamo a ciascuno un peso


wi . Indichiamo quindi con p̃i i vettori di componenti [wi pi x , wi pi y , wi ] e costruiamo
la curva NURBS come
n
p
x̃(t) = Bi p̃i .
i=0
Osserviamo che
⎡ n p ⎤
i=0 Bi (t)wi pi,x
x̃(t) = ⎣  ⎦
n p
i=0 Bi (t)wi pi,y ,
n p
i=0 Bi (t)wi
ossia il generico punto della 
curva, in coordinate omogenee, ha un peso variabile con
p
t e pari alla combinazione in Bi (t)wi . Se riscriviamo l’equazione in coordinate
cartesiane dividendo per il peso otteniamo
n p
Bi (t)wi pi
c(t) = i=0
n p . (6.19)
i=0 Bi (t)wi

È evidente che abbiamo ottenuto un’espressione razionale in cui polinomi in t


compaiono sia al numeratore sia al denominatore. I pesi wi associati ai punti di
controllo hanno un significato geometrico evidente se consideriamo i punti nello
spazio tridimensionale di coordinate (X, Y, W ) come rappresentato in Figura 6.26.
Costruire una curva NURBS bidimensionale corrisponde a costruire una curva B-
spline classica nello spazio aumentato assegnando ai punti di controllo coordinate
W , ossia pesi, diversi. La curva NURBS si può interpretare come la proiezione
6.6 Curve NURBS 173

Figura 6.26 Significato geometrico dei pesi di una curva NURBS

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

Il matematico è affascinato dalla meravigliosa bellezza delle


forme che
costruisce, e nella loro bellezza scopre verità eterne.
(George Bernard Shaw)

In questo capitolo vengono estesi alla rappresentazione di superfici i concetti


esposti nel capitolo precedente per le curve freeform. In particolare saranno
introdotte le superfici di Bézier nel caso tensoriale e su griglie triangolari,
le superfici B-Spline e le superfici NURBS. Saranno descritte le principali
proprietà di tali superfici.

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.

© Springer-Verlag Italia S.r.l., part of Springer Nature 2019 177


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_7
178 7 Superfici Freeform

Figura 7.1
A03 A13 A23 A33
Schematizzazione del
reticolo di controllo per una
superficie di grado (3, 3)

A02 A12 A22 A32

A01 A11 A21 A31

A00 A10 A20 A30


u

7.1 Superfici di Bézier

Iniziamo estendendo al caso di superfici le idee introdotte nel capitolo precedente


per descrivere le curve di Bézier. Nella presente trattazione considereremo solo il
caso di superfici di Bézier definite su un reticolo di controllo formato da quadrilateri;
per una trattazione relativa alle superfici di Bézier definite su una griglia di triangoli
si rimanda a [21].
Una superficie di Bézier è definita da una matrice di punti di controllo Ai j rappre-
sentati dai vettori ai j , dove i = 0, . . . , m e j = 0, . . . , n; si ha quindi una matrice
con m + 1 righe ed n + 1 colonne; in totale si hanno quindi (m + 1)(n + 1) punti di
controllo (si veda Figura 7.1).
L’espressione matematica della superficie di Bézier definita da tali punti di
controllo è data da


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

dove si è introdotta la seguente definizione:

Bi,m,n
j (u, v) = Bi (u)B j (v).
m n
7.1 Superfici di Bézier 179

In altri termini le funzioni di base utilizzate nella rappresentazione delle superfici


di Bézier si ottengono come prodotto delle funzioni di base nelle due direzioni
identificate dai parametri u e v.

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 ,

mentre quella corrispondente a i = j = 1 da


3,2
B1,1 = 3(1 − u)2 u · 2(1 − v)v,

si veda Figura 7.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

Figura 7.3 Superficie di


Bezier: u-curve in verde e
v-curve in blu. In rosso un
punto calcolato su una
v-curve

7.2 Proprietà delle superfici di Bézier

Le superfici di Bézier definite nella precedente sezione godono di alcune importanti


proprietà che sono diretta conseguenza delle corrispondenti proprietà delle curve di
Bézier. Vediamole in dettaglio:

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

Figura 7.4 Superficie di


Bézier di grado (3, 3): il
reticolo di controllo è
formato da 16 punti

Figura 7.5 Superficie di


Bézier di grado (3, 3): si può
notare che la superficie è
contenuta nell’inviluppo
convesso dei punti di
controllo ed inoltre i vettori
A01 − A00 e A10 − A00 sono
tangenti alla superficie nel
punto A00

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.

7.3 Raccordo di superfici di Bézier

Una singola superficie di Bézier non consente di rappresentare superfici complesse,


pertanto è di fondamentale importanza sviluppare un metodo per raccordare più
superfici di Bézier al fine di descrivere oggetti di reale interesse applicativo.
182 7 Superfici Freeform

Figura 7.6 Superficie rigata o cilindrica

Figura 7.7 Superficie conica

Consideriamo due superfici di Bézier σ1 e σ2 che abbiano un bordo del reticolo


di controllo in comune (si veda la Figura 7.8). Le due superfici sono chiaramente
unite lungo la curva di bordo γ definita dai punti di controllo comuni, tuttavia i piani
tangenti alle due superfici sono diversi.
Al fine di descrivere come raccordare anche i piani tangenti ed ottenere quindi
un raccordo C 1 (si veda Figura 7.9), consideriamo in particolare il caso in cui sia
assegnata, mediante i suoi punti di controllo Ai j , una prima superficie σ1 di grado
(3, 3) alla quale si vuole raccordare una seconda superficie σ2 definita dai punti di
controllo Bi j (che per semplicità supporremo ancora di grado (3, 3)) lungo il bordo
γ definito dai punti A30 , A31 , A32 e A33 . Dobbiamo quindi determinare quali condi-
7.3 Raccordo di superfici di Bézier 183

Figura 7.8 Raccordo C 0 di due superfici di Bézier di grado (3, 3)

Figura 7.9 Raccordo C 1 di due superfici di Bézier di grado (3, 3)

zioni devono soddisfare i 16 punti di controllo Bi j che definiscono la superficie σ2 .


La prima condizione da imporre richiede che i punti di controllo sul bordo comune
γ siano coincidenti quindi: A30 = B00 , A31 = B01 , A32 = B02 e A33 = B03 . Con
riferimento a Figura 7.10, dobbiamo ora imporre che le superfici rigate Θ1 e Θ2 di
grado (1, 3) tangenti a σ1 e σ2 lungo γ e formate rispettivamente dai punti di control-
lo A20 , A21 , A22 , A23 , A30 , A31 , A32 , A33 e B00 , B01 , B02 , B03 , B10 , B11 , B12 , B13
184 7 Superfici Freeform

Figura 7.10 Schema per il


calcolo della posizione dei
punti B10 , B11 , B12 e B13
utilizzando le superfici rigate
tangenti alle superfici di
Bézier

giacciano su una stessa superficie rigata Θ. Questa richiesta comporta che

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:

• Per ogni j = 0, 1, 2, 3, i punti A2 j , A3 j = B0 j e B1 j siano allineati.


• Che valga
B1 j − B0 j 
= α.
A3 j − A2 j 

Real life applications: creazione di superfici complesse

Utilizzando le tecniche di raccordo appena introdotte è possibile rappresentare


superfici complesse utilizzando superfici di Bézier di grado (3, 3) opportuna-
mente raccordate tra di loro. In Figura 7.11 viene è mostrata una teiera creata
raccordando in modo opportuno 32 superfici di Bézier.
7.3 Raccordo di superfici di Bézier 185

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

7.4 Superfici B-spline e NURBS

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

B-spline si ha che, dati

• una matrice di (m + 1) × (n + 1) punti di controllo Ai j , con i = 0, . . . , m e


j = 0, . . . , n,
• il grado p nella direzione identificata dal parametro u,
• il grado q nella direzione identificata dal parametro v,
• un vettore u di h + 1 nodi nella direzione u (con h = m + p + 1),
• un vettore v di k + 1 nodi nella direzione v (con k = n + q + 1),

la superficie B-spline si può esprimere come


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

controllo ha come effetto quello di spostare localmente la superficie verso il punto


di controllo stesso (si veda la Figura 7.12).
Per una trattazione più approfondita dell’argomento si rimanda a [20].
Curve e superfici di suddivisione
8

La divisione che separa il saggio dal folle è più sottile della tela
del ragno.
(K. Gibran)

In questo capitolo si forniscono i concetti fondamentali che stanno alla base


delle curve e superfici di suddivisione. Si partirà con una breve introduzione
sull’utilizzo di tali tecniche e si fornirà in seguito un esempio iniziale (quello
delle curve B-spline) per illustrare la idea di base delle regole di suddivisio-
ne. Infine, si descriveranno alcuni dei più celebri algoritmi di suddivisione
introdotti per il caso delle curve e delle superfici.

I software Computer-Aided Design(CAD) rivestono un ruolo fondamentale nel


processo di progettazione di prodotti industriali in diversi ambiti (meccanico, auto-
mobilistico, architettonico, aeronautico, fashion e interior design). Alla base del loro
utilizzo vi è la possibilità di generare, nello spazio, curve e superfici di forma pra-
ticamente arbitraria. A questo fine, due sono le tecniche oggigiorno maggiormente
utilizzate, le Non-Uniform Rational B-Splines (NURBS) introdotte nei capitoli 6 e
7, e le curve e superfici di suddivisione. Entrambe le tecniche si basano, in manie-
ra diversa, sulle B-Splines. Le NURBS costituiscono lo standard nell’ambito della
progettazione assistita al calcolatore, mentre le superfici di suddivisione sono molto
diffuse nella applicazioni grafiche e nell’animazione, in quanto non richiedono di
“incollare” le diverse superfici fra di loro, riducendo notevolmente i tempi di calcolo.

8.1 Curve di suddivisione

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)

punti di controllo e da un livello di raffinamento. Tuttavia, in questo caso la curva


non viene definita in forma analitica ma è ottenuta come limite di una successione di
poligoni via via più raffinati generati applicando un’opportuna regola di suddivisione.
In questa sezione, ci limiteremo per semplicità a discutere il caso di curve di
suddivisione nel piano. Si veda, ad esempio, in Figura 8.1, la curva di suddivisione
ottenuta con l’algoritmo di Chaikin (che verrà discusso nel dettaglio nella prossima
sezione).
Operativamente, si definisce un processo iterativo nel quale ad ogni iterazione
(livello) vengono generati dei nuovi punti della curva, secondo una specifica regola di
suddivisione che caratterizza l’algoritmo considerato. Ciò porta a definire, una curva
limite (e, vedremo, in modo analogo una superficie limite) liscia, ottenuta come
limite di una sequenza di successivi raffinamenti (suddivisioni). Si può mostrare
che la curva limite generata dall’algoritmo di Chaikin (mostrata in Figura 8.1(d))
corrisponde ad una curva B-spline quadratica.
Dal punto di vista pratico, data la risoluzione finita associata alla rappresenta-
zione digitale di un’immagine, non è mai necessario arrivare al limite e un numero
anche piuttosto piccolo di suddivisioni è sufficiente per ottenere una rappresentazione
perfettamente liscia a livello visivo.
8.1 Curve di suddivisione 191

(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)

Diversi algoritmi corrispondono a diverse regole di suddivisione. A titolo di esem-


pio, mostriamo di seguito come, scegliendo altre regole di suddivisione, a partire dallo
stesso poligono di controllo iniziale possiamo ottenere diverse curve di suddivisione.
In particolare, in Figura 8.2 è mostrata la curva che si ottiene applicando una regola
di suddivisione che ammette come curva limite una B-spline cubica.
Negli schemi di suddivisione utilizzati per gli esempi visti finora (Figure 8.1 e
8.2), i punti che definiscono il poligono di controllo iniziale non appartengono alla
curva limite. Si parla in questo caso di schemi di suddivisione approssimanti. Esiste,
tuttavia, anche una seconda classe di schemi che garantisce che i punti di controllo
giacciano sulla curva limite. Tali schemi sono detti interpolanti. In Figura 8.3, è
mostrata la curva di suddivisione ottenuta a partire dagli stessi punti di controllo
considerati prima, utilizzando uno schema di suddivisione interpolatorio.
Gli schemi interpolanti sono interessanti perché più intuitivi, nel senso che l’ope-
ratore ha una immediata idea della curva (o superficie) che si sta generando. Tuttavia,
la qualità delle curve ottenute con schemi di approssimazione è, in generale, molto
migliore rispetto agli schemi interpolanti, e anche le proprietà di convergenza sono
migliori per i primi rispetto ai secondi. Per questi motivo gli schemi approssimanti
sono, nella pratica, più utilizzati. A titolo di confronto, e per ribadire come a partire
dallo stesso insieme di punti di controllo si possano ottenere curve differenti utiliz-
192 8 Curve e superfici di suddivisione

(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].

8.1.1 L’algoritmo di Chaikin

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

Figura 8.4 Diverse curve di


suddivisione generate dallo
stesso poligono di controllo (a)
iniziale: (a) curva
approssimante quadratica,
(b) curva approssimante
cubica, (c) curva interpolante

(b)

(c)
194 8 Curve e superfici di suddivisione

D
C

B
A

Figura 8.5 Tre livelli di suddivisione dell’algoritmo di Chaikin

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

qualitativamente rappresentati in Figura 8.1 in basso. Si noti come si sia posto


p0−1 = p03 essendo la spezzata di partenza chiusa.

8.1.2 Le B-spline come curve di suddivisione

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

bl (t) = bl (2t) Sl , (8.3)

con Sl la matrice di suddivisione i cui elementi non nulli sono definiti da


 
1 l +1
l
S2i+k,i = l ,
2 k

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

dove pi = (xi , yi )T , i = −N , . . . , N sono i punti di controllo. In forma compatta,


introducendo la matrice P ∈ R2N +1,2 e notando che in questo caso bl ∈ R2N +1 , la
curva B-spline può essere espressa nel seguente modo
 T
c(t) = bl (t) P ,

ove, per i = −N , . . . , N , si è posto Pi1 = xi , Pi2 = yi .


Grazie alla relazione (8.3), la curva B-spline può essere scritta anche nel seguente
modo
 T
c(t) = bl (2t) Sl P ,
cioè come funzione non delle B-spline di partenza ma delle loro dilatate applicate
ai nuovi punti di controllo Sl P. Si dice che è stato introdotto un nuovo livello di
suddivisione. Questo procedimento può essere ripetuto iterativamente. In particolare,
se indichiamo con P j la matrice dei punti di controllo al livello di suddivisione j, e
omettiamo l’indice l nella matrice S, si ha P j+1 = S P j e

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 .

Da questa catena di uguaglianze, si conclude che ripetendo il processo di suddivisione


più volte, la spezzata che congiunge i punti di controllo converge alla curva B-spline
che quei punti di controllo stanno generando. In altri termini, la curva B-spline
8.1 Curve di suddivisione 197

pj+1
5
pj4 pj3 pj+1
4

pj+1
3
pj+1
2

pj1 pj2 pj+1


1

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 .

Schemi di suddivisione per cui al nuovo passo di suddivisione j + 1 i punti dispari


sono nuovi punti introdotti mentre i punti pari coincidono con tutti i punti (pari e
j
dispari) pi al passo precedente, sono sono schemi interpolanti. Schemi invece per
j+1 j
cui p2i = pi sono invece schemi approssimanti.
Ad esempio, per B-spline cubiche, i coefficienti s dispari sono 1/2 e 1/2, mentre
quelli pari sono 1/8, 6/8, 1/8, si veda Figura 8.6. Esse sono quindi ottenute mediante
uno schema di suddivisione approssimante. Si noti come il primo, il terzo e il quinto
j+1 j+1 j+1
punto del nuovo livello (p1 , p3 , p5 , punti dispari) siano stati ottenuti come
j+1 j+1
media di due punti originari successivi, invece il secondo e il quarto (p2 , p4 ,
punti pari) come media pesata di tre punti originari.

8.2 Superfici di suddivisione

Analogamente al caso delle curve di suddivisione, una superficie di suddivisione è


definita applicando in modo iterativo, a partire dai punti iniziali di controllo (reti-
colo di controllo), un’opportuna regola di suddivisione. Un esempio di superficie di
suddivisione approssimante ottenuta a partire da un reticolo iniziale di quadrilateri
è mostrato in Figura 8.7.
198 8 Curve e superfici di suddivisione

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

Anche in questo caso, distingueremo fra schemi approssimanti e interpolanti. Di-


remo inoltre che uno schema è uniforme se il reticolo viene raffinato uniformemente
attraverso l’inserimento di punti, secondo la regola di suddivisione considerata, par-
tendo da tutti i punti del livello precedente e per tutti i livelli. In caso ciò non avvenga,
perché non tutti i punti partecipano alla suddivisione e/o perché la suddivisione non
viene fatta ad ogni livello, diremo che lo schema è non uniforme.
Un’altra distinzione consiste nella forma delle celle del reticolo che si originano
ad ogni livello. Le più utilizzate sono le tassellazioni quadrilatere in cui i reticoli
sono formati da facce quadrilatere.
Infine, distinguiamo fra schemi primali e duali. Nei primi, ogni faccia è suddivisa
in quattro, i vecchi vertici vengono mantenuti e ne vengono creati di nuovi sui lati e al
centro della faccia originaria. In analogia a quanto visto per le curve di suddivisione,
i nuovi punti sono chiamati dispari (che possono essere di lato o di faccia), mentre i
vecchi sono chiamati pari e sono detti punti di vertice. Nei secondi schemi (i duali),
invece, per ogni vertice del livello di partenza, vengono inseriti nel nuovo livello
tanti nuovi vertici quante le facce adiacenti a quello di partenza, si veda Figura 8.8.
Un classico esempio di schema di suddivisione approssimante uniforme per reti-
coli composti da quadrilateri è dato dallo schema di Doo-Sabin [2], che produce al
limite superfici B-spline biquadratiche uniformi. L’idea è quella di generare per ogni
8.2 Superfici di suddivisione 199

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

Figura 8.9 Due esempi di  


suddivisione per lo schema pj3 3
16
pj2 1
16
di Doo-Sabin. Con il pallino
pieno, è indicato il punto che pj+1
3 pj+1
2
si sta generando e in
parentesi i pesi
corrispondenti utilizzati per
ciascun vertice di partenza
nella media pesata

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

Figura 8.10 Tipi diversi di


facce generate dall’algoritmo
di Doo-Sabin: facce di tipo
faccia (in blu), facce di tipo
lato (in rosso) e facce di tipo
vertice (in verde)

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

Figura 8.11 Regole di 1 1


4 4
suddivisione per lo schema
di Catmull-Clark. Dall’alto
verso il basso: punto di
faccia, punto di lato, punto di
vertice

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.

8.3 Real life applications: l’animazione digitale

Uno dei compiti più difficili nell’ambito dell’animazione digitale (o computer


animation) è quello di creare personaggi realistici. Sino alla fine degli anni
’90 le varie parti del corpo di un personaggio venivano create usando superfici
NURBS. Tuttavia tale approccio poneva grossi limiti in termini di flessibilità
in particolare risultava praticamente impossibile effettuare raffinamenti locali e
creare superfici con topologie complesse. Nel 1998 con il lavoro dei ricercatori
della Pixar (si veda [10]) è stato introdotto l’uso delle superfici di suddivisio-
ne nell’ambito della computer animation con il corto Geri’s Game. Da quel
momento tali superfici sono diventate lo strumento principale per la modella-
zione di personaggi complessi (si vedano ad esempio le Figure 8.13 e 8.14)
consentendo una maggiore flessibilità ed una maggiore velocità nello sviluppo
dei modelli.

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.14 Quattro frame tratti dall’animazione del robot

Un ulteriore possibile utilizzo delle geometrie ottenute mediante tecniche di sud-


divisone di superfici è nell’ambito dei processi di additive manufacturing brevemente
descritti nella scheda seguente.

8.4 Real life applications: la stampa 3D

La stampa 3D è una tecnologia di additive manufacturing che ha avuto un


notevole sviluppo negli ultimi anni e che si è dimostrata essere estremamente
utile in diversi contesti applicativi: dalla prototipazione rapida alla realizzazio-
ne di protesi. Gli oggetti da stampare sono solidi tridimensionali la cui forma
è definita da una superfice arbitrariamente complessa. La forma dell’oggetto
da stampare viene solitamente definita mediante superfici parametriche o di
suddivisione ed in genere esportata in un file in formato STL (Standard Trian-
gulation Language) [6]: in tale formato la superficie è descritta mediante una
lista di triangoli definita mediante la posizione dei punti e la connettività (cioè
come i punti sono connessi tra loro per formare i vari triangoli). Le stampan-
ti 3D operano depositando il materiale strato per strato quindi a partire dalla
geometria 3D definita nel file STL è necessario procedere ad una operazione di
slicing (utilizzando software quali Skeinforge o MakerWave slicer) mediante la
quale viene generato il cosiddetto G-code [18] dal quale poi vengono ottenuti i
file da inviare alla stampante. Un semplice esempio di superficie triangolata di
8.4 Real life applications: la stampa 3D 205

un modellino di barca (liberamente scaricabile dal sito http://www.3DBenchy.


com) e il corrispondente oggetto stampato in 3D sono mostrati in Figura 8.15.

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)

© Springer-Verlag Italia S.r.l., part of Springer Nature 2019 207


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
208 Riferimenti bibliografici

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

© Springer-Verlag Italia S.r.l., part of Springer Nature 2019 209


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
210 Indice analitico

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

perpendicolari, 101 Teorema di Pitagora, 27


Riflessione, 70 Terna destrorsa, 27
Rotazione, 67 Texture, 149
Toro, 131
S Traiettoria, 115
Sarrus, regola di, 59 Trasformazione geometrica, 60
Scalatura, 62 affine, 60, 76, 160
Schema di suddivisione composizione, 77
approssimante, 191, 198 deformazione di taglio, 64
interpolante, 191, 198 identità, 62
Seno, 6, 11 in coordinate geometriche, 75
non affine, 83
Sfera, 130
proiezione ortogonale, 83
Shear, 64
proiezione prospettica, 85
Sistemi di riferimento, 26
riflessione, 70
coordinate cartesiane, 26
rotazione, 67
coordinate cilindriche, 31
scalatura, 62
coordinate geografiche, 32
shear, 64
coordinate polari, 29
traslazione, 72, 76
coordinate sferiche, 31
Traslazione, 72, 76
Spirale di Archimede, 112
Triangolo di Tartaglia, 156
Stampa 3D, 204
Superfici di suddivisione, 197
V
Superficie, 121
Variation diminishing, 160
B-spline, 185
Vettore, 34
cilindrica, 181
colonna, 39
cilindro, 135
direzione, 34
conica, 138
giacitura, 124
di Bézier, 178
modulo, 34
di rivoluzione, 129
normale, 128
di suddivisione, 189
ortogonalità, 36
ellissoide, 133
prodotto scalare, 36, 41
iperboloide, 140
prodotto scalare-vettore, 35, 40
non-uniform rational b-splines (NURBS), prodotto vettoriale, 36, 43, 128
185 regola del parallelogramma, 35, 40
piano, 123 riga, 39
rigata, 139, 180 somma, 35, 36, 40
sferica, 130 sottrazione, 35
torica, 131 tangente, 146
Superficie conica, 138, 181 versore, 39
vettori di base, 37
T Vettore derivato, 117, 163
Tangente, 116 Vettore direzione, 97
Teorema Vettore giacitura, 124
di Binet, 60 Vettore tangente, 164

Potrebbero piacerti anche