0% ont trouvé ce document utile (0 vote)
69 vues7 pages

c02 Image Math

Ce document présente les bases mathématiques nécessaires à la synthèse d'images, notamment les points, vecteurs, plans et sphères. Il décrit également les équations paramétriques des lignes et des sphères.

Transféré par

Cyrille Lamassé
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
69 vues7 pages

c02 Image Math

Ce document présente les bases mathématiques nécessaires à la synthèse d'images, notamment les points, vecteurs, plans et sphères. Il décrit également les équations paramétriques des lignes et des sphères.

Transféré par

Cyrille Lamassé
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Survol

 Bases
Synthèse d’images  Points
 Vecteurs
Outils mathématiques de base  Lignes
 Sphères
Alexandre Meyer  Matrices et transformations
http://bat710.univ-lyon1.fr/~ameyer/cours

1 Synthèse d’images 2

Maths pour SI (computer graphics) Points, P (x, y, z)


 Besoin mathématiques  Donne une position relative à l’origine
 Décrire la scènes dans notre système de coordonne
 Opérations : projection et transformations
Z
 Système de coordonnée
P(x,y,z)
Y

Right-Handed System Y
(ortho normé)

X X

Z
Synthèse d’images 3 Synthèse d’images 4

Points, P (r,a,b) coordonnées polaires Vecteurs, V (x, y, z)


 Donne une direction dans l’espace 3D

Z  Points != Vecteurs
 Exercice
 Point – Point = Vecteur
P(x,y,z) x=?
 Vecteur+Vecteur = Vecteur
r y=?
a  Point + Vecteur = Point
Y z=?
 Point + Point = ?
b

Synthèse d’images 5 Synthèse d’images 6

1
Vecteurs, V (x, y, z) Vecteurs V
 Longueur (norme) d’un vecteur V (x, y, z)
w |V| =
v  x2 + y2 + z2
2v v
(-1)v (1/2)V v+w ^
vecteurV V
Addition de vecteurs  Vecteur unitaire V = normede V = | V |
multiplication par un scalaire v+w
-> vecteurs restent //
 Produit scalaire (Dot Product)
w y
P  a · b = |a| |b| cosθ
v-w Le produit scalaire
v v cosθ = a · b/ |a| |b| est un scalaire
w  a · b = xa ·xb + ya ·yb + za ·zb
Difference de vecteur O  Si les vecteurs sont unitaires?
x
v - w = v + (-w)  Si le produit scalaire == 0 ou == 1?
Vecteur OP
Synthèse d’images 7 Synthèse d’images 8

Produit vectoriel (Cross Product) Plan


 Produit vectoriel -> vecteur normal au 2  3 points non alignés forme un plan unique
vecteurs  Equation : ax+by+cz+d=0
UxV
 x   a   yc − zb 
        Attention : 4 points ne sont pas forcement
 y  ×  b  =  za − xc  coplanaire
 z   c   xb − ya  V
     
U

 |a x b| = |a||b|sinθ

Synthèse d’images 9 Synthèse d’images 10

Exercices Exercices
A(1,0,0), B(0,1,0), C(0,0,1) A(1,0,0), B(0,1,0), C(0,0,1)
 Vecteur normal au plan?  Vecteur normal au plan?

 Equation du plan A,B,C?  Calculer ABxBC par exemple


 (-1,1,0)x(0,-1,1) = (1,1,1)
 Equation du plan A,B,C?
 Tous les points P tq
 N.(P-A)=0
 avec N un vecteur normal au plan
 (1,1,1).(x-1,y,z)=0x-1+y+z=0

Synthèse d’images 11 Synthèse d’images 12

2
Equation paramétrique d’une ligne Equation d’une sphère
 Soit hypotenuse
 P0 = (x0, y0, z0) et  Théorème de a2 + b2 = c2 c
Pythagore b
 P1 = (x1, y1, z1) a
 la ligne P passant par P0 et P1 est  Cercle de rayon,
pour tout P sur le
x(t) = x0 + t(x1 - x0) cercle : P
P(t) = P0 + t(P1 - P0) = y(t) = y0 + t(y1 - y0) r yp
z(t) = z0 + t(z1 - z0) x2 + y2 = r2 (0, 0) xp
avec - ∞ < t < ∞

Si 0<t<1 on a le segment [P0P1]


Synthèse d’images 13 Synthèse d’images 14

Equation d’une sphère Survol


∗Theorème de Pythagor généralisé à la 3D  Bases
a2 + b2 + c2 = d2  Matrices et transformations
x2 + y2 + z2 = r2
 Operations
 Transformations
 Compositions

(x- xc)2 + (y- yc)2 + (z- zc)2 = r2

Synthèse d’images 15 Synthèse d’images 16

Matrices Types de matrices


 Matrices identité - I  Symétrique
 Une Matrice (Matrix) est un tableau de
dimensions M (lignes) par N (colonnes) 1 0 0 0 a b
b d
c
 1 0
 0 1 0 1 0 0 e
 3 par 6 matrice   0 0 1 0 c e f 
 3 0 0 − 2 1 − 2 
 1 1 3 4 1 −1  0 0 0 1
 élément 2,3 est (3)  
−5 2 0 0 0 1 
   Diagonal

1 0 0 0 
 Vecteur peut être considéré comme une 0 2 0 0 
0 0 −1 0 
matrice 1 x M 0 0 0 −4
 
v = (x y z )

Synthèse d’images 17 Synthèse d’images 18

3
Opérations sur les matrices Opérations sur les matrices
 Addition  Multiplication
c d  r s   c + r d + s 
  +  =   Possible seulement si
a b  p q a + p b + q  x1 par y1 et x2 par y2 SSI y1 = x2
 Résultat : matrice x1 par y2

 Attention : si A x B est possible, cela ne veut pas


 Transpose dire que B x A l’est aussi!!!
 M par N devient N par M
T
 1 4 9  1 5 6 
   
 5 2 8 =  4 2 7 
 6 7 3  9 8 3 
   
Synthèse d’images 19 Synthèse d’images 20

Opérations sur les matrices Exemple de multiplications


* 
 A est n par k , B est k par m 
 * * * * * *
 * 
 *   
  = 
  *   
2 1 
C = A x B est définie par
*

 


 2 3 1 1 −1 =  __ __ 

 −1 0 1  
 0 1   __ __ 
. * 

 * * * * *. *
 . * 
   
k  .*
 =   
cij = ∑ ailblj
 
 . *   
. *   
 
l =1 . *   2 − 2 3  0 0 1   __ __ __ 

 . . . . . .
 * * * * * .
*  . . 
 . * 
 = 
 − 3 1 0  1 0 0 = __ __ __
 1 −1 −1 0 1 0  
*
 
 . *   

 BxA != AxB
.
 *  


    __ __ __ 
Synthèse d’images 21 Synthèse d’images 22

Inverse Transformation 3D
 En 3D, un vecteur est transformé par une
 Si A x B = I et B x A = I alors matrice 3 par 3
A = B-1 et B = A-1  a b c  x   ax + by + cz 
    
 d e f  y  =  dx + ey + fz 
 g h i  z   gx + hy + iz 
    

a d g
 
(x y z ) b e h  = (xa + yb + zc xd + ye + zf xg + yh + zi)
c f i 

ATTENTION : matrice transposée ici


Synthèse d’images 23 Synthèse d’images 24

4
Changement d’échelle Rotation :exercice  ? ? ?
 
 Matrice diagonale  Rotation autour de  ? ? ?
 a 0 0  x   ax l’axe des z  ? ? ?
      
 0 b 0  y  =  by 
 0 0 c  z   cz  Y
     P' = ei(α +θ ) P = (x y)
 Exemple = (r cos(α ) r sin(α ))
θ
 2 0 0  3   6  P = r (cos(α ) + i sin(α ))
     α
 0 1 0  4  =  4  = reiα
 0 0 − 2  5   −10 X
    

Synthèse d’images 25 Synthèse d’images 26

Rotation Y Rotation
P' = ei(α +θ )
 Rotation autour de l’axe des z  Rotation autour de l’axe des z
θ
P
 cos(θ) - sin(θ) 0  Y
P ' = rei (α +θ ) = reiα eiθ α   (cos( θ )x - sin( θ )y sin ( θ )x + cos( θ )y)

X  sin(θ) cos(θ) 0  θ
= ( x + iy )(cos(θ ) + i sin(θ ))  0
 0 1  (x y )
= x cos(θ ) + xi sin(θ ) + iy cos(θ ) + iyi sin(θ ))
 cos(θ ) − sin(θ )  x  X
=   
 sin(θ ) cos(θ )  y  i2=-1
 Car Z ne change pas

 Remarque : Z ne change pas


Synthèse d’images 27 Synthèse d’images 28

Rotation autour de X ou Y Exercice


 Autour de X 1 0 0   Trouver la matrice qui translate un point P?
 
 0 cos(θ) - sin(θ)   x  x + a
 0 sin(θ) cos(θ)     
   P  y P’  y + b 
z  z +c
   
 Autour de Y
 cos(θ ) 0 - sin(θ ) 
 0 1 0  M tq M.P=P’ ?
 sin(θ ) 0 cos(θ ) 


 

Synthèse d’images 29 Synthèse d’images 30

5
Translation avec coord homogène Coordonnées homogène
 Ajoute 1D, mais on la contraint à être égale à 1
(x,y,z,1)
1 0 0 a  x   x + a 
    
0 1 0 b  y   y + b 
Homogène veut dire qu’un point de l’espace 3D
0 = 
0 1 c  z   z + c  peut être représente par une infinité de point
    
0 0 0 1  1   1  homogène 4D

 (2 3 4 1) = (4 6 8 2) = (3 4.5 6 1.5)

 On ajoute une 4e dimension « fictive » que  Pourquoi ceci?


l’on appelle coordonnée homogène  4D permet d’inclure translation/projection dans la
matrice

Synthèse d’images 31 Synthèse d’images 32

Rotation/changement d’échelle puis translation Composition : exercice


Trans suivi d’une Rot / Rot suivie d’une Trans
 R1 R2 R3 T 1 
   P(3,1,0)

 R4 R5 R6 T 2   R=rot(Z,Pi/2)
 R7 R8 R9 T 3  = T.R  T=trans(2,0,0)
 
0 0 0 1  Calculer P’=R.T.P et P”=T.R.P
 

 R= rotation et changement d’échelle


 T = translation

Synthèse d’images 33 Synthèse d’images 34

Composition : exercice Composition


Trans suivi d’une Rot / Rot suivie d’une Trans  L’ordre a de l’importance
 P(3,1,0)  Trans suivi d’une rot != rot suivie d’une trans
 R=rot(Z,Pi/2)  (RT)v != (TR)v
 T=trans(2,0,0)
v1
 Calculer P’=R.T.P et P”=T.R.P v1
 P’ = R.T.P = R.(5,1,0) = (-1,5,0) v v2
v
 P”=T.R.P = T.(-1,3,0) = (1,3,0)

 P’ != P”

T puis R = R.T.v=v1 R puis T = T.R.v = v2

Synthèse d’images 35 Synthèse d’images 36

6
Rotation de l’objet Programmation OpenGL
 Pour faire une rotation de l’objet  OpengGL mat[0] mat[1] mat[2] mat[3]
GLfloat mat[16]; mat[4] mat[5] mat[6] mat[7]
mat[8] mat[9] mat[10] mat[11]
mat[12] mat[13] mat[14] mat[15]

 glRotate( ax, ay, az, angle);

 glTranslate( x, y, z);

 glScale( sx, sy, sz);

Synthèse d’images 37 Synthèse d’images 38

Ouf!!! …
 On a la base …

Synthèse d’images 39

Vous aimerez peut-être aussi