Math Cheatsheet
Trigonométrie
Pi
const float pi = 3.14159265f; // avec une infinité de nombre après
Cosinus & Sinus
(Provient de http://commons.wikimedia.org/wiki/User:Geek3 , sous la licence GNU Free Documentation)
Cercle unitaire
( Modifié depuis http://en.wikipedia.org/wiki/User:Gustavb, licence: Creative Commons 3.0 )t est un angle en radian.
0 radians = 0 degrés
180 degrés = Pi radians
360 degrés (cercle complêt) = 2*Pi radians
90 degrés = Pi/2 radians
Vecteurs
Fais TOUJOURS attention au repère dans lesquels tes vecteurs sont. Regarde la section 3 pour plus de détails.
Coordonées homogène
Un vecteur 3D est représenté par : (x, y, z), mais un vecteur 3D en coordonnées homogènes est représenté par : (x, y, z, w) :
- w=0 : Le vecteur représente une direction
- w=1 : Le vecteur représente une position
- w=qqch d’autre : C’est peut être encore correct, mais t’as plutôt intérêt de savoir ce que tu fais.
On ne peut multiplier une matrice 4*4 qu’avec un vecteur homogène.
Longueur
Comme pour une distance cartésienne : racine carrée(x² + y² + z²). w n’est pas pris en compte.
Produit en croix
( Modifié depuis http://en.wikipedia.org/wiki/User:Acdx , image sous la license: Creative Commons 3.0 )Le X est la notation du produit en croix. longueur( a x b ) == longueur(a) * longueur(b) * sin(θ), donc tu voudras peut être normaliser le résultat
Produit scalaire (Dot product en anglais)
##
( Depuis http://en.wikipedia.org/wiki/File:Dot_Product.svg )A.B = longueur(A)cos(θ) , mais on peut le calculer comme ça: A.xB.x +A.yB.y +A.zB.z
Addition et soustraction
Pour chaque composante (x, y, …) :
res.x = A.x + B.x
res.y = A.y + B.y
...
Multiplication
Pour chaque composante (x, y, …) :
res.x = A.x * B.x
res.y = A.y * B.y
...
Normalisation
On divise le vecteur par sa longueur
normalizedVector = vec * ( 1.0f / vec.length() )
Matrices
Multiplication Matrice à Matrices
Exemple pour une matrice de translation :
Multiplication matrice à vecteur
Transformations habituelles
… mais dans tes shaders, tu peux aussi représenter tes vecteurs dans le repère tangent. Et aussi dans le repère image quand tu fais des effets après rendu.
res.x = A.x + B.x