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 fabrice.aubert@lifl.fr 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Chapitre 1 Cinématique du point matériel

Chapitre 1 Cinématique du point matériel Chapitre 1 Cinématique du point matériel 7 1.1. Introduction 1.1.1. Domaine d étude Le programme de mécanique de math sup se limite à l étude de la mécanique classique. Sont exclus : la relativité et la

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

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

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

Notion de fonction. Résolution graphique. Fonction affine.

Notion de fonction. Résolution graphique. Fonction affine. TABLE DES MATIÈRES 1 Notion de fonction. Résolution graphique. Fonction affine. Paul Milan LMA Seconde le 12 décembre 2011 Table des matières 1 Fonction numérique 2 1.1 Introduction.................................

Plus en détail

Exercices - Nombres complexes : corrigé. Formes algébriques et trigonométriques, module et argument

Exercices - Nombres complexes : corrigé. Formes algébriques et trigonométriques, module et argument Formes algébriques et trigonométriques, module et argument Exercice - - L/Math Sup - On multiplie le dénominateur par sa quantité conjuguée, et on obtient : Z = 4 i 3 + i 3 i 3 = 4 i 3 + 3 = + i 3. Pour

Plus en détail

NOMBRES COMPLEXES. Exercice 1 :

NOMBRES COMPLEXES. Exercice 1 : Exercice 1 : NOMBRES COMPLEXES On donne θ 0 un réel tel que : cos(θ 0 ) 5 et sin(θ 0 ) 1 5. Calculer le module et l'argument de chacun des nombres complexes suivants (en fonction de θ 0 ) : a i( )( )(1

Plus en détail

Michel Henry Nicolas Delorme

Michel Henry Nicolas Delorme Michel Henry Nicolas Delorme Mécanique du point Cours + Exos Michel Henry Maître de conférences à l IUFM des Pays de Loire (Le Mans) Agrégé de physique Nicolas Delorme Maître de conférences à l université

Plus en détail

Rappels et compléments, première partie : Nombres complexes et applications à la géométrie

Rappels et compléments, première partie : Nombres complexes et applications à la géométrie Rappels et compléments, première partie : Nombres complexes et applications à la géométrie 1 Définition des nombres complexes On définit sur les couples de réels une loi d addition comme suit : (x; y)

Plus en détail

Intégrales doubles et triples - M

Intégrales doubles et triples - M Intégrales s et - fournie@mip.ups-tlse.fr 1/27 - Intégrales (rappel) Rappels Approximation éfinition : Intégrale définie Soit f définie continue sur I = [a, b] telle que f (x) > 3 2.5 2 1.5 1.5.5 1 1.5

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

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

1 Définition. 2 Systèmes matériels et solides. 3 Les actions mécaniques. Le système matériel : Il peut être un ensemble.un sous-ensemble..

1 Définition. 2 Systèmes matériels et solides. 3 Les actions mécaniques. Le système matériel : Il peut être un ensemble.un sous-ensemble.. 1 Définition GÉNÉRALITÉS Statique 1 2 Systèmes matériels et solides Le système matériel : Il peut être un ensemble.un sous-ensemble..une pièce mais aussi un liquide ou un gaz Le solide : Il est supposé

Plus en détail

Correction de l examen de la première session

Correction de l examen de la première session de l examen de la première session Julian Tugaut, Franck Licini, Didier Vincent Si vous trouvez des erreurs de Français ou de mathématiques ou bien si vous avez des questions et/ou des suggestions, envoyez-moi

Plus en détail

André Crosnier LIRMM 04 67 41 86 37 crosnier@lirmm.fr. ERII4, Robotique industrielle 1

André Crosnier LIRMM 04 67 41 86 37 crosnier@lirmm.fr. ERII4, Robotique industrielle 1 André Crosnier LIRMM 04 67 41 86 37 crosnier@lirmm.fr ERII4, Robotique industrielle 1 Obectifs du cours 1. Définitions et terminologie 2. Outils mathématiques pour la modélisation 3. Modélisation des robots

Plus en détail

Cours 02 : Problème général de la programmation linéaire

Cours 02 : Problème général de la programmation linéaire Cours 02 : Problème général de la programmation linéaire Cours 02 : Problème général de la Programmation Linéaire. 5 . Introduction Un programme linéaire s'écrit sous la forme suivante. MinZ(ou maxw) =

Plus en détail

C.F.A.O. : Conception et Fabrication Assistées par Ordinateur.

C.F.A.O. : Conception et Fabrication Assistées par Ordinateur. C.F.A.O. : Conception et Fabrication Assistées par Ordinateur. La CFAO réunit dans une même démarche informatique les actions de conception et de fabrication d un objet. La technique utilisée permet à

Plus en détail

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes. 1 Définitions, notations Calcul matriciel Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes. On utilise aussi la notation m n pour le

Plus en détail

LE PROCESSUS ( la machine) la fonction f. ( On lit : «fonction f qui à x associe f (x)» )

LE PROCESSUS ( la machine) la fonction f. ( On lit : «fonction f qui à x associe f (x)» ) SYNTHESE ( THEME ) FONCTIONS () : NOTIONS de FONCTIONS FONCTION LINEAIRE () : REPRESENTATIONS GRAPHIQUES * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Plus en détail

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé Baccalauréat S ntilles-guyane 11 septembre 14 Corrigé EXERCICE 1 6 points Commun à tous les candidats Une entreprise de jouets en peluche souhaite commercialiser un nouveau produit et à cette fin, effectue

Plus en détail

ISFA 2 année 2002-2003. Les questions sont en grande partie indépendantes. Merci d utiliser l espace imparti pour vos réponses.

ISFA 2 année 2002-2003. Les questions sont en grande partie indépendantes. Merci d utiliser l espace imparti pour vos réponses. On considère la matrice de données : ISFA 2 année 22-23 Les questions sont en grande partie indépendantes Merci d utiliser l espace imparti pour vos réponses > ele JCVGE FM1 GM JCRB FM2 JMLP Paris 61 29

Plus en détail

CHAPITRE 10. Jacobien, changement de coordonnées.

CHAPITRE 10. Jacobien, changement de coordonnées. CHAPITRE 10 Jacobien, changement de coordonnées ans ce chapitre, nous allons premièrement rappeler la définition du déterminant d une matrice Nous nous limiterons au cas des matrices d ordre 2 2et3 3,

Plus en détail

Géométrie dans l espace Produit scalaire et équations

Géométrie dans l espace Produit scalaire et équations Chapitre 11. 2ème partie Géométrie dans l espace Produit scalaire et équations Terminale S Ce que dit le programme : CONTENUS CAPACITÉS ATTENDUES COMMENTAIRES 2ème partie Produit scalaire Produit scalaire

Plus en détail

Chapitre 2 Le problème de l unicité des solutions

Chapitre 2 Le problème de l unicité des solutions Université Joseph Fourier UE MAT 127 Mathématiques année 2011-2012 Chapitre 2 Le problème de l unicité des solutions Ce que nous verrons dans ce chapitre : un exemple d équation différentielle y = f(y)

Plus en détail

a et b étant deux nombres relatifs donnés, une fonction affine est une fonction qui a un nombre x associe le nombre ax + b

a et b étant deux nombres relatifs donnés, une fonction affine est une fonction qui a un nombre x associe le nombre ax + b I Définition d une fonction affine Faire l activité 1 «une nouvelle fonction» 1. définition générale a et b étant deux nombres relatifs donnés, une fonction affine est une fonction qui a un nombre x associe

Plus en détail

PHYSIQUE 2 - Épreuve écrite

PHYSIQUE 2 - Épreuve écrite PHYSIQUE - Épreuve écrite WARIN André I. Remarques générales Le sujet de physique de la session 010 comprenait une partie A sur l optique et une partie B sur l électromagnétisme. - La partie A, à caractère

Plus en détail

aux différences est appelé équation aux différences d ordre n en forme normale.

aux différences est appelé équation aux différences d ordre n en forme normale. MODÉLISATION ET SIMULATION EQUATIONS AUX DIFFÉRENCES (I/II) 1. Rappels théoriques : résolution d équations aux différences 1.1. Équations aux différences. Définition. Soit x k = x(k) X l état scalaire

Plus en détail

Fonctions de plusieurs variables

Fonctions de plusieurs variables Maths MP Exercices Fonctions de plusieurs variables Les indications ne sont ici que pour être consultées après le T (pour les exercices non traités). Avant et pendant le T, tenez bon et n allez pas les

Plus en détail

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES Théorème - Définition Soit un cercle (O,R) et un point. Une droite passant par coupe le cercle en deux points A et

Plus en détail

LA PHYSIQUE DES MATERIAUX. Chapitre 1 LES RESEAUX DIRECT ET RECIPROQUE

LA PHYSIQUE DES MATERIAUX. Chapitre 1 LES RESEAUX DIRECT ET RECIPROQUE LA PHYSIQUE DES MATERIAUX Chapitre 1 LES RESEAUX DIRECT ET RECIPROQUE Pr. A. Belayachi Université Mohammed V Agdal Faculté des Sciences Rabat Département de Physique - L.P.M belayach@fsr.ac.ma 1 1.Le réseau

Plus en détail

STATIQUE GRAPHIQUE ET STATIQUE ANALYTIQUE

STATIQUE GRAPHIQUE ET STATIQUE ANALYTIQUE ÉCOLE D'INGÉNIEURS DE FRIBOURG (E.I.F.) SECTION DE MÉCANIQUE G.R. Nicolet, revu en 2006 STATIQUE GRAPHIQUE ET STATIQUE ANALYTIQUE Eléments de calcul vectoriel Opérations avec les forces Equilibre du point

Plus en détail

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR Mickaël Bergem 25 juin 2014 Maillages et applications 1 Table des matières Introduction 3 1 La modélisation numérique de milieux urbains

Plus en détail

TP Blender n 2 : Importation d un modèle SketchUp et animation

TP Blender n 2 : Importation d un modèle SketchUp et animation TP Blender n 2 : Importation d un modèle SketchUp et animation Service de Conception Géométrique Université de Liège Aérospatiale et Mécanique Conçu avec Blender 2.66 et SketchUp 8 De SketchUp à Blender

Plus en détail

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Exercices - Polynômes : corrigé. Opérations sur les polynômes Opérations sur les polynômes Exercice 1 - Carré - L1/Math Sup - Si P = Q est le carré d un polynôme, alors Q est nécessairement de degré, et son coefficient dominant est égal à 1. On peut donc écrire Q(X)

Plus en détail

Chapitre 3. Mesures stationnaires. et théorèmes de convergence

Chapitre 3. Mesures stationnaires. et théorèmes de convergence Chapitre 3 Mesures stationnaires et théorèmes de convergence Christiane Cocozza-Thivent, Université de Marne-la-Vallée p.1 I. Mesures stationnaires Christiane Cocozza-Thivent, Université de Marne-la-Vallée

Plus en détail

Programmation linéaire

Programmation linéaire 1 Programmation linéaire 1. Le problème, un exemple. 2. Le cas b = 0 3. Théorème de dualité 4. L algorithme du simplexe 5. Problèmes équivalents 6. Complexité de l Algorithme 2 Position du problème Soit

Plus en détail

8.1 Généralités sur les fonctions de plusieurs variables réelles. f : R 2 R (x, y) 1 x 2 y 2

8.1 Généralités sur les fonctions de plusieurs variables réelles. f : R 2 R (x, y) 1 x 2 y 2 Chapitre 8 Fonctions de plusieurs variables 8.1 Généralités sur les fonctions de plusieurs variables réelles Définition. Une fonction réelle de n variables réelles est une application d une partie de R

Plus en détail

CHAPITRE V SYSTEMES DIFFERENTIELS LINEAIRES A COEFFICIENTS CONSTANTS DU PREMIER ORDRE. EQUATIONS DIFFERENTIELLES.

CHAPITRE V SYSTEMES DIFFERENTIELS LINEAIRES A COEFFICIENTS CONSTANTS DU PREMIER ORDRE. EQUATIONS DIFFERENTIELLES. CHAPITRE V SYSTEMES DIFFERENTIELS LINEAIRES A COEFFICIENTS CONSTANTS DU PREMIER ORDRE EQUATIONS DIFFERENTIELLES Le but de ce chapitre est la résolution des deux types de systèmes différentiels linéaires

Plus en détail

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013 Rendu Temps Réel - OpenGL 4 et compute shaders December 18, 2013 résumé des épisodes précédents... création des objets opengl, organisation des données, configuration du pipeline, draw,... opengl 4.3 :

Plus en détail

Mesure d angles et trigonométrie

Mesure d angles et trigonométrie Thierry Ciblac Mesure d angles et trigonométrie Mesure de l angle de deux axes (ou de deux demi-droites) de même origine. - Mesures en degrés : Divisons un cercle en 360 parties égales définissant ainsi

Plus en détail

Pour l épreuve d algèbre, les calculatrices sont interdites.

Pour l épreuve d algèbre, les calculatrices sont interdites. Les pages qui suivent comportent, à titre d exemples, les questions d algèbre depuis juillet 003 jusqu à juillet 015, avec leurs solutions. Pour l épreuve d algèbre, les calculatrices sont interdites.

Plus en détail

Fonctions de deux variables. Mai 2011

Fonctions de deux variables. Mai 2011 Fonctions de deux variables Dédou Mai 2011 D une à deux variables Les fonctions modèlisent de l information dépendant d un paramètre. On a aussi besoin de modéliser de l information dépendant de plusieurs

Plus en détail

Chapitre 2. Matrices

Chapitre 2. Matrices Département de mathématiques et informatique L1S1, module A ou B Chapitre 2 Matrices Emmanuel Royer emmanuelroyer@mathuniv-bpclermontfr Ce texte mis gratuitement à votre disposition a été rédigé grâce

Plus en détail

CHAPITRE IV Oscillations libres des systèmes à plusieurs degrés de liberté

CHAPITRE IV Oscillations libres des systèmes à plusieurs degrés de liberté CHAPITE IV Oscillations ibres des Systèmes à plusieurs derés de liberté 010-011 CHAPITE IV Oscillations libres des systèmes à plusieurs derés de liberté Introduction : Dans ce chapitre, nous examinons

Plus en détail

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable Eo7 Fonctions de plusieurs variables Eercices de Jean-Louis Rouget Retrouver aussi cette fiche sur wwwmaths-francefr * très facile ** facile *** difficulté moenne **** difficile ***** très difficile I

Plus en détail

Les indices à surplus constant

Les indices à surplus constant Les indices à surplus constant Une tentative de généralisation des indices à utilité constante On cherche ici en s inspirant des indices à utilité constante à définir un indice de prix de référence adapté

Plus en détail

Simulation de variables aléatoires

Simulation de variables aléatoires Chapter 1 Simulation de variables aléatoires Références: [F] Fishman, A first course in Monte Carlo, chap 3. [B] Bouleau, Probabilités de l ingénieur, chap 4. [R] Rubinstein, Simulation and Monte Carlo

Plus en détail

Calcul différentiel sur R n Première partie

Calcul différentiel sur R n Première partie Calcul différentiel sur R n Première partie Université De Metz 2006-2007 1 Définitions générales On note L(R n, R m ) l espace vectoriel des applications linéaires de R n dans R m. Définition 1.1 (différentiabilité

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Recherche opérationnelle Les démonstrations et les exemples seront traités en cours Souad EL Bernoussi Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Table des matières 1 Programmation

Plus en détail

Exprimer ce coefficient de proportionnalité sous forme de pourcentage : 3,5 %

Exprimer ce coefficient de proportionnalité sous forme de pourcentage : 3,5 % 23 CALCUL DE L INTÉRÊT Tau d intérêt Paul et Rémi ont reçu pour Noël, respectivement, 20 et 80. Ils placent cet argent dans une banque, au même tau. Au bout d une année, ce placement leur rapportera une

Plus en détail

Corrigé Exercice 1 : BRIDE HYDRAULIQUE AVEC HYPOTHÈSE PROBLÈME PLAN.

Corrigé Exercice 1 : BRIDE HYDRAULIQUE AVEC HYPOTHÈSE PROBLÈME PLAN. TD 6 corrigé - PFS Résolution analytique (Loi entrée-sortie statique) Page 1/1 Corrigé Exercice 1 : BRIDE HYDRAULIQUE AVEC HYPOTHÈSE PROBLÈME PLAN. Question : Réaliser le graphe de structure, puis compléter

Plus en détail

3 Approximation de solutions d équations

3 Approximation de solutions d équations 3 Approximation de solutions d équations Une équation scalaire a la forme générale f(x) =0où f est une fonction de IR dans IR. Un système de n équations à n inconnues peut aussi se mettre sous une telle

Plus en détail

10 leçon 2. Leçon n 2 : Contact entre deux solides. Frottement de glissement. Exemples. (PC ou 1 er CU)

10 leçon 2. Leçon n 2 : Contact entre deux solides. Frottement de glissement. Exemples. (PC ou 1 er CU) 0 leçon 2 Leçon n 2 : Contact entre deu solides Frottement de glissement Eemples (PC ou er CU) Introduction Contact entre deu solides Liaisons de contact 2 Contact ponctuel 2 Frottement de glissement 2

Plus en détail

Polynômes à plusieurs variables. Résultant

Polynômes à plusieurs variables. Résultant Polynômes à plusieurs variables. Résultant Christophe Ritzenthaler 1 Relations coefficients-racines. Polynômes symétriques Issu de [MS] et de [Goz]. Soit A un anneau intègre. Définition 1.1. Soit a A \

Plus en détail

05/09/2015. M Ponctualité : CM TD TP & Projet Æ En cas d absence : récupérer!!! 3 05/09/2015

05/09/2015. M Ponctualité : CM TD TP & Projet Æ En cas d absence : récupérer!!! 3 05/09/2015 Synthèse d images L3 Présentation du module Sandrine LANQUETIN Bureau G08 sandrine.lanquetin@u-bourgogne.fr Qui? Quand? Mode d emploi M Intervenants : Æ S. Lanquetin sandrine.lanquetin@u-bourgogne.fr M

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

Synthèse d'images I. Venceslas BIRI IGM Université de Marne La

Synthèse d'images I. Venceslas BIRI IGM Université de Marne La Synthèse d'images I Venceslas BIRI IGM Université de Marne La La synthèse d'images II. Rendu & Affichage 1. Introduction Venceslas BIRI IGM Université de Marne La Introduction Objectif Réaliser une image

Plus en détail

Python - introduction à la programmation et calcul scientifique

Python - introduction à la programmation et calcul scientifique Université de Strasbourg Environnements Informatique Python - introduction à la programmation et calcul scientifique Feuille de TP 1 Avant de commencer Le but de ce TP est de vous montrer les bases de

Plus en détail

Vecteurs. I Translation. 1. Définition :

Vecteurs. I Translation. 1. Définition : Vecteurs I Translation Soit A et B deux points du plan. On appelle translation qui transforme A en B la transformation du plan qui a tout point M associe le point M tel que [AM ] et [BM] aient le même

Plus en détail

Cinétique et dynamique des systèmes de solides

Cinétique et dynamique des systèmes de solides Cinétique et dynamique des systèmes de solides Page 2/30 CINÉTIQUE des systèmes matériels... 3 1.) Notion de masse...3 2.) Centre de masse d'un ensemble matériel...4 3.) Torseurs cinétique et dynamique...6

Plus en détail

Baccalauréat S Nombres complexes Index des exercices sur les complexes de septembre 1999 à juin 2012 Tapuscrit : DENIS VERGÈS

Baccalauréat S Nombres complexes Index des exercices sur les complexes de septembre 1999 à juin 2012 Tapuscrit : DENIS VERGÈS Baccalauréat S Nombres complexes Index des exercices sur les complexes de septembre 1999 à juin 2012 Tapuscrit : DENIS VERGÈS N o Lieu et date Q.C.M. Algébrique Géométrie 1 Asie juin 2012 2 Métropole juin

Plus en détail

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007 Vision industrielle et télédétection - Détection d ellipses Guillaume Martinez 17 décembre 2007 1 Table des matières 1 Le projet 3 1.1 Objectif................................ 3 1.2 Les choix techniques.........................

Plus en détail

Les algorithmes de base du graphisme

Les algorithmes de base du graphisme Les algorithmes de base du graphisme Table des matières 1 Traçage 2 1.1 Segments de droites......................... 2 1.1.1 Algorithmes simples.................... 3 1.1.2 Algorithmes de Bresenham (1965).............

Plus en détail

Problèmes sur le chapitre 5

Problèmes sur le chapitre 5 Problèmes sur le chapitre 5 (Version du 13 janvier 2015 (10h38)) 501 Le calcul des réactions d appui dans les problèmes schématisés ci-dessous est-il possible par les équations de la statique Si oui, écrire

Plus en détail

Programmation linéaire et Optimisation. Didier Smets

Programmation linéaire et Optimisation. Didier Smets Programmation linéaire et Optimisation Didier Smets Chapitre 1 Un problème d optimisation linéaire en dimension 2 On considère le cas d un fabricant d automobiles qui propose deux modèles à la vente, des

Plus en détail

Correction du Baccalauréat S Amérique du Nord mai 2007

Correction du Baccalauréat S Amérique du Nord mai 2007 Correction du Baccalauréat S Amérique du Nord mai 7 EXERCICE points. Le plan (P) a une pour équation cartésienne : x+y z+ =. Les coordonnées de H vérifient cette équation donc H appartient à (P) et A n

Plus en détail

Erratum de MÉCANIQUE, 6ème édition. Introduction Page xxi (milieu de page) G = 6, 672 59 10 11 m 3 kg 1 s 2

Erratum de MÉCANIQUE, 6ème édition. Introduction Page xxi (milieu de page) G = 6, 672 59 10 11 m 3 kg 1 s 2 Introduction Page xxi (milieu de page) G = 6, 672 59 1 11 m 3 kg 1 s 2 Erratum de MÉCANIQUE, 6ème édition Page xxv (dernier tiers de page) le terme de Coriolis est supérieur à 1% du poids) Chapitre 1 Page

Plus en détail

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications A. Optimisation sans contrainte.... Généralités.... Condition nécessaire et condition suffisante

Plus en détail

Résolution de systèmes linéaires par des méthodes directes

Résolution de systèmes linéaires par des méthodes directes Résolution de systèmes linéaires par des méthodes directes J. Erhel Janvier 2014 1 Inverse d une matrice carrée et systèmes linéaires Ce paragraphe a pour objet les matrices carrées et les systèmes linéaires.

Plus en détail

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes. Promotion X 004 COURS D ANALYSE DES STRUCTURES MÉCANIQUES PAR LA MÉTHODE DES ELEMENTS FINIS (MEC 568) contrôle non classant (7 mars 007, heures) Documents autorisés : polycopié ; documents et notes de

Plus en détail

L ANALYSE EN COMPOSANTES PRINCIPALES (A.C.P.) Pierre-Louis GONZALEZ

L ANALYSE EN COMPOSANTES PRINCIPALES (A.C.P.) Pierre-Louis GONZALEZ L ANALYSE EN COMPOSANTES PRINCIPALES (A.C.P.) Pierre-Louis GONZALEZ INTRODUCTION Données : n individus observés sur p variables quantitatives. L A.C.P. permet d eplorer les liaisons entre variables et

Plus en détail

Vue 2D / 3D / Dessin / Cotation Utilise : Logiciel edrawings Fichier.EPRT Dossier Tp-eDrawings

Vue 2D / 3D / Dessin / Cotation Utilise : Logiciel edrawings Fichier.EPRT Dossier Tp-eDrawings Vue 2D / 3D / Dessin / Cotation Utilise : Logiciel edrawings.eprt Dossier Tp-eDrawings TP EDRAWINGS INITIATION A LA CONCEPTION ASSISTÉE PAR ORDINATEUR (CAO) Les icônes Zoom au mieux pour obtenir un affichage

Plus en détail

Analyse en Composantes Principales

Analyse en Composantes Principales Analyse en Composantes Principales Anne B Dufour Octobre 2013 Anne B Dufour () Analyse en Composantes Principales Octobre 2013 1 / 36 Introduction Introduction Soit X un tableau contenant p variables mesurées

Plus en détail

CABLECAM de HYMATOM. Figure 1 : Schéma du système câblecam et détail du moufle vu de dessus.

CABLECAM de HYMATOM. Figure 1 : Schéma du système câblecam et détail du moufle vu de dessus. CABLECAM de HYMATOM La société Hymatom conçoit et fabrique des systèmes de vidéosurveillance. Le système câblecam (figure 1) est composé d un chariot mobile sur quatre roues posé sur deux câbles porteurs

Plus en détail

Séquence 10. Géométrie dans l espace. Sommaire

Séquence 10. Géométrie dans l espace. Sommaire Séquence 10 Géométrie dans l espace Sommaire 1. Prérequis 2. Calculs vectoriels dans l espace 3. Orthogonalité 4. Produit scalaire dans l espace 5. Droites et plans de l espace 6. Synthèse Dans cette séquence,

Plus en détail

4. NOMBRES COMPLEXES ET TRIGONOMÉTRIE

4. NOMBRES COMPLEXES ET TRIGONOMÉTRIE 4. NOMBRES COMPLEXES ET TRIGONOMÉTRIE 1 Introduction. 1. 1 Justication historique. La résolution de l'équation du degré (par la méthode de Cardan) amena les mathématiciens italiens du seizième 3ème siècle

Plus en détail

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que Introduction. On suppose connus les ensembles N (des entiers naturels), Z des entiers relatifs et Q (des nombres rationnels). On s est rendu compte, depuis l antiquité, que l on ne peut pas tout mesurer

Plus en détail

Exercices Corrigés Premières notions sur les espaces vectoriels

Exercices Corrigés Premières notions sur les espaces vectoriels Exercices Corrigés Premières notions sur les espaces vectoriels Exercice 1 On considére le sous-espace vectoriel F de R formé des solutions du système suivant : x1 x 2 x 3 + 2x = 0 E 1 x 1 + 2x 2 + x 3

Plus en détail

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */. Page 1 de 9 MATLAB : COMMANDES DE BASE Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */. Aide help, help nom_de_commande Fenêtre de travail (Command Window) Ligne

Plus en détail

Repérage d un point - Vitesse et

Repérage d un point - Vitesse et PSI - écanique I - Repérage d un point - Vitesse et accélération page 1/6 Repérage d un point - Vitesse et accélération Table des matières 1 Espace et temps - Référentiel d observation 1 2 Coordonnées

Plus en détail