Enseignant du Cours: DJAFER BADDOU (PhD)
Courriel: djafer.baddou@uqo.ca
Programmation 2D/3D:
INF 1483
1
Contenu
Introduction
Mathématiques
de l’Infographie
Introduction à
l’Infographie
Effets Optiques et
Etat du Rendu
Techniques
d’Animation et
Simulation 2D/3D
2
Programmation 2D/3D:
INF 1483
Introduction à
OpenGL
IDE pour
OpenGL
Notions
Mathématiques
Notions Mathématiques
INTRODUCTION
La géométrie est l'étude des relations entre les objets dans un
espace à n‐dimensions.
En infographie, nous sommes intéressés à des objets qui
existent en 2D/3D.
Les objets géométriques sont exprimés souvent dans un
repère cartésien (O, x , y , z).
Un point, par exemple en 3D, a trois coordonnées: (x, y, z).
Nous aurons principalement besoin de trois éléments de base:
Les scalaires.
Les vecteurs.
Les points.
Programmation 2D/3D:
INF 1483
3
Les Scalaires
Les Scalaires
Les scalaires obéissent aux lois ordinaires
des opérations arithmétiques de base:
l'addition, la soustraction, la
multiplication et la division.
Les scalaires obéissent à certains axiomes
algébriques fondamentaux ex:
associativité,
commutativité,
etc.
INTRODUCTION
4
En physique, plusieurs quantités
comme la masse, le volume et le
temps sont spécifiés par leur
grandeur suivi ou non d'une unité ( 1
kg , 14 litres , 30 sec, 3 °C, ...).
Ces quantités n'impliquent pas
d'idées de direction.
De telles quantités sont appelées
scalaires.
Un scalaire est une quantité physique
qui n'est spécifié que par sa grandeur.
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Les Scalaires
Les Vecteurs
Un vecteur est une quantité physique
qui est spécifié par une grandeur, une
direction et un sens.
En physique, les exemples
incluent:
Les vecteurs de force, de
vitesse, etc.
INTRODUCTION
5
Un scalaire est souvent un nombre
entier , réel ou complexe.
Les exemples familiers de scalaires
incluent les ensembles:
de nombres entiers: Z
(ex. ‐1, 3, 5, etc.),
de nombres réels: R
(ex. ‐1.3, 5.43, etc.), et
de nombres complexes: C
(ex. ‐1+i, 3, 3i+5, etc.).
Notions Mathématiques
Programmation 2D/3D:
INF 1483
INTRODUCTION
INTRODUCTION
1) (E, +) est un groupe abélien, c -`a - d :
(, , ) E
3
(+ )+ = + (+ ) (associativité)
(, ) E
2
+ = + (commutativité)
   E,    E, + = (élément neutre)
   E,  E, +  = (symétrique)
Espaces Vectoriels
6
Notion d’espace vectoriel
Soit K représente un corps commutatif.
On considère un ensemble E sur lequel
on suppose définir:
− une loi de composition interne notée
additivement (+)
− une loi de composition externe, notée
multiplicativement (.), de K × E dans E
On dit que E est un espace vectoriel sur K si:
Notions Mathématiques
Programmation 2D/3D:
INF 1483
INTRODUCTION
INTRODUCTION
2) (, ) E
2
, (λ, µ) K
2
on a :
λ .(+ ) = λ . + λ .
(λ + µ). = λ . + µ .
λ .(µ . ) = (λµ).
. =
est lélément neutre pour la multiplication de K
Dans toute la suite, on notera l’élément neutre pour la loi
de composition interne et on l’appellera le vecteur nul.
Le symétrique d’un élément de E sera noté .
E est un espace vectoriel sur K et ses éléments des vecteurs
Espaces Vectoriels
7
Notion d’espace vectoriel
Soit K représente un corps
commutatif.
On considère un ensemble E sur
lequel on suppose définies
− une loi de composition
interne notée additivement (+)
− une loi de composition
externe, notée
multiplicativement (.), de K × E
dans E
On dit que E est un espace
vectoriel sur K si:
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Les Vecteurs
Les Vecteurs
La somme et la soustraction de
deux vecteurs quelconques
est respectivement: U+V et
U‐V. Chacune résulte en un
autre vecteur:
Espaces Vectoriels
8
Chaque vecteur V non nul a
un vecteur opposé ‐V qui a
la même grandeur mais de
direction inverse au
vecteur original.
Notions Mathématiques
Programmation 2D/3D:
INF 1483
v
-v
v
w=u+v
u
v
Exemples
Exemples
Exemples:
on pose :
1. x + x′ = (x
1
+ x’
1
, . . . , x
n
+ x’
n
) et
2. λ . x = (λx
1
, λx
2
, . . . , λx
n
)
Muni de ces deux lois, K
n
est un espace
vectoriel sur K.
En particulier, tout corps commutatif K est
un espace vectoriel sur lui-même.
Espaces Vectoriels
9
Soit n un entier strictement positif.
On considère les suites ordonnées de n
éléments de K : (x
1
, x
2
, . . . , x
n
).
Lensemble de ces suites est noté K
n
.
Soient
x = (x
1
, x
2
, . . . , x
n
) et x′ = (x
1
, x
2
, . . . , x’
n
)
deux éléments de K
n
et
soit λ
K,
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Ensemble des Applications
Ensemble des Applications
2. et une loi appelée multiplication × par un
scalaire:
K × F(K, K) −→ F(K, K)
(λ, f) −→ λ f
où λ f est l’application définie par
(λ f)(x) = λ f(x)
pour tout x dans E.
Muni de ces deux lois, l’ensemble F(K, K) est un
espace vectoriel sur K.
Espaces Vectoriels
10
On note F(K, K) l’ensemble des
applications de K dans K.
1. On définit, sur F(K, K), une loi
appelée addition + des
applications
F(K, K) × F(K, K) −→ F(K, K)
(f, g) −→ f + g
où f + g est l’application définie par
(f + g)(x) = f(x) + g(x)
pour tout x K,
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Propriétés Élémentaires
EV de Dimension Finie
Définition: Un espace vectoriel E est dit de dimension finie s’il admet
une famille génératrice finie.
Dire qu’une famille (xi)i
I est génératrice d’un espace vectoriel E
signifie que E = Vect (xi) , i
I
Théorème: Soit E un espace vectoriel non nul de dimension finie. Alors
E admet une base finie.
Corollaire : Soit E un espace vectoriel de dimension finie. De toute
famille génératrice de E, on peut extraire une base de E.
Espaces Vectoriels
11
λ K, λ . 0
E
= 0
E
x E, 0 . x = 0
E
x E, λ K,
(−λ). x = (λ . x)
λ . x = 0  λ = 0
ou x = 0
E
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Notion de Base
Notion de Base
Définition: Soit ( xi ) i I une famille d’éléments
de E. Dire que cette famille est libre (ou que les xi
sont linéairement indépendants) signifie que,
pour toute famille (λi) d’´éléments de K presque
tous nuls, si X iI
λixi = 0, alors, pour tout i I, λi = 0.
Dans le cas contraire, on dit que la famille est liée
ou que les xi sont linéairement d´dépendants.
Une famille (xi)iI est liée si et seulement si
l’un des xi est combinaison linéaire des autres.
Espaces Vectoriels
12
Définition On dit qu’une famille (xi)i I
est une base de E si elle est libre et
génératrice de E.
Théorème: Soit (ei) iI une base d’un
espace vectoriel E. Tout vecteur x de E
s’´écrit de manière unique comme
combinaison linéaire des ei
: x = X iI λiei.
Les λi sont appelés les coordonnées
de x dans la base (ei)iI .
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Indépendance linéaire
Indépendance linéaire
Si un ensemble de
vecteurs est linéairement
indépendant, nous ne
pouvons pas représenter
un en terme des autres.
Si un ensemble de vecteurs
est linéairement dépendant,
on peut écrire au moins un
des vecteurs en termes des
autres.
Espaces Vectoriels
13
Un ensemble de vecteurs:
v
1
, v
2
, ..., v
n
sont linéairement indépendants si:
α
1
v
1
+ α
2
v
2
+…+ α
n
v
n
= 0
<==>
α
1
= α
2
= ... = α
n
= 0
α
1
, α
2
,, α
n
sont des
constantes réelles.
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Notion de dimension
Notion de Base
Étant donné une base
{v
1
, v
2
, ...., v
n
},
tout vecteur v dans l’espace
peut être écrit comme
suit:
v = α
1
v1 + α
2
v
2
+…+ α
n
v
n
les {α
i
} sont uniques.
Espaces Vectoriels
14
Dans un espace vectoriel, le
nombre maximal de vecteurs
linéairement indépendants est
fixe et est appelé la dimension
de l'espace.
Dans un espace à n
dimensions, tout ensemble de
n vecteurs linéairement
indépendants forment une
base pour l'espace.
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Système de coordonnées
Système de coordonnées
Nous pouvons écrire la
représentation comme une
ligne ou un tableau de
scalaires colonne:
Espaces Vectoriels
15
Considérons une base
{v
1
, v
2
, ...., v
n
}.
Étant donné un vecteur écrit
v = α
1
v
1
+ α
2
v
2
+…+ α
n
v
n
,
la liste de scalaires
{α
1
, α
2
, .... , α
n
}
est la représentation de v par
rapport à la base donnée.
Notions Mathématiques
Programmation 2D/3D:
INF 1483
n
2
1
n21
T
v =
Système de coordonnées
Système de coordonnées
Nous pouvons écrire la
représentation comme une
ligne ou un tableau de
scalaires colonne:
Espaces Vectoriels
16
Considérons le vecteur:
v = 2v
1
+ 3v
2
-4v
3
.
Les coordonnées du vecteur sont:
(2,3,-4).
Ces coordonnées sont finies
par rapport à la base
{v
1
, v
2
, v
3
}.
Notions Mathématiques
Programmation 2D/3D:
INF 1483
n
2
1
n21
T
v =
Espace Vectoriel Euclidien
Problème
Les espaces de vecteurs sont
insuffisants pour décrire toute la
géométrie,
Exemple plusieurs vecteurs de
positions différents peuvent avoir
les mêmes direction et grandeur
dans l’espace.
Espaces Vectoriels
17
Définition: On appelle espace vectoriel
euclidien tout espace vectoriel réel de
dimension finie muni d'un produit scalaire.
La positivité du produit scalaire permet de
définir pour tout vecteur :
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Solution
Relation
Il y a une relation directe
entre les points et les
vecteurs.
Espace Affine
18
Points: Besoin de
localisation dans l’espace.
Un point constitue une
position dans l'espace.
Notions Mathématiques
Programmation 2D/3D:
INF 1483
finition
finition
1. L'espace vectoriel Ε
s'appelle alors L'espace
vectoriel directeur (ou
direction) de l'espace
affine Ԑ.
Les éléments de Ԑ sont
appelés des points et
Les éléments de E sont
appelés des vecteurs.
2. Lapplication de Ԑ × Ε
dans Ε donne une
application bijective
(ex: translation voir
détail plus loin )
Espace Affine
19
On dit qu'un ensemble non vide Ԑ est un espace affine s'il existe:
1. un espace vectoriel Ε et
2. une application de Ԑ × Ε dans Ε
qui
au point A
Ԑ et
au vecteur
E
associe un point B
Ԑ noté B = A +
Vérifiant les 3 axiomes:
1.
A
Ԑ , A + = A
2.
A
Ԑ ,
,
E on a , (A + ) + = A + ( + ) ;
3.
( A , B )
Ԑ
2
,
E t.q. B = A + , on note = 
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Vecteur défini par deux points
Vecteur défini par deux points
Vecteur défini par deux points:
relation de Chasles
A1-
( A , B , C )
Ԑ
3
, on a:
 +  = 
A + ( + ) = ( A + ) + 
= B +  = C .
( A , B )
Ԑ
2
,  = -  ;
en effet,
 +  =  =
Espace Affine
20
Vecteur défini par deux points:
Soit l’espace affine Ԑ attaché a l’espace vectoriel E.
Étant donnés deux points A et B de Ԑ , l’unique vecteur
tel que: B = A + est noté  .
Les 3 axiomes, jointe a cette définition, donnent alors
les résultats suivants:
1.
A
Ԑ , A + = A t
u
= Id
Ԑ
2.
A
Ԑ ,
,
E on a , (A + ) + = A +( + )
t
u+v
= t
u
o t
v
3.
( A , B )
Ԑ
2
,
E t. q B = A + = 
Pour B = A  = 0
.
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Système de coordonnées
Système de coordonnées
Espace Affine
21
Un système de coordonnées
est insuffisant pour représenter
les points.
Si nous travaillons dans un
espace affine, nous pouvons
ajouter un point unique,
l'origine, aux vecteurs de base
pour former un repère.
Notions Mathématiques
Programmation 2D/3D:
INF 1483
v
2
v
1
v
3
P
0
Repère Affine
Repère Affine
Ainsi, les coordonnées x
1
, x
2
, . . . , x
n
de P
dans le repère R = ( O , B ) sont caractérisées
par l'égalité:
 = x
1
1 +
x
2
2
, + . . . + x
n
n
Espace Affine
22
Un repère de l’espace affine Ԑ de
directeur l’espace vectoriel E est un
couple R = ( O , B ) formé d’un point O
Ԑ et d’une base B = (
1
,
2
, . . . ,
n
)
de E.
Le point O est appelé origine du repère
et (
1
,
2
, . . . ,
n
) sont appelés les
vecteurs de base du repère. R = ( O , B ).
P
Ԑ les composantes du vecteur
 dans la base du repère R = ( O , B )
sont appelés les coordonnées de P dans
le repère R = ( O , B ).
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Repère Affine
Repère Affine
Espace Affine
23
Dans ce repère, chaque
vecteur peut être écrit
comme suit:
v = α
1
v
1
+ α
2
v
2
+ .... + α
n
v
n
et chaque point peut être
écrit comme suit:
P = P
0
+ β
1
v
1
+ β
2
v
2
+ ... + β
n
v
n
Notions Mathématiques
Programmation 2D/3D:
INF 1483
v
2
v
1
v
3
P
0
P
Résumé
Les Points
On a besoin de localisation
dans l’espace (les points).
Un point constitue une
position dans l'espace.
Espace Affine
24
Dans un espace affine
Les éléments de Ԑ sont appelés
des points et
Les éléments de E sont appelés
des vecteurs.
Les espaces de vecteurs
sont insuffisants pour
décrire toute la géométrie,
On a besoin de localisation
dans l’espace (les points).
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Les Points
Les Points
Pour nommer un vecteur on peut :
utiliser l’origine et l’extrémité d’un représentant du
vecteur : on parlera du vecteur QP 
lui donner un nom à l’aide d’une lettre (en générale
minuscule) : on parlera alors du vecteur v
Espace Affine
25
Il y a une relation
directe entre les points
et les vecteurs. Soit la
figure suivante: avec
deux points P et Q.
Il est facile de
démontrer dans
n’importe quel repaire
cartésien que:
P - Q = V et V+Q = P.
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Produit Scalaire
Produit Scalaire
Propriétés:
Dans un repère orthonormé, le vecteur a
pour coordonnées (x ; y) .
Dans ce cas :
| | =
 
Pour tout réel λ, et tout vecteur alors
| λ | = | λ | | |
Espace Affine
26
Définition:
Soit un vecteur, A et B deux points tel
que =  .
On appelle norme de , noté | | , la
distance AB.
| | = |  | = AB
Lorsque | | = 1, on dit que le vecteur
est unitaire.
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Produit Scalaire
Produit Scalaire
Propriété 2:
Si et sont deux vecteurs non nuls , le
produit scalaire des vecteurs et est
aussi obtenu par la formule :
.= || || cos ( ; )
Espace Affine
27
Définition:
Le produit scalaire de deux vecteurs
et est le nombre réel, noté:
.finie par :
. = [1/2] (| + |² - || ² - || ²)
Propriété 1: Dans un repère (O, i
, j
),
si deux vecteurs et ont pour
coordonnées respectives (x;y) et (x; y’),
alors :
.= x x+ y y.
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Produit Scalaire
Produit Scalaire
Le produit scalaire entre deux
vecteurs u et v est défini
comme suit:
Espace Affine
28
Soit les deux vecteurs:
Notions Mathématiques
Programmation 2D/3D:
INF 1483
u =(u
1
, u
2
, u
3
)
T
v =(v
1
, v
2
, v
3
)
T
θ
u
vO
u . v = u
1
v
1
+ u
2
v
2
+ u
3
v
3
u . v = |u|. |v|.cos(θ)
Produit Scalaire
Produit Scalaire
Espace Affine
29
Produit scalaire et orthogonalité :
Soit et deux vecteurs non nuls, et A, B et C
trois points tels que  = et  =
On dit que et sont orthogonaux lorsque
les droites (AB) et (AC) sont
perpendiculaires.
Théorème :
• Les vecteurs et sont orthogonaux si et
seulement si .= 0
• Les droites (AB) et (CD) sont
perpendiculaires équivaut à dire que
 .  = 0
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Produit Scalaire
Produit Scalaire
Le produit scalaire entre deux
vecteurs u et v est défini
comme suit:
Espace Affine
30
On peut démontrer que :
OP = (u . v ) v
Notions Mathématiques
Programmation 2D/3D:
INF 1483
u . v = u
1
v
1
+ u
2
v
2
+ u
3
v
3
u . v = |u|. |v|.cos(θ)
θ
u
v
P
O
Dimension d’un Espace Affine
Droite Affine
P (α) = P
0
+ α d
qui forment l’ensemble des
points qui passent par P
0
dans
le sens du vecteur d.
Espace Affine
31
La dimension d’un espace affine est la
dimension de l’espace vectoriel qui lui
est associé. En particulier:
1. un espace affine de dimension 1
est appelé droite affine,
2. un espace affine de dimension 2
plan affine.
3. hyperplan affine = espace affine de
dimension n
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Droite Affine
Droite Affine
La forme implicite:
ax + by + c = 0,
a, b et c sont des constantes.
La forme paramétrique:
x (α) = α x
1
+ (1- α) x
0
y (α) = α y
1
+ (1- α) y
0
Où (x
0
, y
0
) et (x
1
, y
1
) sont deux
points de la ligne.
Espace Affine
32
La forme
P(α) = P
0
+ α d
est connue comme la forme
paramétrique de la ligne.
Les autres formes de l’équation
d’une ligne sont:
La forme explicite:
y = mx + h,
où m, h sont des constantes.
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Droite Affine
Droite Affine
Si α > = 0, P(α) est le rayon partant
de P
0
dans la direction de d.
Si nous utilisons deux points pour
définir v, alors:
P (α) = Q + α (R-Q)
P (α) = Q + α v
P (α) = α R + (1- α) Q
Pour 0 <= α <= 1, on obtient tous les
points sur le segment de ligne
joignant R et Q.
Espace Affine
33
P (α) = P
0
+ α d
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Courbes et surfaces
Courbes et surfaces
Espace Affine
34
Les courbes sont des
fonctions non-linéaires
à un paramètre de la
forme P(α).
Notions Mathématiques
Programmation 2D/3D:
INF 1483
P(α)
Courbes et surfaces
Courbes et surfaces
Espace Affine
35
Les surfaces sont
formées à partir de
deux paramètres
P(α,β).
Notions Mathématiques
Programmation 2D/3D:
INF 1483
P(α,β)
Courbes et surfaces
Courbes et surfaces
Les fonctions linéaires donnent
des plans et des polygones.
Espace Affine
36
Les fonctions linéaires
donnent des plans et
des polygones.
Notions Mathématiques
Programmation 2D/3D:
INF 1483
P(α,β)
P(α,β)
Dimension d’un Espace Affine
Un Plan Affine
Un plan en 3D peut être
fini:
par un point et deux
vecteurs
ou bien
par 3 points,
Espace Affine
37
La dimension d’un espace affine est la
dimension de l’espace vectoriel qui lui
est associé. En particulier:
un espace affine de dimension 1 est
appelé droite affine,
1.un espace affine de dimension 2 plan
affine.
2.hyperplan affine = espace affine de
dimension n
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Dimension d’un Espace Affine
Un Plan Affine
comme illustré par les exemples
suivants:
Un plan en 3D défini:
par un point et deux vecteurs
Espace Affine
38
La dimension d’un espace affine est la
dimension de l’espace vectoriel qui lui
est associé. En particulier:
un espace affine de dimension 1 est
appelé droite affine,
2. un espace affine de dimension 2
plan affine.
3.hyperplan affine = espace affine de
dimension n
Notions Mathématiques
Programmation 2D/3D:
INF 1483
P(α, β)=R+αu + βv
u
v
R
P
Dimension d’un Espace Affine
Un Plan Affine
comme illustré par les exemples
suivants:
Un plan en 3D défini:
par 3 points,
Espace Affine
39
La dimension d’un espace affine est la
dimension de l’espace vectoriel qui lui
est associé. En particulier:
un espace affine de dimension 1 est
appelé droite affine,
2. un espace affine de dimension 2 est
appelé plan affine.
3.hyperplan affine = espace affine de
dimension n
Notions Mathématiques
Programmation 2D/3D:
INF 1483
P(α, β)=R+ α(Q-R)+ β(P-Q)
P
R
Q
Les triangles
Les triangles
Cette représentation est
appelée: la représentation en
coordonnées barycentriques
de P.
Espace Affine
40
Un triangle est convexe, donc
n'importe quel point l'intérieur
peut être représenté comme
une somme affine
P (α
1
, α
2
, α
3
) = α
1
P + α
2
Q + α
3
R,
α
1
+ α
2
+ α
3
= 1 et α
i
> = 0.
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Somme convexe de
P et Q.
Pour 0<=,b<=1, on obtient tous les points du triangle
Somme convexe
de S() et R.
Les triangles
Les triangles
Cette représentation est
appelée: la représentation en
coordonnées barycentriques
de P.
Espace Affine
41
Un triangle est convexe, donc
n'importe quel point l'intérieur
peut être représenté comme
une somme affine
P (α
1
, α
2
, α
3
) = α
1
P + α
2
Q + α
3
R,
α
1
+ α
2
+ α
3
= 1 et α
i
> = 0.
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Somme de P et Q.
Pour 0<=,b<=1, on obtient tous les points du triangle
Somme de S() et R.
Les normales
Les normales
.
Espace Affine
42
Chaque plan possède un
vecteur n normal
perpendiculaire au plan. En
connaissant un point R et
deux vecteurs u et v du plan
en question, le vecteur n
peut être obtenu par la
formule du produit vectoriel
comment suit:
n = u x v
Notions Mathématiques
Programmation 2D/3D:
INF 1483
R
u
v
Les normales
Les normales
.
Espace Affine
43
Sachant aussi que tout point
du plan peut être obtenu
par la formule:
P(α,β) = R+αu + βv,
on aura le produit scalaire:
(P(α,β) R)·n = 0
Notions Mathématiques
Programmation 2D/3D:
INF 1483
R
u
v
Application de Ԑ × Ε dans Ε
Application de Ԑ × Ε dans Ε
Pour A
Ԑ ,
E et B = A + , on
note = .
Le point A étant fixé, l'application
θ
A
: E→E, B
 est une bijection
(surjective + injective ).
Espace Affine
44
On dit qu'un ensemble non vide Ԑ est un espace affine s'il existe:
un espace vectoriel Ε et
une application de Ԑ× Ε dans Ε
qui
au point A
Ԑ et
au vecteur
E
associe un point B de Ԑ noté B = A +
Vérifiant les 3 axiomes:
1.
A
Ԑ , A + = A
2.
A
Ԑ ,
,
E on a , (A + ) + = A + (+ ) ;
3.
( A , B )
Ԑ
2
,
E t. q B = A +
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Application de Ԑ × Ε dans Ε
Application de Ԑ × Ε dans Ε
Bijection:
Soit A et B deux ensembles.
Une fonction f finie sur A est
une bijection de A sur B:
si et seulement si tout élément
de A a une image unique dans B
= f(A)et
si tout élément de B a
un antécédent unique dans A =
g(B).
Espace Affine
45
On dit qu'un ensemble non vide Ԑ est
un espace affine s'il existe:
un espace vectoriel Ε et
une application de Ԑ× Ε dans Ε
Pour A
Ԑ ,
E et B = A + , on
note = .
Le point A étant fixé, l'application θ
A
:
E→E, B
 est une bijection
(surjective + injective ).
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Application de Ԑ × Ε dans Ε
Application de Ԑ × Ε dans Ε
Bijection:
Soit f une bijection de A sur B,
x
A et
y
B tels que
y = f(x).
La fonction g définie pour tout élément y
de B par x = g(y) est une bijection de B sur
A appelée bijection réciproque de f et
notée:
g = f
−1
.
Ex: la fonction logarithme népérien est la
réciproque de la fonction exponentielle.
Espace Affine
46
On dit qu'un ensemble non vide Ԑ est
un espace affine s'il existe:
un espace vectoriel Ε et
une application de Ԑ× Ε dans Ε
Pour A
Ԑ ,
E et B = A + , on
note = .
Le point A étant fixé, l'application θ
A
:
E→E, B
 est une bijection
(surjective + injective ).
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Application de Ԑ × Ε dans Ε
Application de Ԑ × Ε dans Ε
Un espace affine de directeur E est un
ensemble non vide Ԑ muni d’une application
θ
A
qui à chaque bipoint (A, B)
Ԑ
2
, associe
un élément de E , noté  vérifiant les deux
propriétés suivantes:
Propriété- 1: pour tous A, B, C Ԑ, on a:
 +  =  (relation de Chasles);
Propriété- 2:
A Ԑ,
E
un point
unique B Ԑ tel que  = .
Espace Affine
47
On dit qu'un ensemble non vide Ԑ est un
espace affine s'il existe:
un espace vectoriel Ε et
une application de Ԑ× Ε dans Ε
Pour A
Ԑ ,
E et B = A + , on note
= .
Le point A étant fixé, l'application θ
A
:
E→E, B
 est une bijection (surjective
+ injective ).
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Application de Ԑ × Ε dans Ε
Application de Ԑ × Ε dans Ε
Translation
Soit l’espace affine Ԑ attaché a l’espace vectoriel E.
Pour chaque
E
l’application de Ԑ dans Ԑ qui a A associe A + est appelée la
translation de vecteur , on la note t
u
.
Les axiomes (1), (2) et (3) reviennent ainsi a dire:
1.
A
Ԑ , A + = A t
u
= Id
Ԑ
2.
A
Ԑ ,
,
E on a , (A + ) + = A + (+ )
t
u+v
= t
u
o t
v
3.
( A , B )
Ԑ
2
,
E t. q B = A + t
u
(A) = B
Espace Affine
48
La propriété (A2) assure, pour
tout point A et tout vecteur ,
l’existence et
l’unicité
d’un point B vérifiant:
 = ,
que l’on nomme transla
de A par ;
on écrit:
B = A + ou = B − A.
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Repère Affine
Repère Affine
un repère cartésien (une origine et une
base de l'espace vectoriel associé) et en
travaillant avec des coordonnées.
Espace Affine
49
espace euclidien
Un espace affine euclidien est un
espace affine dirigé par un espace
euclidien. On peut définir dans ce cas la
distance d(AB ) ‖ 
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Repère Affine
dimension d’un espace affine
La dimension d’un espace affine est la
dimension de l’espace vectoriel qui lui est
associé. En particulier:
1. un espace affine de dimension 1 est
appelé droite affine,
2. un espace affine de dimension 2 plan
affine.
3. hyperplan affine = espace affine de
dimension n
Espace Affine
50
1. Pour un point quelconque:
P : 1·P = P et 0·P = 0.
Considérer tous les points de la forme:
P (α) = P
0
+ α d
qui forment l’ensemble des points qui passent par
P
0
dans le sens du vecteur d si α positive.
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Coordonnées Homogènes
Coordonnées Homogènes
le point se confond avec le
vecteur.
Représentation
51
Considérons le point et le
vecteur suivants:
P = P
0
+ β
1
v
1
+ β
2
v
2
+ .... + β
n
v
n
v = α
1
v
1
+ α
2
v
2
+ .... + α
n
v
n
Qui semblent avoir des
représentations similaires:
P = [β
1
β
2
β
n
]
v = [α
1
α
2
α
n
].
Notions Mathématiques
Programmation 2D/3D:
INF 1483
v
P
0
v
2
v
1
v
3
P
Point fixé
v
Coordonnées Homogènes
Coordonnées Homogènes
Ainsi, nous obtenons la
représentation en
coordonnées homogène en 4
dimensions, comme suit:
v = [α
1
α
2
α
3
0]
T
et
P = [β
1
β
2
β
3
1]
T
Représentation
52
Si nous finissons:
0 P = 0 et 1 P = P,
alors, on peut écrire:
v = α
1
v
1
+ α
2
v
2
+ α
3
v
3
= [α
1
α
2
α
3
0][v
1
v
2
v
3
P
0
]
T
P = β
1
v
1
+ β
2
v
2
+ β
3
v
3
+ P
0
= [β
1
β
2
β
3
1][v
1
v
2
v
3
P
0
]
T
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Coordonnées Homogènes
Coordonnées Homogènes
La forme des coordonnées
homogènes d'un point en trois
dimensions [x y z] est donnée
comme suit:
p=[x' y' z' w]
T
= [wx wy wz w]
T
Représentation
53
Lutilisation des coordonnées
homogènes est la technique
de représentation la plus
employée pour les positions
et les déplacements.
Toute transformation
géométrique sera
généralement représentée
par une matrice en
coordonnées homogènes.
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Coordonnées Homogènes
Coordonnées Homogènes
Si w = 0, la représentation
est celle d'un vecteur.
Pour w= 1, la représentation
d'un point est [x y z 1].
Représentation
54
La forme des coordonnées
homogènes d'un point en trois
dimensions [x y z] est donnée
comme suit:
p=[x' y' z' w]
T
= [wx wy wz w]
T
On retourne à 3 dimensions
(pour w 0) par:
x x'/w, y y'/w, z z'/w
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Coordonnées Homogènes
Coordonnées Homogènes
Représentation
55
Les coordonnées homogènes sont
la clé de tous les systèmes
graphiques. En effet:
Pour la visualisation
orthographique, nous pouvons
maintenir w = 0 pour les vecteurs et
w = 1 pour les points.
Pour la visualisation perspective,
nous devons utiliser une division
*/w.
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Coordonnées Homogènes
Coordonnées Homogènes
Le volume de visualisation
pour une projection en
orthographique est un
parallélépipède rectangle.
Représentation
56
Projections Orthographique
Projections (On dit aussi
projections parallèles), dont l’objet
sur le plan image ne change pas de
grandeur peu importe à quelle
distance est loin du plan image.
Donc dans:
Les coordonnées homogènes w= 1.
Les coordonnées linéaires w=0
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Coordonnées Homogènes
Coordonnées Homogènes
Le quatrième composant, w,
divise x, y, et z lorsque les
coordonnées sont projetées.
Représentation
57
Projection Perspective
Dans les projections en
perspective, pendant que
l’objet s'éloigne de
l'observateur, il apparaît de
plus en plus petit sur l'écran.
Souvent on dit effet
foreshortening ( raccourci ).
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Coordonnées Homogènes
Coordonnées Homogènes
le diviseur w que la
visualisation perspective
applique est une fonction
linéaire de la distance
perspective.
Représentation
58
Projection Perspective
En d'autres termes, les
coordonnées homogènes [x:
y: z: w] projettent l’objet
vers les coordonnées
linéaires (x/w , y/w , z/w).
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Coordonnées Homogènes
Coordonnées Homogènes
Ce qui est une meilleure
modélisation de la réalité.
Représentation
59
Projection Perspective
Le volume de visualisation
pour une projection en
perspective est un cône
rectangulaire, qui ressemble à
une pyramide avec le haut
coupé, avec l'extrémi
étroite vers l‘observateur.
On dit un frustum pyramidique.
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Coordonnées Homogènes
Coordonnées Homogènes
Avec les coordonnées
linéaires (x/w , y/w , z/w)
la projection orthographique
est parfois interprétée
comme étant une projection
perspective dans laquelle le
point de perspective est
rejeté à l'infini ( w = 0 ).
Représentation
60
Projection Perspective
Les projections orthographiques
peuvent être intéressants. Mais
les projections en perspective
créer des scènes plus réalistes.
Pour w = 0 l’objet sera très
proche du point de vue de sorte
que la visualisation perspective
sera plus large. Ce qui en OpenGL
peut conduire a un résultat
indéfini.
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Coordonnées Homogènes
Coordonnées Homogènes
Toutes transformations standards
(ex. translation, changement
d'échelle, rotation, etc.) peuvent
être mises en œuvre avec des
multiplications de matrices 4x4.
Le pipeline de matériel fonctionne
avec les représentations en 4
dimensions.
Représentation
61
Lutilisation des coordonnées
homogènes est la technique
de représentation la plus
employée pour les positions
et les déplacements.
Toute transformation
géométrique sera
généralement représentée
par une matrice en
coordonnées homogènes.
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Changement de Coordonnées
Changement de Coordonnées
Où on a:
a = α
1
v
1
+ α
2
v
2
+ α
3
v
3
= [α
1
α
2
α
3
][v
1
v
2
v
3
]
T
b = β
1
u
1
+ β
2
u
2
+ β
3
u
2
= [β
1
β
2
β
3
][u
1
u
2
u
3
]
T
Représentation
62
Considérons deux
représentations d'un vecteur à
l'égard de deux bases
différentes.
Les représentations sont:
a = [α
1
α
2
α
3
] , b = [β
1
β
2
β
3
]
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Changement de Coordonnées
Changement de Coordonnées
u
1
= g
11
v
1
+ g
12
v
2
+ g
13
v
3
u
2
= g
21
v
1
+ g
22
v
2
+ g
23
v
3
u
2
= g
31
v
1
+ g
32
v
2
+ g
33
v
3
Représentation
63
a = α
1
v
1
+ α
2
v
2
+ α
3
v
3
= [α
1
α
2
α
3
][v
1
v
2
v
3
]
T
b = β
1
u
1
+ β
2
u
2
+ β
3
u
2
= [β
1
β
2
β
3
][u
1
u
2
u
3
]
T
Et chaque vecteur u
i
peut
être représenté dans la 1
ère
base comme suit:
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Changement de Coordonnées
Changement de Coordonnées
Ce qui donne le changement
de bases par la formule
suivante:
a = M
T
b
Représentation
64
u
1
= g
11
v
1
+ g
12
v
2
+ g
13
v
3
u
2
= g
21
v
1
+ g
22
v
2
+ g
23
v
3
u
2
= g
31
v
1
+ g
32
v
2
+ g
33
v
3
Sous forme matricielle, on a la
matrice de transformation
suivante:
Notions Mathématiques
Programmation 2D/3D:
INF 1483
ggg
ggg
ggg



33
M =
Changement de Coordonnées
Changement de Coordonnées
Tout point ou vecteur peut être
représenté dans l’un des deux
repères.
Nous pouvons aussi représenter
(P
0
, v
1
, v
2
, v
3
)
en termes de
(Q
0
, u
1
, u
2
, u
3
).
Représentation
65
Nous pouvons appliquer un
processus similaire en
coordonnées homogènes
aux représentations de
points et de vecteurs. Soient
deux repères:
(P
0
, v
1
, v
2
, v
3
)
(Q
0
, u
1
, u
2
, u
3
)
Notions Mathématiques
Programmation 2D/3D:
INF 1483
P
0
v
1
v
2
v
3
Q
0
u
1
u
2
u
3
Changement de Repère
Changement de Repère
finissant ainsi la matrice 4 x
4 suivante:
g
44
= 1 pour des points
g
ii
= 0 pour des vecteurs
Représentation
66
En étendant ce que nous
avons fait pour le
changement des bases, on
obtient:
u
1
= g
11
v
1
+ g
12
v
2
+ g
13
v
3
u
2
= g
21
v
1
+ g
22
v
2
+ g
23
v
3
u
3
= g
31
v
1
+ g
32
v
2
+ g
33
v
3
Q
0
= g
41
v
1
+g
42
v
2
+g
43
v
3
+g
44
P
0
Notions Mathématiques
Programmation 2D/3D:
INF 1483
ggg
ggg
ggg
ggg




M =
Représentation sur un Repère
Représentation sur un Repère
α
4
= β
4
= 1 pour les points et
α
4
= β
4
= 0 pour les vecteurs,
et on a la relation suivante:
a = Mb
T
La matrice M, de dimension 4x4,
définit une transformation affine
en coordonnées homogènes.
Chaque transformation affine
préserve les lignes.
Représentation
67
Dans les deux repères, tout
point ou vecteur a une
représentation de la forme:
a = [α
1
α
2
α
3
α
4
],
dans le premier repère.
b = [β
1
β
2
β
3
β
4
],
dans le deuxième repère.
:
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Représentation sur un Repère
Représentation sur un Repère
Toute transformation
géométrique sera
généralement représentée
par une matrice en
coordonnées homogènes.
Représentation
68
Lutilisation des
coordonnées homogènes
est la technique de
représentation la plus
employée pour les
positions et les
déplacements.
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Repères de la Scène et de la Caméra
Repères de la Scène et de la Caméra
En OpenGL, le repère de base
que nous utiliserons au début
est le repère de la scène.
Nous utiliserons par la suite
un repère de la caméra en
changeant le référentiel de la
scène en se basant sur la
matrice vue.
Initialement, ces repères
sont les mêmes (M = I)
Représentation
69
Lorsque nous travaillons
avec des représentations,
nous utilisons des vecteurs à
n dimensions ou des
tableaux de scalaires.
Les changements de repères
sont alors définies par des
matrices de dimension 4 x 4.
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Repères de la Scène et de la Caméra
Repères de la Scène et de la Caméra
nous devons déplacer le
repère de la caméra par la
matrice:
Représentation
70
Initialement, ces repères
sont les mêmes (M = I)
Si les objets sont des deux
côtés de z = 0,
Notions Mathématiques
Programmation 2D/3D:
INF 1483
M =
1000
d100
0010
0001
Rappels
Rappels
On a les relations suivantes:
a
2
+ b
2
= h
2
(théorème de Pythagore)
Cos(θ) = b/h;
Sin (θ) = a/h;
Tan(θ) = a/b;
Trigonométrie
71
Soit un triangle rectangle:
Notions Mathématiques
Programmation 2D/3D:
INF 1483
a
b
h = hypoténuse
θ
Cercle Trigonométrique
Cercle Trigonométrique
Sur le cercle, le sens
positif de rotation est le
sens inverse des aiguilles
d’une montre appelé
sens trigonométrique
Trigonométrie
72
Cercle de centre O et de rayon 1.
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Cercle Trigonométrique
Cercle Trigonométrique
Le radian:
Trigonométrie
73
Le radian:
Le symbole radian est rad.
2π radians correspondent
à 360 °
1 rad = 57,3°.
Notions Mathématiques
Programmation 2D/3D:
INF 1483
Cercle Trigonométrique
Cercle Trigonométrique
Fonctions sin(x) et cos(x):
Le cosinus du nombre réel
x est l’abscisse du point M.
Le sinus du nombre réel x
est l’ordonnée du point M.
Pour tout nombre x, on a:
Trigonométrie
74
Fonctions sin(x) et cos(x):
Notions Mathématiques
Programmation 2D/3D:
INF 1483
1cos1 x
1sin1 x
1²cos²sin xx
FIN DU CHAPITRE
FIN DU CHAPITRE
FIN DU CHAPITRE
FIN DU CHAPITRE
75
FIN DU CHAPITRE
Notions Mathématiques
Programmation 2D/3D:
INF 1483