Chapitre 3 : Repères et positionnement 3D

Dimension: px
Commencer à balayer dès la page:

Download "Chapitre 3 : Repères et positionnement 3D"

Transcription

1 Chapitre 3 : Repères et positionnement 3D Modélisation 3D et Synthèse Fabrice Aubert Master Informatique F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

2 1 Repères d une scène 3D F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

3 Repère 3D Z z A k Y y A O j i A x A X Repère noté (O,i,j,k) (origine et vecteurs de base). Un point : A = A x OA = A y ou A z A = (A x,a y,a z ). A = O + xi + yj + zk. Les repères considérés seront généralement directs : Règle de la main droite : (Pouce,Index,Majeur) = (X,Y,Z) Un repère est dit orthonormé si : Vecteurs (i, j, k) deux à deux orthogonaux. (i,j,k) de même normes 1. F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

4 Plusieurs repères On travaillera avec plusieurs repères : toujours préciser le repère en indice : Sur l exemple, un même point A a les coordonnées (x 1,y 1,z 1 ) dans le repère 1 et (x 2,y 2,z 2 ) dans le repère 2. y 1 y 2 A Repère 2 x 2 Repère 1 x 1 Noter A 1 ou A 2 selon le repère considéré. F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

5 Points et directions Différencier les positions (i.e. les points) et les directions (i.e. les vecteurs). Exemple : Le point A est déplacé au point A par le vecteur u. Le point B est déplacé au point B par le même vecteur u. Par le calcul : A = A + u et B = B + u. Remarque sur les notations : pas de "flêche" sur u. Par contre u = AA = BB. Pour les calculs, on utilisera souvent la relation : u = A A = B B. Attention : dans le code on représente généralement les positions et les directions par une même classe (Vector3 pour les tps). F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

6 Scène 3D Pour la conception d une scène 3D et des objets 3D, nous considérons les repères suivants : Le repère de l observateur (ou repère de la caméra ; noté Eye dans la suite) : c est dans ce repère qu on définit le volume de visualisation (i.e. placement de l écran et définition des paramètres de la projection). Le repère local (ou repère objet ; noté Local dans la suite) : on conçoit un objet indépendamment du reste de la scène. On prendra le repère le plus naturel pour définir les points de l objet. Le repère du monde (ou repère de scène ; noté World dans la suite) : il s agit du repère de référence de tout positionnement. Nous placerons les repères les uns par rapport aux autres avec des changements de repères (en général par translations, rotations, changements d échelle). Le repère "initial" étant le repère de scène World. Les positions (x, y, z) des sommets seront données dans le repère Local de l objet qu ils définissent (en général). F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

7 Scène 3D et OpenGL Nous savons déjà comment donner à OpenGL des positions P Eye = (x,y,z) définies dans le repère Eye (expression en clip coordinates avec la matrice de projection dans le vertex shader). Nous souhaitons à présent donner à OpenGL des positions P Local définies dans le repère de l objet à tracer. Il faudra donc indiquer à OpenGL : comment obtenir P Eye à partir de P Local : pour cela on indiquera comment est placé le repère Local par rapport au repère Eye (par changement de repères ; vu dans la suite du cours). comment obtenir P ClipCoordinates à partir de P Eye (par matrice de projection ; vu au chapitre précédent). F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

8 2 Transformations et changement de repères F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

9 Exemple de la translation Rappel (cf introduction des coordonnées homogènes dans le chapitre précédent) : la t x translation de vecteur t = t y peut se traduire par une matrice en coordonnées t z homogènes : t x T = t y t z On donne, dans les transparents suivants, 3 interprétations de cette translation (avec les mêmes coordonnées P(x,y,z) et la même translation t dans les 3 cas). F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

10 Interprétation par transformation On connait le point P(x,y,z) donné dans un repère 1 et on déplace le point P en P par la translation t. T appelée matrice de transformation. P = TP F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

11 Interprétation par changement de repère On connait le point P(x,y,z) exprimé dans un repère 2 et on sait que le repère 2 est déplacé par rapport au repère 1 par la translation t. Dans cette interprétation, on appelle T la matrice de passage du repère 1 au repère 2, et on la note M 1 2. On connait P 2 = P(x,y,z). On peut connaitre P 1 par : P 1 = M 1 2 P 2 avec P 2 = P et M 1 2 = T Remarque : P 1 correspond à P du transparent précédent (c est le même calcul). F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

12 Interprétation inverse On connait le point P(x,y,z) donné dans le repère 1 et on se donne un repère 2 par rapport au repère 1 par la translation t. On a toujours la relation : P 1 = M 1 2 P 2 mais c est P 1 qu on connait : P 1 = P Si on souhaite P 2, on peut l obtenir par P 2 = M 2 1 P 1. M 2 1? obtenue par la translation opposée t. F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

13 Changement de repère (généralisation) P 1 = M 1 2 P 2 (bien noter la position et l ordre des indices dans la relation). M 1 2 dans la relation indique : comment le repère 2 est obtenu à partir du repère 1 permet d exprimer les coordonnées du point P dans le repère 1 à partir des coordonnées dans le repère 2. donc attention à la confusion "passer du repère 1 au repère 2" (dans ce cours : signifie "comment le repère 2 est obtenu à partir du repère 1", i.e. M 1 2 ). F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

14 Rotation en 2D Rotation d angle θ autour de l origine. { x = x cos(θ) y sin(θ) Comment retrouver? Soit α l angle (i,op) et r = OP = OP. Alors { x = r cos(α + θ) y = r sin(α + θ) y = x sin(θ) + y cosθ { x = r cos(α)cos(θ) r sin(α)sin(θ) y = r cos(α)sin(θ) + r sin(α)cos(θ) or x = r cos(α) et y = r sin(α) ( P cosθ sinθ = RP avec R = sinθ cosθ ) F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

15 Rotation en 3D La rotation en 3D s effectue autour d un axe dont on donne un vecteur directeur u (rotations considérées : axe passant par l origine). Le sens de rotation est le sens trigonométrique par rapport à l axe («tourne» dans le sens direct quand le vecteur de l axe pointe vers vous). Exemple : autour de l axe z (droite de vecteur directeur (0,0,1)). R OZ = cosθ sinθ 0 sin θ cosθ F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

16 Rotation 3D : autres axes R OX = cos θ sinθ 0 sin θ cosθ Substituer Y à X et Z à Y R OY = cosθ 0 sinθ sinθ 0 cosθ Substituer Z à X et X à Y (attention aux signes) La rotation autour d un axe de vecteur u quelconque est un peu plus laborieuse à exprimer. Avec c = cos(θ), s = sin(θ) et u = (u x,u y,u z ) normé. ux 2 + (1 ux 2 )c u x u y (1 c) u z s u x u z (1 c) + u y s u x u y (1 c) + u z s uy 2 + (1 uy 2 )c u y u z (1 c) u x s u x u z (1 c) u y s u y u z (1 c) + u x s uz 2 + (1 uz 2 )c F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

17 Rotation en coordonnées homogènes On ajoute une ligne et une colonne par rapport à la matrice 3D : P = RP ( R3D 0 R H = 0 1 ) F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

18 Scale Changement d échelle de rapport k. x = kx y = ky z = kz x = k x x peut être défini pour chaque coordonnée : y = k y y z = k z z P = SP avec S = k x k y k z F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

19 Scale en coordonnées homogènes S = k x k y k z P = SP F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

20 Composition On obtient la composition en effectuant le produit des matrices homogènes des transformations/changements de repères successifs. Toute transformation/changement de repère (composition de translations/rotations/scales/projections) peut être représentée par une unique matrice. Attention à l interprétation entre transformations de coordonnées et changements de repères (voir l exemple transparent suivant) : La composition des transformations obtenue par T = T 1 T 2...T n consiste à appliquer à un point donné T n puis T n 1 puis... T 1 (lecture de droite à gauche). La composition des changements de repères obtenue par T 1 n = T 1 2 T T n n+1 consiste à passer du repère 1 au repère n + 1 en passant par le repère 2, puis 3 puis... n + 1 (lecture de gauche à droite). On obtient bien sûr le même résultat si T 1 = T 1 2, T 2 = T 2 3, etc dans ces 2 interprétations (il s agit du même calcul). F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

21 Exemple RT La rotation et la translation sont les mêmes dans les 2 interprétations suivantes : Transformations : P = RTP Repères : P 1 = R 1 2 T 2 3 P 3 F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

22 Exercice Soient deux translations de vecteurs T 1 (x 1,y 1,z 1 ) et T 2 (x 2,y 2,z 2 ). Appliquer T 1 au point A(x,y,z) avec les coordonnées homogènes et retrouver le résultat A = A + T 1. Quelle est la composition de T 1 et T 2 en coordonnées homogènes? (retrouver que le résultat est la translation T 1 + T 2 ). Appliquer la composition T 1 + T 2 au vecteur u(x,y,z). Quelle est la forme générale de la composition TR? Que constate-t-on quand on applique TR au vecteur u? F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

23 Changements inverses L inverse de M 1 2 (notée M ) permet d obtenir M 2 1 Inverse d un produit de matrices : (M 1 M 2 M 3 ) 1 = M 1 3 M 1 2 M 1 1 (attention à l ordre!) Inverse d une composition de changements de repères : (M 1 2 M 2 3 M 3 4 ) 1 = M 4 3 M 3 2 M 2 1 Dans le cas général l inversion consiste à résoudre MM 1 = I (pivot de gauss, par calcul de déterminant,...), Mais l inverse s obtient aisément pour les transformations usuelles : La translation inverse de T est la translation de vecteur opposé T. La rotation inverse de R θ est la rotation d angle opposé R θ Le changement d échelle inverse de S(k x,k y,k z ) est S( 1 k x, 1 k y, 1 k z ). L inverse de toute matrice orthonormale (matrice 3 3 de rotation par exemple) s obtient en la transposant : a 0 b 0 c 0 1 a 0 a 1 a 2 a 1 b 1 c 1 = b 0 b 1 b 2 si orthonormal a 2 b 2 c 2 c 0 c 1 c 2 F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

24 Changements de repère et application 3D Le placement des objets dans la scène se traduit en donnant M World Local (on place Local par rapport à World). Nous verrons dans la suite que ce placement peut être décomposé (cf graphes de scènes). Le placement de l observateur (la caméra) dans la scène se traduit en donnant M World Eye (on place Eye par rapport à World). Pour un objet, les coordonnées d un point P Local sont données dans Local. Pour le tracé en OpenGL, il faut obtenir P Eye : On doit donc connaitre M Eye Local pour appliquer P Eye = M Eye Local P Local On l obtient en décomposant avec World : M Eye Local = M Eye World M World Local On dispose déjà de M World Local, et il faut inverser M World Eye pour avoir M Eye World : il reste alors à faire le produit. La détermination de M Eye Local est généralement assurée par l application, et on donne à OpenGL (i.e. au vertex shader) cette matrice M Eye Local. La matrice M Eye Local est appelée MODELVIEW. F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

25 Traduction en OpenGL On fournira au vertex shader : l attribut position exprimé dans le repère local (i.e. P Eye ). la modelview (i.e. M Eye Local ). la projection (i.e. M ClipCoordinate Eye ). Vertex Shader : in vec3 position ;... uniform mat4 projection ; uniform mat4 modelview ;... void main ( ) {... gl_position = projection modelview vec4 ( position, 1. 0 ) ; } Application : _shader. uniform ( " modelview ",p3d : : modelview ) ; / / p3d : : modelview gérée par l application ( variable " globale " ) _shader. uniform ( " projection ",p3d : : projection ) ; / / p3d : : projection gérée par l application ( " globale " ) gldraw... F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

26 Classe pour les matrices Nécessité d une classe pour gérer les matrices homogènes dans l application (dans les tps : Matrix4). Matrix4 m1,m2,m3; Vector3 p1,p2,u1, u2 ;... m1. setidentity ( ) ; / / i n i t i a l i s a t i o n m1. mul (m2 ) ; / / Attention! m u l t i p l i c a t i o n à d r o i t e! (changement de repère ). m1. translate (x, y, z ) ; / / compose avec la matrice de translation (à droite... ) m1. r o t a t e ( angle, axisx, axisy, axisz ) ; / / compose avec l a matrice de r o t a t i o n ( angle en degré ). m1. invert ( ) ; / / inverse l a matrice m1=m2 m3; / / p r o d u i t m1 =m2; / / produit ( i.e. m1=m1 m2) p1 = m1. transformpoint (p2 ) ; / / transformation d un p o i n t u1 = m1. transformdirection (u2 ) ; / / transformation d une d i r e c t i o n ( i.e. vecteur ). F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

27 Attention aux notations! Dans le code, la matrice de passage M Rep1 Rep2 sera (généralement) représentée par la variable rep1rep2 (par exemple : worldlocal, eyeworld, etc). Le nom de la variable indique bien le changement de repère et non la transformation. Par exemple, si vous connaissez un point P_World et que vous souhaitez le connaitre dans le repère Eye, il faut appliquer P_Eye=eyeWorld.transformPoint(P_World) Attention à la confusion (interprétation par transformations de points/par changements de repères). bien comprendre l intérêt du raisonnement par changement de repères (notamment pour la composition et la conception). F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

28 Exemple de code avec la modelview En décomposant avec world, eye et local : worldlocal. s e t I d e n t i t y ( ) ; worldeye. setidentity ( ) ; / / placement de l objet par rapport à world : world >local worldlocal. r o t a t e ( angle, 1, 0, 0 ) ; / / placement de l a camé ra par r a p p o r t à world : world >eye worldeye. translate (0,0,10); worldeye. r o t a t e ( 5, 0, 1, 0 ) ; p3d : : modelview = worldeye. inverse () worldlocal ; / / noter l inversion drawobject ( ) ; / / p3d : : modelview est passée au shader Avec uniquement la modelview (attention aux interprétations pour la caméra! l objet est placé directement par rapport à la caméra ; à proscrire pour des positionnements plus complexes) : p3d : : modelview. s e t I d e n t i t y ( ) ; / / placement de l a camé ra : eye >world p3d : : modelview. rotate ( 5,0,1,0); p3d : : modelview. translate (0,0, 10); / / traduction du placement de l objet : world >local p3d : : modelview. r o t a t e ( angle, 0, 1, 0 ) ; drawobject ( ) ; / / p3d : : modelview est passée au shader F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

29 3 Conception hiérarchique F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

30 Conception hiérarchique On peut généraliser l approche de placer les objets par rapport au monde, en les plaçant les uns par rapport aux autres : Le positionnement relatif des repères peut se représenter sous forme d arbre : Chaque branche se traduit par un changement de repère M parentnode childnode Chaque sous-arbre est conçu indépendamment de son parent (i.e. on associe à chaque noeud un drawnode sans se préoccuper du noeud parent). On remarque que les deux roues sont identiques dans leurs repères locaux (ce sera donc la même procédure qui tracera les deux roues). F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

31 Traduction de la hiérarchie en OpenGL La matrice p3d::modelview=m Eye Local indique dans quel repère Local on se trouve (i.e. le repère courant). Descendre dans l arbre consiste à changer le repère courant (on applique le passage du noeud à son fils). Lorsqu un noeud a plusieurs enfants (tous placés par rapport au parent) : on doit mémoriser le repère du parent. Eviter de faire des inversions préférer mémoriser les repères. utilisation d une pile pour mémoriser p3d::modelview (i.e. p3d::modelview.push(); p3d::modelview.pop()). F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

32 L exemple p3d::modelview.apply(r1,r2) est du pseudo code : correspond à une suite d instructions (translate, rotate, etc) qui modifie la modelview pour traduire le changement de repère de R1 à R2 : void drawwheel ( ) { / / repè re l o c a l à une roue p3d : : modelview. push ( ) ; / / par pr é caution ( i n u t i l e i c i ). drawsquare ( ) ; p3d : : modelview. pop ( ) ; } void drawcar ( ) { / / repè re l o c a l à une v o i t u r e p3d : : modelview. push ( ) ; / / MODELVIEW = M_Eye_Car (Repere courant = Voiture ) drawbody ( ) ; p3d : : modelview. push ( ) ; p3d : : modelview. apply (Car, Wheel1 ) ; / / MODELVIEW = M_Car_Wheel1 / / i.e. Repère courant = Wheel1 drawwheel ( ) ; p3d : : modelview. pop ( ) ; / / on r e v i e n t à Car : MODELVIEW = M_Eye_Car p3d : : modelview. apply (Car, Wheel2 ) ; / / MODELVIEW = M_Car_Wheel2 ; / / i.e. Repère courant = Roue2 drawwheel ( ) ; p3d : : modelview. pop ( ) ; } void drawscene ( ) { p3d : : modelview. s e t I d e n t i t y ( ) ; p3d : : modelview. apply ( Eye, World ) ; / / camé ra p3d : : modelview. apply ( World, Car ) ; / / o b j e t drawcar ( ) ; } F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

33 A noter Remarquez que c est le noeud père (le draw appelant) qui place ses fils (les draw appelés). Par exemple : c est la voiture qui place les roues (et non les roues qui se placent elle mêmes par rapport à la voiture) ; c est le monde qui place la voiture ; etc. Remarquez les push/pop systématiques à l entrée/sortie des draw : permet d éviter tout effet de bord (aucun noeud fils doit modifier le repère courant d un noeud après son appel). F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

34 Attention au Scale! Comparez le résultat de : p3d : : modelview. s e t I d e n t i t y ( ) ; p3d : : modelview. r o t a t e ( angle, 0, 0, 1 ) ; p3d : : modelview. scale ( 2, 1, 1 ) ; drawsquare ( ) ; et p3d : : modelview. s e t I d e n t i t y ( ) ; p3d : : modelview. scale ( 2, 1, 1 ) ; p3d : : modelview. r o t a t e ( angle, 0, 0, 1 ) ; drawsquare ( ) ; F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

35 Conception hiérarchique : résumé Concevoir les composants dans des repères locaux les plus simples (ou intuitifs) possibles. Assembler les composants hiérarchiquement (sous forme d arbres), en les positionnant relativement les uns par rapport aux autres (on place les enfants par rapport au parent par un changement de repère M parentnode childnode ). La conception hiérarchique est fondamentale et constitue la fondation de la majeure partie des librairies 3D (graphes de scène). F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

36 4 Quelques changements de repères usuels F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

37 123 2? 3 M M 1 3 On connait M 1 2 et M 1 3, quelle est la matrice M 2 3? Solution : M 2 3 = M 2 1 M 1 3 (il reste à inverser M 1 2 pour avoir M 2 1 ). F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

38 Transformation par rapport au repère "précédent" On connait M 1 2, et on connait la translation t exprimée dans 1 (de matrice T 1 ). On souhaite appliquer t 1 sur 2. Expliquez pourquoi M 1 2 = M 1 2 T 1 ne donnera pas le bon résultat. Plusieurs approches : Exprimez le vecteur t 1 dans 2 : t 2 = M 1 2 t 2 puis M 1 2 = M 1 2 T 2. On "attache" 2 à 1, puis on "bouge" 1 de t 1 sur 1 : M 2 2 = M 2 1 M 1 1 M 1 2 (même raisonnement que précédent). M 1 2 = t 1 M 1 2 (ce qui donne une autre interprétation : on applique la translation avant M 1 2 ). F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

39 Transformation exprimée dans un autre repère Exemple : rotation R 2 du repère 1 pour obtenir 1 (rotation exprimée dans 2). Interprétation possible : attacher le repère 1 au repère 2. M 1 1 = M 1 2 M 2 2 M 2 1 avec M 2 2 = R et M 2 1 = M 2 1. M 1 1 = M 1 2 RM 2 1 Rotation de 1 autour d un point quelconque : prendre M 1 2 la plus simple possible (translation). F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

40 La matrice TR Tout changement de repères orthonormés directs s exprime par une matrice de la forme TR. Autrement dit : tout objet peut être placé par en déplaçant son repère par une translation suivie d une rotation. Il s agit d une composition que l on retrouve très souvent (transformation rigide). Soit 2 changements de repère T (translation) et R (rotation). alors ( ) R3D T TR = 3D 0 1 L inverse? Il "suffit" de transposer R 3D (inverse d une matrice orthonormale), d opposer T 3D, puis faire le produit : ( )( R (TR) 1 = R 1 T 1 t = 3D 0 I T3D ( R t = 3D R3D t T ) 3D 0 1 ) F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

41 Passage orthonormé Soient 1 = (O (1),i (1),j (1),k (1) ) et 2 = (O (2),i (2),j (2),k (2) ), deux repères orthonormés. On connait les expressions de l origine et de la base de 2 dans le repère 1. Alors : ( ) i (2) M 1 2 = 1 j (2) 1 k (2) 1 O (2) L inverse M 2 1? il suffit de faire comme pour (TR) 1 : transposer le bloc haut-gauche (c est une rotation) et d opposer le bloc haut-droit (c est une translation) et faire le produit des inverses. F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

42 LookAt Placer la caméra par rapport à World en donnant sa position A World, quel point elle regarde (point At World ) et son roulis par un vecteur Up World. Construire (i, j, k) : k est donné par k = O At, et on le normalise. i est tel que i = up k enfin j est calculé par j = k i La matrice M World Eye est donnée en mettant en colonne i, j, k et O (repère étant orthonormé). F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

43 5 Changement de repères et éclairement F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

44 Calcul dans le repère Eye Pour un calcul cohérent, il faut que toutes les données nécessaires (N, position des sources, L,...) soient exprimées dans le même repère. transformation des normales : void main ( ) { vec4 positioneye=modelviewmatrix vec4 ( vertex, 1. 0 ) ; vec4 normaleye=modelviewmatrix vec4 ( normal, 0. 0 ) ; / / c a l c u l FAUX en géné r a l L=lightPosition positioneye. xyz / positioneye.w; N=normalEye. xyz ;... g l _ P o s i t i o n = p r o j e c t i o n positioneye ; } F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

45 Attention au Scale! (la suite) Transformation des normales incorrecte lors d un changement d échelle. avant transformation après transformation par modelview La matrice correcte pour transformer les normales est (M 1 ) t où M est la sous-matrice 3x3 (3 premières lignes, 3 premières colonnes) de modelview. Il faut donc passer une matrice supplémentaire : vec4 positioneye=modelviewmatrix vec4 ( position, 1. 0 ) ; vec3 normaleye=normalmatrix normal ; L=lightPosition positioneye. xyz / positioneye.w; N=normalEye ;... g l _ P o s i t i o n = p r o j e c t i o n positioneye ; F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

46 6 Représentation des changements de repères par TRS - Quaternions F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

47 Représenter la conception hiérarchique Représenter explicitement la hiérarchie par un arbre (graphe de scène). class Object3D { Matrix4 _parentchild ; / / changement de repè re Object3D _parent ; / / r é f érence sur l e noeud parent std : : vector <Object3D > _child ; / / noeuds enfants public :... v i r t u a l void draw ( ) = 0 ; / / i n t e r f a c e : t r a c e dans l e repè re l o c a l... } ; Le visualiseur ("renderer") se charge de parcourir tout l arbre en composant la modelview et en traçant les géométries à chaque noeud (+ gestion des shaders/textures/etc). Offrir toutes les méthodes de positionnement et de changements de repères nécessaires. Ex : translate (par rapport au local ou au parent) ; rotate (idem) ; matrice worldlocal ; localworld ; pointtoworld(p L ocal) ; directiontoworld(u L ocal) ; etc ; etc. On fera plus simple lors des TPs : uniquement un niveau. F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

48 TR(S) Si les matrices homogènes s imposent (composition simple par produit, librairie OpenGL), la représentation du placement est souvent couplée à une représentation Translation/Rotation. Tout placement d un objet rigide (composition de translations et rotations) peut se réduire à TR : c est à dire une translation (c est la position de l objet) et une rotation (c est l orientation de l objet). On peut éventuellement compléter par un changement d échelle S pour contrôler les dimensions d un objet. class Object3D { Vector3 _ position ; / / T Quaternion _ orientation ; / / R Vector3 _scale ; / / S... } ; Quaternion? F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

49 Représentation d une orientation Plusieurs choix pour représenter l orientation : matrices (quel est l axe? l angle? ; erreurs numériques lors de compositions multiples ; interpolation M = (1 λ)m1 + λm2). angle/axe : intuitif mais pas nécessairement évident à manipuler (composition) angles de Cardan ("abusivement" appelés angles d Euler en informatique graphique). quaternions. F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

50 Remarques sur angles d Euler M 0 3 = R Z0 R Y1 R X2 (ordre Z Y X). r o t a t i o n ( bleu ) ; / / l a c e t (yaw ) r o t a t i o n ( rouge ) ; / / tangage ( p i t c h ) r o t a t i o n ( v e r t ) ; / / r o u l i s ( r o l l ) Remarque : en informatique graphique, l ordre des axes est généralement Y X Z : autour de y (= lacet), puis autour de x (= tangage), puis autour de z (= roulis). F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

51 Représentation par angles d Euler (2) class Object3D { Vector3 _ position ; / / p o s i t i o n en t r a n s l a t i o n double _ay, _ax, _az ; / / orientation ( angles d Euler )... public :... } Draw : p3d : : modelview. t r a n s l a t e ( _ p o s i t i o n. x ( ), _ p o s i t i o n. y ( ), _ p o s i t i o n. z ( ) ) ; p3d : : modelview. rotate ( _ay,0,1,0); / / yaw : autour de y p3d : : modelview. rotate ( _ax,1,0,0); / / p i t c h : autour de x p3d : : modelview. rotate ( _az,0,0,1); / / r o l l : autour de z... } Représentation peut sembler simple : 3 angles, et l orientation totale est alors donnée par M = R Y0 R X1 R Z2, mais la composition pose un véritable problème de conception : Comment composer par rapport à l orientation actuelle? (exemple de l interaction à la souris : comment faire un yaw après un pitch??). Gimbal lock : possible de perdre un degré de liberté. F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

52 Gimbal Lock r o t a t i o n ( bleu ) ; / / yaw r o t a t i o n ( rouge ) ; / / p i t c h r o t a t i o n ( v e r t ) ; / / r o l l rouge = 90 degrés F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

53 Représentation d une orientation par quaternion (1) Définition : q = (a,u) avec a un scalaire de IR, et u un vecteur de IR 3 (donc 4 composantes en tout). Un vecteur u peut s écrire avec le quaternion q = (0,u). Somme : q 1 + q 2 = (a,u) + (b,v) = (a + b,u + v). Multiplication : q 1 q 2 = (a,u)(b,v) = (ab u v,u v + av + bu) Conjugué : (a,u) = (a, u) Multiplication par un scalaire : kq = k(a,u) = (ka,ku) Norme : q = a 2 + u u F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

54 Représentation par quaternion (2) Calcul à partir de 2 vecteurs : u et v unitaires, et formant un angle θ alors le quaternion q = (u v,u v) est une représentation d une rotation de vecteur u v et d angle 2θ. Tout quaternion normé s écrit q = (cosα, sinαu) avec u normé : représente une rotation d angle 2α et de vecteur u (axe passant par l origine). Soit q un quaternion représentant une rotation, alors l image w du vecteur w s obtient par w = qwq Soient q1 et q2 deux rotations, alors la rotation composée est q1q2. F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

55 Conversion quaternion en matrice Soit q = (a,u) = (a,(x,y,z)) une rotation, alors la matrice homogène de rotation est : 1 2y 2 2z 2 2xy 2za 2xz + 2ya 0 2xy + 2za 1 2x 2 2z 2 2yz 2xa 0 2xz 2ya 2yz + 2xa 1 2x 2 2y F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

56 Intérêt des quaternions représentation de la composition moins gourmande en temps de calcul (comparer à la multiplication entre matrice). composition des rotations plus robuste : il suffit de normaliser le quaternion pour s assurer que nous avons toujours une rotation. interpolation : l interpolation linéaire de deux quaternions donne un résultat plus naturel qu avec les matrices (i.e. q3 = (1 λ)q1 + λq2, mais il faut toutefois normaliser q3). Remarque : l attribut _position est également interpolé linéairement. F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

57 Classe Quaternion La classe Quaternion est disponible pour les tps. Les méthodes utiles sont : Initialisation à la rotation identité : q.setidentity() Conversion d une représentation (angle,axe) à un quaternion : q.setfromangleaxis(angle,axe) (axe de type Vector3) Conversion d un quaternion à une représentation (angle,axe) : q.copytoangleaxis(&angle,&axe) Composition de 2 rotations : q3=q1*q2 Composition avec une rotation représentée par (angle,axe) : q.rotate(angle,axe) (q est modifié) Rotation d un vecteur : v=q*u (avec u et v de type Vector3) F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

58 Transformation position ou direction Attention : il faut différencier les points P(x, y, z) et les directions u(x, y, z) lors des transformations. Une direction ne doit pas subir la translation : Avec les matrices homogènes : il suffit d appliquer une coordonnée homogène 0 pour les vecteurs. Avec une représentation translation/rotation : la direction subit uniquement la rotation (ignorer la translation). F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D / 58

Synthèse d'image avancée

Synthèse d'image avancée Plan Snthèse d'image avancée Cours 2: Transformations, perspective et caméras Motivation Rappels d algèbre linéaire Transformations Caméra sténopé, projection Sources: Xavier Granier, Nicolas Holzschuch

Plus en détail

Représentation géométrique d un nombre complexe

Représentation géométrique d un nombre complexe CHAPITRE 1 NOMBRES COMPLEXES 1 Représentation géométrique d un nombre complexe 1. Ensemble des nombres complexes Soit i le nombre tel que i = 1 L ensemble des nombres complexes est l ensemble des nombres

Plus en détail

Animation d un robot

Animation d un robot nimation d un robot IFT3355 : Infographie - TP #1 Jérémie Dumas Baptiste De La Robertie 3 février 2010 Université de Montréal Table des matières Introduction au problème 2 1 Transformations 2 1.1 Passage

Plus en détail

en utilisant un point-virgule.

en utilisant un point-virgule. 6 Chapitre Chapitre 6. Géométrie analytique Ce chapitre présente les possibilités de votre calculatrice dans le domaine de la géométrie analytique, tout particulièrement pour les problèmes liés aux espaces

Plus en détail

MOTEURS DE JEU RAPPELS MATHÉMATIQUES. Rémi Ronfard, Septembre 2014

MOTEURS DE JEU RAPPELS MATHÉMATIQUES. Rémi Ronfard, Septembre 2014 MOTEURS DE JEU RAPPELS MATHÉMATIQUES Rémi Ronfard, Septembre 2014 1 Cette présentation récapitule les concepts mathématiques nécessaires à la mise en place d un pipeline d affichage 3D. Son but n est pas

Plus en détail

1 radian. De même, la longueur d un arc de cercle de rayon R et dont l angle au centre a pour mesure α radians est α R. R AB =R.

1 radian. De même, la longueur d un arc de cercle de rayon R et dont l angle au centre a pour mesure α radians est α R. R AB =R. Angles orientés Trigonométrie I. Préliminaires. Le radian Définition B R AB =R C O radian R A Soit C un cercle de centre O. Dire que l angle géométrique AOB a pour mesure radian signifie que la longueur

Plus en détail

Cours de Mécanique du point matériel

Cours de Mécanique du point matériel Cours de Mécanique du point matériel SMPC1 Module 1 : Mécanique 1 Session : Automne 2014 Prof. M. EL BAZ Cours de Mécanique du Point matériel Chapitre 1 : Complément Mathématique SMPC1 Chapitre 1: Rappels

Plus en détail

SOMMAIRE 1 INTRODUCTION 3 2 NOTION DE TORSEUR 3. 2.1 Définition 3 2.1.1 Propriétés liées aux torseurs 4 2.1.2 Produit ou comoment de deux torseurs 4

SOMMAIRE 1 INTRODUCTION 3 2 NOTION DE TORSEUR 3. 2.1 Définition 3 2.1.1 Propriétés liées aux torseurs 4 2.1.2 Produit ou comoment de deux torseurs 4 SOAIRE 1 INTRODUCTION 3 2 NOTION DE TORSEUR 3 2.1 Définition 3 2.1.1 Propriétés liées aux torseurs 4 2.1.2 Prouit ou comoment e eux torseurs 4 2.2 Torseurs élémentaires 4 2.2.1 Torseur couple 4 2.2.2 Torseur

Plus en détail

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin. Exo7 Matrice d une application linéaire Corrections d Arnaud odin. Exercice Soit R muni de la base canonique = ( i, j). Soit f : R R la projection sur l axe des abscisses R i parallèlement à R( i + j).

Plus en détail

Chapitre 3: Dynamique

Chapitre 3: Dynamique Introduction Le mot dynamique désigne ou qualifie ce qui est relatif au mouvement. Il est l opposé du mot statique. Le mouvement d un point matériel est liée à son interaction avec le monde extérieur ce

Plus en détail

LE PRODUIT SCALAIRE ( En première S )

LE PRODUIT SCALAIRE ( En première S ) LE PRODUIT SCALAIRE ( En première S ) Dernière mise à jour : Jeudi 4 Janvier 007 Vincent OBATON, Enseignant au lycée Stendhal de Grenoble ( Année 006-007 ) 1 Table des matières 1 Grille d autoévaluation

Plus en détail

Placement de la caméra en OpenGL

Placement de la caméra en OpenGL TPs L2 Informatique AII3D : découverte de la synthèse d images Placement de la caméra en OpenGL Ce TP a pour but de comprendre comment placer (et déplacer) la caméra en OpenGL. Nous allons créer une navigation

Plus en détail

INTRODUCTION. A- Modélisation et paramétrage : CHAPITRE I : MODÉLISATION. I. Paramétrage de la position d un solide : (S1) O O1 X

INTRODUCTION. A- Modélisation et paramétrage : CHAPITRE I : MODÉLISATION. I. Paramétrage de la position d un solide : (S1) O O1 X INTRODUCTION La conception d'un mécanisme en vue de sa réalisation industrielle comporte plusieurs étapes. Avant d'aboutir à la maquette numérique du produit définitif, il est nécessaire d'effectuer une

Plus en détail

Chapitre 4 : Modélisation 3D

Chapitre 4 : Modélisation 3D Chapitre 4 : Modélisation 3D Modélisation 3D et Synthèse Fabrice Aubert fabrice.aubert@lifl.fr Master Informatique 2014-2015 F. Aubert (MS2) M3DS/ 4 - Modélisation 3D 2014-2015 1 / 44 1 Introduction F.

Plus en détail

Géométrie et Infographie. J-L.Maltret

Géométrie et Infographie. J-L.Maltret L2 Mathématiques-Informatique 2006-2007 Géométrie et Infographie J-L.Maltret Jean-Louis.Maltret@lumimath.univ-mrs.fr Géométrie et Infographie 2006-2007 J-L.Maltret 2 Table des matières 1 Introduction 4

Plus en détail

Chapitre VIII : Vertex et Fragment Shaders

Chapitre VIII : Vertex et Fragment Shaders Chapitre VIII : Vertex et Fragment Shaders Programmation 3D Fabrice Aubert fabrice.aubert@lifl.fr Licence/Master USTL - IEEA 2008-2009 F. Aubert (LS6/MS2) P3D/ VIII Shaders 2008-2009 1 / 28 Introduction

Plus en détail

UNIVERSITÉ DE POITIERS

UNIVERSITÉ DE POITIERS UNIVERSITÉ DE POITIERS Faculté des Sciences Fondamentales et Appliquées Mathématiques PREMIÈRE ANNEE DE LA LICENCE DE SCIENCES ET TECHNOLOGIES UE L «algèbre linéaire» Plan du cours Exercices Enoncés des

Plus en détail

A. Déterminant d une matrice carrée

A. Déterminant d une matrice carrée IUT ORSAY Mesures Physiques Déterminants Initiation à la diagonalisation de matrice Cours du ème Semestre A Déterminant d une matrice carrée A-I Définitions élémentaires Si A est la matrice ( a ) on appelle

Plus en détail

Chapitre I. Calcul vectoriel. Nous nous placerons dorénavant toujours dans une base orthonormée directe.

Chapitre I. Calcul vectoriel. Nous nous placerons dorénavant toujours dans une base orthonormée directe. Chapitre I INTRODUCTION ATHÉATIQUE I.A. I.A.1. Calcul vectoriel Produit vectoriel Plaçons-nous dans un espace vectoriel euclidien à trois dimensions. En faisant subir des rotations identiques aux trois

Plus en détail

Boîte à outils mathématiques de base pour l infographie et l animation par ordinateur. Yves Chiricota, professeur DIM, UQAC Cours 8TRD147

Boîte à outils mathématiques de base pour l infographie et l animation par ordinateur. Yves Chiricota, professeur DIM, UQAC Cours 8TRD147 Boîte à outils mathématiques de base pour l infographie et l animation par ordinateur Yves Chiricota, professeur DIM, UQAC Cours 8TRD147 14 Janvier 2015 2 Il est impossible d envisager l étude des méthodes

Plus en détail

Méthodes de Monte-Carlo Simulation de grandeurs aléatoires

Méthodes de Monte-Carlo Simulation de grandeurs aléatoires Méthodes de Monte-Carlo Simulation de grandeurs aléatoires Master Modélisation et Simulation / ENSTA TD 1 2012-2013 Les méthodes dites de Monte-Carlo consistent en des simulations expérimentales de problèmes

Plus en détail

F411 - Courbes Paramétrées, Polaires

F411 - Courbes Paramétrées, Polaires 1/43 Courbes Paramétrées Courbes polaires Longueur d un arc, Courbure F411 - Courbes Paramétrées, Polaires Michel Fournié michel.fournie@iut-tlse3.fr http://www.math.univ-toulouse.fr/ fournie/ Année 2012/2013

Plus en détail

Fonctions de plusieurs variables

Fonctions de plusieurs variables Module : Analyse 03 Chapitre 00 : Fonctions de plusieurs variables Généralités et Rappels des notions topologiques dans : Qu est- ce que?: Mathématiquement, n étant un entier non nul, on définit comme

Plus en détail

Angles orientés et fonctions circulaires ( En première S )

Angles orientés et fonctions circulaires ( En première S ) Angles orientés et fonctions circulaires ( En première S ) Dernière mise à jour : Jeudi 01 Septembre 010 Vincent OBATON, Enseignant au lycée Stendhal de Grenoble (Année 006-007) Lycée Stendhal, Grenoble

Plus en détail

Oscillations libres des systèmes à deux degrés de liberté

Oscillations libres des systèmes à deux degrés de liberté Chapitre 4 Oscillations libres des systèmes à deux degrés de liberté 4.1 Introduction Les systèmes qui nécessitent deux coordonnées indépendantes pour spécifier leurs positions sont appelés systèmes à

Plus en détail

Introduction à la notion Pipeline Graphique (initiation)

Introduction à la notion Pipeline Graphique (initiation) DENNE Introduction à la notion Pipeline Graphique (initiation) Année universitaire 2004-2005 Pascal Mignot Pascal.Mignot@univ-reims.fr DENNE Objectifs préparation au cours: d OpenGL (initiation) de DirectX

Plus en détail

Electrocinétique et magnétostatique

Electrocinétique et magnétostatique Chapitre 3 Electrocinétique et magnétostatique 3.1 Electrocinétique - Vecteur densité de courant Un courant électrique correspond à des charges électriques mobiles. On appelle vecteur densité de courant

Plus en détail

un repère orthonormé de l espace.

un repère orthonormé de l espace. Terminale S GEOMETRIE Ch 13 DANS L ESPACE. Soit ( O ; i, j, k ) un repère orthonormé de l espace. I) Droites et plans dans l espace : Propriété 1 : Soient A et B deux points de l espace. AB est l ensemble

Plus en détail

Vecteurs Géométrie dans le plan Exercices corrigés

Vecteurs Géométrie dans le plan Exercices corrigés Vecteurs Géométrie dans le plan Exercices corrigés Sont abordés dans cette fiche : Exercice 1 : notion de vecteur, transformation de points par translation et vecteurs égaux Exercice 2 : parallélogramme

Plus en détail

Cours d Analyse. Fonctions de plusieurs variables

Cours d Analyse. Fonctions de plusieurs variables Cours d Analyse Fonctions de plusieurs variables Licence 1ère année 2007/2008 Nicolas Prioux Université de Marne-la-Vallée Table des matières 1 Notions de géométrie dans l espace et fonctions à deux variables........

Plus en détail

Angles orientés et trigonométrie

Angles orientés et trigonométrie Chapitre Angles orientés et trigonométrie Ce que dit le programme : CONTENUS CAPACITÉS ATTENDUES COMMENTAIRES Trigonométrie Cercle trigonométrique. Radian. Mesure d un angle orienté, mesure principale.

Plus en détail

Support de formation sur les mathématiques liés à la 3D

Support de formation sur les mathématiques liés à la 3D Support de formation sur les mathématiques liés à la 3D Par David Lanier de SARL David Lanier 3D www.dl3d.com Programmation informatique graphique : plug-ins, shaders Page 1 Support de formation sur les

Plus en détail

Systèmes linéaires. 1. Introduction aux systèmes d équations linéaires. Exo7. 1.1. Exemple : deux droites dans le plan

Systèmes linéaires. 1. Introduction aux systèmes d équations linéaires. Exo7. 1.1. Exemple : deux droites dans le plan Exo7 Systèmes linéaires Vidéo partie 1. Introduction aux systèmes d'équations linéaires Vidéo partie 2. Théorie des systèmes linéaires Vidéo partie 3. Résolution par la méthode du pivot de Gauss 1. Introduction

Plus en détail

FONCTIONS TRIGONOMÉTRIQUES

FONCTIONS TRIGONOMÉTRIQUES FONCTIONS TRIGONOMÉTRIQUES Définition ( voir animation ) On dit qu'un repère orthonormé (O; i, j) est direct lorsque ( i ; j ) = + []. Dans le plan rapporté à un repère orthonormé direct, si M est le point

Plus en détail

Fiche 17 Nombres complexes

Fiche 17 Nombres complexes Fiche 7 Nombres complexes Objectifs : Connaître les différentes définitions Savoir passer d une notation à l autre Savoir simplifier des nombres et effectuer les opérations élémentaires. Définitions On

Plus en détail

Produit scalaire dans l Espace

Produit scalaire dans l Espace Produit scalaire dans l Espace Christophe ROSSIGNOL Année scolaire 014/015 Table des matières 1 Produit scalaire du plan 1.1 Différentes expressions du produit scalaire............................... 1.

Plus en détail

Restauration d images

Restauration d images Restauration d images Plan Présentation du problème. Premières solutions naïves (moindre carrés, inverse généralisée). Méthodes de régularisation. Panorama des méthodes récentes. Problème général Un système

Plus en détail

- Mobiliser les résultats sur le second degré dans le cadre de la résolution d un problème.

- Mobiliser les résultats sur le second degré dans le cadre de la résolution d un problème. Mathématiques - classe de 1ère des séries STI2D et STL. 1. Analyse On dote les élèves d outils mathématiques permettant de traiter des problèmes relevant de la modélisation de phénomènes continus ou discrets.

Plus en détail

Transformations. PJE Multi-touch. Fabrice Aubert Master Informatique UFR IEEA

Transformations. PJE Multi-touch. Fabrice Aubert Master Informatique UFR IEEA Transformations PJE Multi-touch Fabrice Aubert fabrice.aubert@univ-lille1.fr Master Informatique UFR IEEA 2016-2017 F. Aubert (MS1) PJE MultiTouch/ Transformations 2016-2017 1 / 34 1 Objectifs F. Aubert

Plus en détail

GUIDE D UTILISATION «MECA PRO» Etude de l équilibre d un solide soumis à trois forces

GUIDE D UTILISATION «MECA PRO» Etude de l équilibre d un solide soumis à trois forces GUIDE D UTILISATION «MECA PRO» Etude de l équilibre d un solide soumis à trois forces Etude de l équilibre d un solide soumis à trois forces non parallèles Si un solide soumis à l'action de 3 forces A

Plus en détail

Chafa Azzedine - Faculté de Physique U.S.T.H.B 1

Chafa Azzedine - Faculté de Physique U.S.T.H.B 1 Chafa Azzedine - Faculté de Physique U.S.T.H.B 1 Définition: La cinématique est une branche de la mécanique qui étudie les mouements des corps dans l espace en fonction du temps indépendamment des causes

Plus en détail

1 Complément sur la projection du nuage des individus

1 Complément sur la projection du nuage des individus TP 0 : Analyse en composantes principales (II) Le but de ce TP est d approfondir nos connaissances concernant l analyse en composantes principales (ACP). Pour cela, on reprend les notations du précédent

Plus en détail

COURS : Quaternions. 1 Nombres Complexes (bref rappel)

COURS : Quaternions. 1 Nombres Complexes (bref rappel) 1 Nombres Complexes (bref rappel) Les nombres complexes sont composés d'une partie réelle et d'une partie imaginaire : z = a + b*i avec i*i = -1 Le conjugué de z noté z' est égal à : z'= a b*i Et la norme

Plus en détail

Notes de cours L1 MATH120. Hervé Le Dret

Notes de cours L1 MATH120. Hervé Le Dret Notes de cours L1 MATH120 Hervé Le Dret 18 octobre 2004 40 Chapitre 3 Vecteurs dans R m Dans ce chapitre, nous allons nous familiariser avec la notion de vecteur du point de vue algébrique. Nous reviendrons

Plus en détail

Etalonnage de robots par vision

Etalonnage de robots par vision Etalonnage de robots par vision Nicolas Andreff Novembre 2012 Institut Français de Mécanique Avancée UV Étalonnage et Identification des Systèmes TP Étalonnage Géométrique Nicolas Andreff Année 2004 2005

Plus en détail

1 Cinématique du solide

1 Cinématique du solide TBLE DES MTIÈRES 1 Cinématique du solide 1 1.1 Coordonnées d un point dans l espace......................... 1 1.1.1 Repère et référentiel................................ 1 1.1.2 Sens trigonométrique...............................

Plus en détail

3.1 Circulation du champ d une charge ponctuelle A(Γ)

3.1 Circulation du champ d une charge ponctuelle A(Γ) Chapitre 3 Le potentiel électrostatique Le champ électrostatique peut être caractérisé simplement à l aide d une fonction que nous appellerons potentiel électrostatique. Cette fonction scalaire est souvent

Plus en détail

Transformations de scène avec OpenGl

Transformations de scène avec OpenGl Transformations de scène avec OpenGl Frank Singhoff Bureau C-203 Université de Brest, France LISyC/EA 3883 singhoff@univ-brest.fr UE multimédias et animation, Université de Brest Page 1/32 Sommaire 1.

Plus en détail

Vision par ordinateur

Vision par ordinateur Vision par ordinateur Géométrie de la vision Frédéric Devernay Géométrie projective Géométrie projective pour la vision Utilisations de la géométrie projective Dessin Mesures Mathématiques de la projection

Plus en détail

SYLLABUS / PLAN DE COURS. 40,5 Charge de travail personnel de 2 heures/semaine TP : 1 semaine. QCM Dissertation Cas Pratique

SYLLABUS / PLAN DE COURS. 40,5 Charge de travail personnel de 2 heures/semaine TP : 1 semaine. QCM Dissertation Cas Pratique SYLLABUS / PLAN DE COURS Matière : Algorithmique pour l infographie: 2I Code du module : * Cursus : * Semestre : 1 et 2 Nombre ECTS du cours : * Rempli par l administration de PPA * Responsable du cours

Plus en détail

PRODUIT SCALAIRE EXERCICES CORRIGES

PRODUIT SCALAIRE EXERCICES CORRIGES Exercice n. (correction) Répondre par VRAI (V) ou FAUX (F) : Question Soient A, B et C trois points distincts du plan. PRODUIT SCALAIRE EXERCICES CORRIGES a) A, B et C sont alignés si et seulement si :

Plus en détail

Exercices théoriques

Exercices théoriques École normale supérieure 2008-2009 Département d informatique Algorithmique et Programmation TD n 9 : Programmation Linéaire Avec Solutions Exercices théoriques Rappel : Dual d un programme linéaire cf.

Plus en détail

Exo7. Formes quadratiques. Exercices de Jean-Louis Rouget. Retrouver aussi cette fiche sur www.maths-france.fr

Exo7. Formes quadratiques. Exercices de Jean-Louis Rouget. Retrouver aussi cette fiche sur www.maths-france.fr Exo Formes quadratiques Exercices de Jean-Louis Rouget. Retrouver aussi cette fiche sur www.maths-france.fr * très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable

Plus en détail

GEOGEBRA : Les indispensables

GEOGEBRA : Les indispensables Préambule GeoGebra est un logiciel de géométrie dynamique dans le plan qui permet de créer des figures dans lesquelles il sera possible de déplacer des objets afin de vérifier si certaines conjectures

Plus en détail

PAD - Notes de cours. S. Rigal, D. Ruiz, et J. C. Satgé

PAD - Notes de cours. S. Rigal, D. Ruiz, et J. C. Satgé ALGÈBRE PAD - Notes de cours S. Rigal, D. Ruiz, et J. C. Satgé November 23, 2006 Table des Matières Espaces vectoriels Applications linéaires - Espaces vectoriels............................... 3 -. Approche

Plus en détail

figure 6.1. page 230. Il existe deux grandes classes de projections : les projections perspectives et les projections parallèles.

figure 6.1. page 230. Il existe deux grandes classes de projections : les projections perspectives et les projections parallèles. Informatique Graphique Cours 12 - Projections Introduction En général, une projection est une fonction qui permet de transformer un point dans système de coordonnées à N dimensions, en un point dans un

Plus en détail

Séquence 6. Ensemble des nombres complexes. Sommaire. Prérequis Définition Forme algébrique Forme trigonométrique Synthèse

Séquence 6. Ensemble des nombres complexes. Sommaire. Prérequis Définition Forme algébrique Forme trigonométrique Synthèse Séquence 6 Ensemble des nombres complexes Sommaire Prérequis Définition Forme algébrique Forme trigonométrique Synthèse Cette séquence est une brève introduction à un nouvel ensemble de nombres, ensemble

Plus en détail

Cours 1 - Premiers pas en 3D. Xavier Décoret - INF583 École Polytechnique

Cours 1 - Premiers pas en 3D. Xavier Décoret - INF583 École Polytechnique Cours 1 - Premiers pas en 3D Xavier Décoret - INF583 École Polytechnique Disclaimer Attention, c est le cours le plus difficile le plus important Il y a beaucoup de on verra plus tard C est le canvas sur

Plus en détail

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4) FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4) Bernard Le Stum Université de Rennes 1 Version du 13 mars 2009 Table des matières 1 Fonctions partielles, courbes de niveau 1 2 Limites et continuité

Plus en détail

À propos des matrices échelonnées

À propos des matrices échelonnées À propos des matrices échelonnées Antoine Ducros appendice au cours de Géométrie affine et euclidienne dispensé à l Université Paris 6 Année universitaire 2011-2012 Introduction Soit k un corps, soit E

Plus en détail

EXAMENS PROPOSES EN STATIQUE ET CINEMATIQUE DES SOLIDES

EXAMENS PROPOSES EN STATIQUE ET CINEMATIQUE DES SOLIDES EXAMENS PROPOSES EN STATIQUE ET CINEMATIQUE DES SOLIDES L1 Page 41 Institut Supérieur des Etudes Technologique de Nabeul Département de Génie Mécanique EXAMEN DE MECANIQUE GENERALE Année universitaire

Plus en détail

Résolution de systèmes linéaires : Méthodes directes. Polytech Paris-UPMC. - p. 1/51

Résolution de systèmes linéaires : Méthodes directes. Polytech Paris-UPMC. - p. 1/51 Résolution de systèmes linéaires : Méthodes directes Polytech Paris-UPMC - p. /5 Rappels mathématiques s Propriétés - p. 2/5 Rappels mathématiques Soit à résoudre le système linéaire Ax = b. Rappels mathématiques

Plus en détail

Utiliser les propriétés Savoir réduire un radical savoir +,-,x,: Utiliser les propriétés des puissances Calculer avec des puissances

Utiliser les propriétés Savoir réduire un radical savoir +,-,x,: Utiliser les propriétés des puissances Calculer avec des puissances ARITHMETIQUE 1 C B A Numération Ecrire en lettres et en chiffres Poser des questions fermées autour d un document simple (message, consigne, planning ) Connaître le système décimal Déterminer la position

Plus en détail

Mécanisme d essuie glace Bosch

Mécanisme d essuie glace Bosch 1- Montrer que V ( 3/ 0) 0,5 m/ s 30 mm On mesure sur le document réponses : O mes = 30 mm L échelle est de 1/ 2 donc O reelle = 30 1.4 = 42mm 2π V ( 3/ 0) = O Ω (3/ 0) = 0.042 114 = 0.5 m/ s 60 V ( 3/

Plus en détail

Cours de mathématiques. Chapitre 9 : Nombres complexes

Cours de mathématiques. Chapitre 9 : Nombres complexes Cours de mathématiques Terminale S1 Chapitre 9 : Nombres complexes Année scolaire 2008-2009 mise à jour 15 février 2009 Fig. 1 Gerolamo Cardano Médecin et mathématicien italien qui ne redoutait pas les

Plus en détail

Licence SPI Cinématique et Mécanismes. Introduction à la théorie des mécanismes

Licence SPI Cinématique et Mécanismes. Introduction à la théorie des mécanismes Licence SPI Cinématique et Mécanismes Introduction à la théorie des mécanismes Mobilité, hyperstatisme, singularité Plan Problèmes/Objectifs Quelques exemples Graphe mécanisme Nombre de cyclomatique Analyse

Plus en détail

133: endomorphismes remarquables d'un espace vectoriel euclidien de dimension nie

133: endomorphismes remarquables d'un espace vectoriel euclidien de dimension nie 133: endomorphismes remarquables d'un espace vectoriel euclidien de dimension nie Pierre Lissy March 8, 2010 On considère un espace vectoriel euclidien de dimension nie n, le produit scalaire sera noté

Plus en détail

Cahier de vacances - Préparation à la Première S

Cahier de vacances - Préparation à la Première S Cahier de vacances - Préparation à la Première S Ce cahier est destiné à vous permettre d aborder le plus sereinement possible la classe de Première S. Je vous conseille de le travailler pendant les 0

Plus en détail

Soutien illimité 7j/7 en maths: Coach, profs, exercices & annales, cours. Sujet de Bac 2013 Maths S Obligatoire & Spécialité - Liban

Soutien illimité 7j/7 en maths: Coach, profs, exercices & annales, cours. Sujet de Bac 2013 Maths S Obligatoire & Spécialité - Liban Sujet de Bac 2013 Maths S Obligatoire & Spécialité - Liban EXERCICE 1 : 4 Points Cet exercice est un questionnaire à choix multiples. Aucune justification n est demandée. Pour chacune des questions, une

Plus en détail

Mécanique des solides déformables

Mécanique des solides déformables Mécanique des solides déformables Auteur Michel MAYA 1 Descriptions 2 Représentations graphiques Ce cours est mis à disposition selon les termes de la licence Creative Commons Paternité + Pas d utilisation

Plus en détail

Création d un viewer d objets 3D : découverte de la librairie graphique OpenGL.

Création d un viewer d objets 3D : découverte de la librairie graphique OpenGL. TPs L2 Informatique AII3D : découverte de la synthèse d images Création d un viewer d objets 3D : découverte de la librairie graphique OpenGL. Le but de ce TP est de se familiariser avec la librairie et

Plus en détail

Les supports de cours suivants font référence au cours de Mr SOL et à son livre : "Accès à l'université" chez DUNOD

Les supports de cours suivants font référence au cours de Mr SOL et à son livre : Accès à l'université chez DUNOD Les supports de cours suivants font référence au cours de Mr SOL et à son livre : "Accès à l'université" chez DUNOD Les supports de cours ne sont pas complets, ils ne contiennent ni les démonstrations,

Plus en détail

E3A PC 2009 Math A. questions de cours. t C). On véri e que

E3A PC 2009 Math A. questions de cours. t C). On véri e que E3A PC 29 Math A questions de cours. Soit C 2 M 3 (R) Analyse : Si C = S + A, S 2 S 3 (R) et A 2 A 3 (R) alors t C = t S + t A = S A d où S = 2 (C +t C) et A = 2 (C t C). L analyse assure l unicité (sous

Plus en détail

Calcul Matriciel. Chapitre 10. 10.1 Qu est-ce qu une matrice? 10.2 Indexation des coefficients. 10.3 Exemples de matrices carrées.

Calcul Matriciel. Chapitre 10. 10.1 Qu est-ce qu une matrice? 10.2 Indexation des coefficients. 10.3 Exemples de matrices carrées. Chapitre 10 Calcul Matriciel 101 Qu est-ce qu une matrice? Définition : Soit K un ensemble de nombres exemples, K = N, Z, Q, R, C, n, p N On appelle matrice à n lignes et p colonnes la données de np nombres

Plus en détail

CINEMATIQUE GRAPHIQUE 2D Polycopié sans trous

CINEMATIQUE GRAPHIQUE 2D Polycopié sans trous Cours ENSIS MEC101 Mécanique des systèmes et des milieux déformables CINEMTIQUE GRPHIQUE 2D Polycopié sans trous 1/20 I) MOUVEMENT D'UN SOLIDE 1.1. Solide du point de vue cinématique Un mécanisme est composé

Plus en détail

2. MATRICES ET APPLICATIONS LINÉAIRES

2. MATRICES ET APPLICATIONS LINÉAIRES 2. MATRICES ET APPLICATIONS LINÉAIRES 2.1 Définition Une matrice n m est un tableau rectangulaire de nombres (réels en général) à n lignes et m colonnes ; n et m sont les dimensions de la matrice. Notation.

Plus en détail

TP MSO Synthèse d images: Lancé de rayons CPE

TP MSO Synthèse d images: Lancé de rayons CPE TP MSO Synthèse d images: Lancé de rayons CPE durée-4h 2011 FIGURE 1 Étapes de l algorithme de lancé de rayons. De gauche à droite : équation du calcul d intersection; image des intersections; ordonnancement

Plus en détail

1 Notion d espace vectoriel

1 Notion d espace vectoriel Arnaud de Saint Julien - MPSI Lycée La Merci 2014-2015 1 Résumé de cours sur les espaces vectoriels et les applications linéaires Les vecteurs du plan, les nombres réels, et les polynômes à coefficients

Plus en détail

17. ISOMÉTRIES LINÉAIRES

17. ISOMÉTRIES LINÉAIRES 17 ISOMÉTRIES LINÉAIRES 171 Isométries linéaires dans un espace vectoriel euclidien Soit E un espace vectoriel euclidien Une application linéaire f dans E est appelée isométrie linéaire ssi, quel que soit

Plus en détail

Visualisation 3D. Principes mathematiques. Christian NGUYEN. Departement d informatique Universite de Toulon et du Var. Visualisation 3D p.

Visualisation 3D. Principes mathematiques. Christian NGUYEN. Departement d informatique Universite de Toulon et du Var. Visualisation 3D p. Visualisation 3D Principes mathematiques Christian NGUYEN Departement d informatique Universite de Toulon et du Var Visualisation 3D p.1/24 Transformations géométriques Visualisation 3D p.2/24 Transformations

Plus en détail

CHAPITRE 1 Les vecteurs géométriques

CHAPITRE 1 Les vecteurs géométriques CHAPITRE 1 Les vecteurs géométriques Introduction Les quantités comme la température, la masse, le temps et la longueur sont représentées par des scalaires. Toutefois, il existe d autres quantités dont

Plus en détail

UNIVERSITÉ PARIS OUEST NANTERRE LA DÉFENSE U.F.R. SEGMI Année universitaire 2013 2014 MATHS/STATS. Solution des exercices d algèbre linéaire

UNIVERSITÉ PARIS OUEST NANTERRE LA DÉFENSE U.F.R. SEGMI Année universitaire 2013 2014 MATHS/STATS. Solution des exercices d algèbre linéaire UNIVERSITÉ PARIS OUEST NANTERRE LA DÉFENSE U.F.R. SEGMI Année universitaire 3 4 Master d économie Cours de M. Desgraupes MATHS/STATS Document : Solution des exercices d algèbre linéaire Table des matières

Plus en détail

Bref, c'est difficile, mais tout le monde doit y arriver.

Bref, c'est difficile, mais tout le monde doit y arriver. Bonjour à tous, les colles de mardi m'ont permis de vérifier que les notions de base du chapitre espaces vectoriels sont loin d'être acquises. Comme je vous le disais, il est essentiel d'apprendre régulièrement

Plus en détail

Fonctions affines. Table des matières

Fonctions affines. Table des matières Fonctions affines Table des matières 1 fonction linéaire, fonction constante, fonction affine 3 1.1 activités.............................................. 3 1.1.1 activité 1 : fonction linéaire et variation

Plus en détail

Champ et potentiel électrostatique. 1 Cas d une distribution de charges ponctuelles. Outils mathématiques. 1.1 Rappel (ou pas) : notion de champ

Champ et potentiel électrostatique. 1 Cas d une distribution de charges ponctuelles. Outils mathématiques. 1.1 Rappel (ou pas) : notion de champ 2 Champ et potentiel électrostatique Les e ets électriques peuvent être décrits par deux grandeurs que nous allons étudier dans ce chapitre : le champ électrostatique (grandeur vectorielle) et le potentiel

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

LES ROTATIONS DE R 3 : VERSION MATRICIELLE

LES ROTATIONS DE R 3 : VERSION MATRICIELLE LES ROTATIONS DE R : VERSION MATRICIELLE. L espace R n Les structures dont R n est muni appartiennent à quatre niveaux : Structure vectorielle: Vecteur. Combinaison linéaire. Familles libres et liées.

Plus en détail

Cours 3: Inversion des matrices dans la pratique...

Cours 3: Inversion des matrices dans la pratique... Cours 3: Inversion des matrices dans la pratique... Laboratoire de Mathématiques de Toulouse Université Paul Sabatier-IUT GEA Ponsan Module complémentaire de maths, année 2012 1 Rappel de l épisode précédent

Plus en détail

Chapitre 0 Introduction à la cinématique

Chapitre 0 Introduction à la cinématique Chapitre 0 Introduction à la cinématique Plan Vitesse, accélération Coordonnées polaires Exercices corrigés Vitesse, Accélération La cinématique est l étude du mouvement Elle suppose donc l existence à

Plus en détail

Synthèse d'images (6) Projections 2D & clôturage

Synthèse d'images (6) Projections 2D & clôturage Synthèse d'images (6) Projections 2D & clôturage Plan de l'exposé : 1- Projections planaires 2- Calculs de projection 3- Clôturage (clipping) 4- Digressions La colonne Trajane à Rome Athanase Kircher,

Plus en détail

Mathématiques pour l informatique. - Soutien - 1 Nombres complexes. 2 Suites. Exercice 1. (Nombres complexes) Soit le nombre complexe z = (2 + 2i) 7.

Mathématiques pour l informatique. - Soutien - 1 Nombres complexes. 2 Suites. Exercice 1. (Nombres complexes) Soit le nombre complexe z = (2 + 2i) 7. Mathématiques pour l informatique IMAC première année - Soutien - Nombres complexes Rappels. Un nombre complexe z admet plusieurs représentations : représentation vectorielle z = (a, b) où a, b R représentation

Plus en détail

M4 OSCILLATEUR HARMONIQUE

M4 OSCILLATEUR HARMONIQUE M4 OSCILLATEUR HARMONIQUE I Modèle de l oscillateur harmonique (O.H.) I. Exemples Cf Cours I. Définition Définition : Un oscillateur harmonique à un degré de liberté x (X, θ,... ) est un système physique

Plus en détail

Introduction à l analyse des données. Analyse des Données (1) Exemple, ville et (in)sécurité. Exemple, ville et (in)sécurité

Introduction à l analyse des données. Analyse des Données (1) Exemple, ville et (in)sécurité. Exemple, ville et (in)sécurité Introduction à l analyse des données Analyse des Données () Le but de l analyse de données est de synthétiser, structurer l information contenue dans des données multidimensionnelles Deux groupes de méthodes

Plus en détail

Par contre, lorsque P est finie, l inclusion f(p ) P implique l égalité f(p ) = P car, f

Par contre, lorsque P est finie, l inclusion f(p ) P implique l égalité f(p ) = P car, f Université Lyon 1 Algèbre générale S.P. Groupes III I. Groupe symétrique et géométrie. On se donne un ensemble E (souvent un espace euclidien ou une partie de cet espace) et une bijection f : E E (souvent

Plus en détail

MATHEMATIQUES. Premier Cycle TROISIEME

MATHEMATIQUES. Premier Cycle TROISIEME MATHEMATIQUES Premier Cycle TROISIEME 79 INTRODUCTION Le programme de la classe de troisième, dernier niveau de l enseignement moyen, vise à doter l élève de savoirs faire pratiques par une intégration

Plus en détail

MAT1702 A - SOLUTIONS DU TEST #2 - VERSION A

MAT1702 A - SOLUTIONS DU TEST #2 - VERSION A MAT702 A - SOLUTIONS DU TEST #2 - VERSION A. (5 points) Étant donné A 3 et B. 0 Pour chacune des opérations matricielles ci-dessous, calculez la matrice résultante si elle existe. Si l opération n est

Plus en détail

DEFINITION et PROPRIETES des PRINCIPALES LOIS de PROBABILITES

DEFINITION et PROPRIETES des PRINCIPALES LOIS de PROBABILITES Université Paris1, Licence 00-003, Mme Pradel : Principales lois de Probabilité 1 DEFINITION et PROPRIETES des PRINCIPALES LOIS de PROBABILITES Notations Si la variable aléatoire X suit la loi L, onnoterax

Plus en détail

Pipeline Graphique. Transforma)ons de modélisa)on. Illumina)on (Shading) Transforma)ons d affichage. Clipping. Transforma)on écran (Projec)on)

Pipeline Graphique. Transforma)ons de modélisa)on. Illumina)on (Shading) Transforma)ons d affichage. Clipping. Transforma)on écran (Projec)on) Pipeline Graphique Pipeline Graphique de Modèle de la scène Image 3D Transformations de modélisation de Application des transformations de composition de scène : Passage du système de coordonnées local

Plus en détail

Quelques éléments d algèbre pour l analyse de

Quelques éléments d algèbre pour l analyse de Fiche TD avec le logiciel : tdr80 Quelques éléments d algèbre pour l analyse de données A.B. Dufour, D. Chessel et M. Royer L algèbre matricielle est fondamentale dans la compréhension de la théorie liée

Plus en détail