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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MPSI 3 - Cahier de vacances... MPSI 3-2004/2005

MPSI 3 - Cahier de vacances... MPSI 3-2004/2005 MPSI 3 - Cahier de vacances... MPSI 3-2004/2005 Voici une fiche contenant 100 exercices de difficulté raisonable, plutôt techniques, qui recouvrent l ensemble du programme étudié cette année. A raison

Plus en détail

13. Géométrie analytique

13. Géométrie analytique 13. Géométrie analytique La géométrie analytique permet de résoudre par le calcul des problèmes de géométrie. Il convient toutefois de ne pas perdre de vue que la géométrie analytique est d abord de la

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

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

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

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

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

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

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

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

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

- 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

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN fbertin@neotilus.com

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN fbertin@neotilus.com Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184 Frédéric BERTIN fbertin@neotilus.com Présentaion : Mobile 3D Graphics API JSR 184 M3G :présentation Package optionnel de l api J2ME. Prend

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

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

Pipeline. G.Gilet. Informatique Graphique Moteurs 3D temps réels. Pipeline OpenGL. Guillaume Gilet Guillaume.Gilet@unilim.

Pipeline. G.Gilet. Informatique Graphique Moteurs 3D temps réels. Pipeline OpenGL. Guillaume Gilet Guillaume.Gilet@unilim. Informatique Graphique Moteurs 3D temps réels OpenGL Guillaume Gilet Guillaume.Gilet@unilim.fr 2012-2013 Résumé des épisodes précédents Rasterisation Projection des sommets dans le plan image Rasterisation

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

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

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

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

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

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer Pour commencer Exercice 1 - Ensembles de définition - Première année - 1. Le logarithme est défini si x + y > 0. On trouve donc le demi-plan supérieur délimité par la droite d équation x + y = 0.. 1 xy

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

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

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

Géométrie en trois dimensions

Géométrie en trois dimensions 1 Géométrie en trois dimensions Il s agit de visualiser des objets en trois dimensions sur un plan, pour nous l écran de l ordinateur. Pour ce faire, nous allons simplifier les choses au maximum. Nous

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

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

À 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

Utilisation du logiciel VV (visualisation vectorielle)

Utilisation du logiciel VV (visualisation vectorielle) Utilisation du logiciel VV (visualisation vectorielle) Michel Bouchard, enseignant retraité, Département de mathématiques, Cégep Saint-Jean-sur-Richelieu Résumé Le logiciel VV_proj permet de représenter

Plus en détail

Matrices. 1. Définition. Exo7. 1.1. Définition

Matrices. 1. Définition. Exo7. 1.1. Définition Exo7 Matrices Vidéo partie 1 Définition Vidéo partie 2 Multiplication de matrices Vidéo partie 3 Inverse d'une matrice : définition Vidéo partie 4 Inverse d'une matrice : calcul Vidéo partie 5 Inverse

Plus en détail

Annexe B : Les vecteurs. Scalaires et vecteurs

Annexe B : Les vecteurs. Scalaires et vecteurs Annee B : Les vecteurs Certains étudiants éprouvent de la difficulté en première session à l'école lorsqu'ils suivent le cours ING-10 "Statique et dnamique". Les vecteurs sont utilisés abondamment dans

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

Structures algébriques

Structures algébriques Structures algébriques 1. Lois de composition s Soit E un ensemble. Une loi de composition interne sur E est une application de E E dans E. Soient E et F deux ensembles. Une loi de composition externe

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

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

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

Chapitre 4. Adjoints Opérateurs auto-adjoints et isométries

Chapitre 4. Adjoints Opérateurs auto-adjoints et isométries Chapitre 4 Adjoints Opérateurs auto-adjoints et isométries I. Adjoint : Cas général d une forme { bilinéaire symétrique sesquilinéaire hermitienne On suppose dans tout I que E est un espace vectoriel de

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

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

Exercice 1 : DIRECTION ASSISTÉE ELECTRIQUE DE RENAULT TWINGO

Exercice 1 : DIRECTION ASSISTÉE ELECTRIQUE DE RENAULT TWINGO TD 20 - Loi Entrée-Sortie à l'aide d'un produit scalaire constant de deux vecteurs d orientation Page 1/6 Exercice 1 : DIRECTION ASSISTÉE ELECTRIQUE DE RENAULT TWINGO (Selon le concours CCP 2004 filière

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

WebGL. S. Choplin WebGL. Licence Sciences pour l Ingenieur 1ère année Université de Picardie J. Verne

WebGL. S. Choplin WebGL. Licence Sciences pour l Ingenieur 1ère année Université de Picardie J. Verne S. Choplin Licence Sciences pour l Ingenieur 1ère année Université de Picardie J. Verne S. Choplin Présentations Sébastien Choplin, (sebastien.choplin@u-picardie.fr) Enseignant chercheur en informatique

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

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

PETIT MEMENTO SCILAB

PETIT MEMENTO SCILAB PETIT MEMENTO SCILAB FRANÇOIS DUCROT 1. manipulation de vecteurs et matrices 1.1. Création de matrices. D abord quelques briques élémentaires utiles pour construire des choses plus compliquées. 1:4.5 nombres

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

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

Introduction. Mathématiques Quantiques Discrètes

Introduction. Mathématiques Quantiques Discrètes Mathématiques Quantiques Discrètes Didier Robert Facultés des Sciences et Techniques Laboratoire de Mathématiques Jean Leray, Université de Nantes email: v-nantes.fr Commençons par expliquer le titre.

Plus en détail

Document créé le 27 novembre 2013 Lien vers la dernière mise à jour de ce document Lien vers les exercices de ce chapitre

Document créé le 27 novembre 2013 Lien vers la dernière mise à jour de ce document Lien vers les exercices de ce chapitre Document créé le 27 novembre 2013 Lien vers la dernière mise à jour de ce document Lien vers les exercices de ce chapitre Chapitre 17 Matrices et applications linéaires Sommaire 171 Matrices et applications

Plus en détail

Travaux pratiques de Génie Informatique TP 2 & 3. séances, mais vous pouvez en faire plus. Essayer d aller le plus loin possible.

Travaux pratiques de Génie Informatique TP 2 & 3. séances, mais vous pouvez en faire plus. Essayer d aller le plus loin possible. 1 BUT DE LA SÉANCE. TRAVAUX PRATIQUES DE GÉNIE INFORMATIQUE Ces deuxième et troisième séances ont pour but de vous faire avancer dans la programmation sous Matlab. Vous y découvrez les fonctions, les sous-programmes

Plus en détail

PROGRAMMES DE MATHÉMATIQUES EN VIGUEUR DE L ENSEIGNEMENT SECONDAIRE GÉNÉRAL TECHNIQUE ET PROFESSIONNEL

PROGRAMMES DE MATHÉMATIQUES EN VIGUEUR DE L ENSEIGNEMENT SECONDAIRE GÉNÉRAL TECHNIQUE ET PROFESSIONNEL MINISTÈRE DE L ÉDUCATION DE L ALPHABÉTISATION ET DES LANGUES NATIONALES RÉPUBLIQUE DU MALI Un Peuple Un But Une Foi PROGRAMMES DE MATHÉMATIQUES EN VIGUEUR DE L ENSEIGNEMENT SECONDAIRE GÉNÉRAL TECHNIQUE

Plus en détail

BTS Mécanique et Automatismes Industriels. Équations différentielles d ordre 2

BTS Mécanique et Automatismes Industriels. Équations différentielles d ordre 2 BTS Mécanique et Automatismes Industriels Équations différentielles d ordre, Année scolaire 005 006 . Définition Notation Dans tout ce paragraphe, y désigne une fonction de la variable réelle x. On suppose

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

Informatique Graphique. Caroline Appert appert@lri.fr [IG CCI 2005/2006]

Informatique Graphique. Caroline Appert appert@lri.fr [IG CCI 2005/2006] Informatique Graphique Caroline Appert appert@lri.fr [IG CCI 2005/2006] Introduction Qu est-ce que l IG? Modélisation structures de données pour la représentations de scènes 2D ou 3D Rendu construction

Plus en détail

CI-4 PRÉVOIR ET SUPPRIMER LES

CI-4 PRÉVOIR ET SUPPRIMER LES CI-4 LES CONTRAINTES DE MONTAGE D UN SYSTÈME. Objectifs ANALYSER - OPTIMISER A la fin de la séquence de révision, l élève doit être capable de B2 Proposer un modèle de connaissance et de comportement Déterminer

Plus en détail

Actions de groupes. Exemples et applications

Actions de groupes. Exemples et applications 4 Actions de groupes. Exemples et applications G, ) est un groupe multiplicatif et on note ou G si nécessaire) l élément neutre. E est un ensemble non vide et S E) est le groupe des permutations de E.

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

Calcul intégral élémentaire en plusieurs variables

Calcul intégral élémentaire en plusieurs variables Calcul intégral élémentaire en plusieurs variables PC*2 2 septembre 2009 Avant-propos À part le théorème de Fubini qui sera démontré dans le cours sur les intégrales à paramètres et qui ne semble pas explicitement

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

Formes quadratiques. 1 Formes quadratiques et formes polaires associées. Imen BHOURI. 1.1 Définitions

Formes quadratiques. 1 Formes quadratiques et formes polaires associées. Imen BHOURI. 1.1 Définitions Formes quadratiques Imen BHOURI 1 Ce cours s adresse aux étudiants de niveau deuxième année de Licence et à ceux qui préparent le capes. Il combine d une façon indissociable l étude des concepts bilinéaires

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

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

Applications Bilinéaires et Formes Quadratiques

Applications Bilinéaires et Formes Quadratiques Ce cours peut être librement copié et distribué. Il est recommandé d en télécharger la version la plus récente à partir de : http://www.math.jussieu.fr/~alp. Toute remarque, correction ou suggestion doit

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

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

Eléments de Robotique. Université Blaise Pascal T. Chateau

Eléments de Robotique. Université Blaise Pascal T. Chateau Eléments de Robotique Université Blaise Pascal T Chateau 212/213 Cm zm Cm-1 Ck+L zk+l zk+1 Cn-2 Cn-1 zn Ck Ck+1 Cn zk C2 z,z1 C1 C Table des matières Liste des figures Liste des tableaux iii vi Introduction

Plus en détail

IV.1 Dual d un espace vectoriel... 77

IV.1 Dual d un espace vectoriel... 77 76 IV FORMES LINÉAIRES, DUALITÉ IV Formes linéaires, dualité Sommaire IV.1 Dual d un espace vectoriel.......... 77 IV.1.a Rappels sur les e.v................... 77 IV.1.b Rappels sur les applications linéaires........

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

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

Chapitre IV : Les textures

Chapitre IV : Les textures Chapitre IV : Les textures Programmation 3D Fabrice Aubert fabrice.aubert@lifl.fr Licence/Master USTL - IEEA 2008-2009 F. Aubert (LS6/MS2) P3D/ IV Les textures 2008-2009 1 / 50 1 Introduction F. Aubert

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

L essentiel du cours 2014/2015 Terminale S Spécialité Maths, Lycée Français de Valence

L essentiel du cours 2014/2015 Terminale S Spécialité Maths, Lycée Français de Valence L essentiel du cours 2014/2015 Terminale S Spécialité Maths, Lycée Français de Valence Sommaire 1. Arithmétique 2 1.1. Division euclidienne......................... 2 1.2. Congruences.............................

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

Cours FPV - Semaine 3 : Recherche d Extrema et Formes Différentielles

Cours FPV - Semaine 3 : Recherche d Extrema et Formes Différentielles Cours FPV - Semaine 3 : Recherche d Extrema et Formes Différentielles Frédéric Messine Introduction Dans ce chapitre, nous allons étudier une application de la dérivation des fonctions de plusieurs variables

Plus en détail

A. Benali 0248484081 benali@ensi-bourges.fr. Objectifs du cours

A. Benali 0248484081 benali@ensi-bourges.fr. Objectifs du cours A. Benali 0248484081 benali@ensi-bourges.fr 64 Objectifs du cours Comment procéder pour donner des ordres au robot Apprendre à représenter la position et l orientation d une chaîne mécanique Être capable

Plus en détail

Projet CLANU en 3GE: Compléments d algèbre linéaire numérique

Projet CLANU en 3GE: Compléments d algèbre linéaire numérique Projet CLANU en 3GE: Compléments d algèbre linéaire numérique Année 2008/2009 1 Décomposition QR On rappelle que la multiplication avec une matrice unitaire Q C n n (c est-à-dire Q 1 = Q = Q T ) ne change

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

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

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

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