Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Mathématiques pour les transformations du plan | |
| | Auteur | Message |
---|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Mathématiques pour les transformations du plan Dim 18 Fév 2018 - 3:17 | |
| Un tuto dans les REM du code - Code:
-
rem ============================================================================ rem Les mathématiques pour rem les transformations du plan rem ============================================================================ rem Les principales transformations du plan sont : rem * les translations, rem * les changements d’échelles, rem * les symétries, rem * les rotations, rem * les cisaillements. rem ============================================================================ rem Le calcul matriciel résout tous ces problèmes. rem Soient (x,y) les coordonnées d’un point du plan cartésien. rem On peut considérer ces coordonnées comme une matrice de 1 ligne sur 2 colonnes rem que nous noterons matrice (1 X 2) (lire matrice 1 croix 2). rem ============================================================================ rem La matrice générale : rem rem A B rem C D rem rem est une matrice de 2 lignes sur 2 colonnes et sera notée matrice (2 X 2) rem (lire matrice 2 croix 2) rem ============================================================================ rem Le produit matriciel de la matrice (1 X 2) et de la matrice (2 X 2) donne comme rem résultat (A*x+C*y B*x+D*y) rem rem Donc, tout point du plan (x,y) multiplié par la matrice (2 X 2) a pour transformé rem un nouveau point du plan (xp,yp) tel que : rem ____________________ rem | | rem | xp = A*x + C*y | rem | yp = B*x + D*y | rem |____________________| rem rem La transformation obtenue dépendra des valeurs données aux variables A,B,C,D. rem ============================================================================ rem Pour information: rem ***************** rem Voici les différentes matrices de transformations: rem ---------------------------------------------------------------------------- rem Les changements d’échelles sont contrôlés par la matrice : rem rem A 0 rem 0 D rem rem En effet le produit matriciel donne A*x D*y d’où xp = A*x ; yp = D*y rem ---------------------------------------------------------------------------- rem Les symétries : les matrices qui contrôlent les symétries ne sont que des cas rem particuliers de la matrice changement d’échelles dans laquelle A et/ou D sont rem négatifs. rem rem La matrice: rem rem -1 0 rem 0 1 rem rem produira une symétrie par rapport à l’axe des Y rem En effet le produit matriciel donne xp = -x ; yp = y rem rem La matrice: rem rem 1 0 rem 0 -1 rem rem produira une symétrie par rapport à l’axe des X rem En effet, le produit matriciel donne xp = x ; yp = -y rem rem La matrice: rem rem -1 0 rem 0 -1 rem rem produira une symétrie par rapport aux deux axes c.à.d une symétrie rem centrale par rapport à l’origine. rem En effet, le produit matriciel donne xp = -x ; yp = -y rem ---------------------------------------------------------------------------- rem Les cisaillements : les matrices qui contrôlent les cisaillements sont rem rem 1 0 rem C 1 rem rem donnera un cisaillement en x rem rem 1 B rem 0 1 rem rem donnera un cisaillement en y rem rem 1 B rem C 1 rem rem donnera un cisaillement dans les deux directions rem ---------------------------------------------------------------------------- rem Les rotations : Les matrices qui contrôlent les rotations sont : rem rem cos(theta) sin(theta) rem -sin(theta) cos(theta) rem rem Les coefficients A,B,C,D de la matrice générale sont dans ce cas : rem A = cos(theta) ; B = sin(theta) ; C = -sin(theta) ; D = cos(theta) rem Avec theta l’angle de rotation du point autour de l’origine des axes. rem Cet angle est exprimé en RADIANS. rem ============================================================================ rem &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& rem ============================================================================ rem rem Application : rotation d’un polygone
dim n : n = 4 : ' Nombre des sommets du polygone, ici c'est un carré dim x(n+1),y(n+1) dim A,B,C,D : ' termes de la matrice rotation dim xc,yc : ' coordonnées du centre de l'écran dim theta : ' angle de rotation dim p : ' pas de variation de l'angle de rotation
caption 0 ,"Rotation d'un polygone autour de l'origine des axes" picture 10 : full_space 10 : 2d_target_is 10 p = pi/18 : ' essayez avec p = pi/72 ou p = pi/36 ou p = pi/9 ou p = pi/144 xc = width_client(10)/2 : ' coordonnées du centre de l'écran et ... yc = height_client(10)/2 : ' ... aussi centre de rotation
Init_polygone() : ' Mémorisation des somments du polygone Trace_axes() : ' Tracé des axes
' Faire tourner le polygone autour du centre de rotation par un pas de p radians for theta = 0 to 2*pi step p Rotation(theta) : ' Faire tourner le polygone pause 200 : ' pour suivre la rotation, valeur à modifier ou supprimer next theta end rem ============================================================================ rem &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& rem ============================================================================ ' Coordonnées relatives par rapport au centre de l'écran des sommets du polygone ' (ici un carré de 150 pixels de côté)
DATA 0,0 : ' 1er point DATA 150,0 : ' 2ème point DATA 150,150 : ' 3ème point DATA 0,150 : ' 4ème point
rem ============================================================================ ' Retourne les coefficients de la matrice(2 X 2) de rotation autour de l'origine SUB Matrice_Rotation(theta) A = cos(theta) : B = sin(theta) : C = 0-sin(theta) : D = cos(theta) END_SUB rem ============================================================================ ' Mémorisation des somments du polygone SUB Init_Polygone() dim_local i for i = 1 to n :read x(i):read y(i): next i x(n+1) = x(1) : y(n+1) = y(1) : ' Pour fermer le polygone END_SUB rem ============================================================================ ' Tracer des axes SUB Trace_Axes() 2d_line 0,yc,2*xc,yc : ' tracer l'axe des X 2d_line xc,0,xc,2*yc : ' tracer l'axe des Y END_SUB rem ============================================================================ ' Effectuer une rotation du polygone d'un angle theta en RADIANS ' puis tracer le nouveau polygone SUB Rotation(theta) Dim_local xp,yp,i Matrice_Rotation(theta) : ' Calcul des coefficients de la matrice de rotation xp = A * x(1) + C * y(1) : ' Calcul des nouvelles coordonnées du 1er point ... yp = B * x(1) + D * y(1) : ' ... après avoir subi la rotation 2d_poly_from xc+xp,yc+yp : ' Tracé du point de départ du polygone for i = 2 to n + 1 xp = A * x(i) + C * y(i) : ' Calcul des nouvelles coordonnées du point ... yp = B * x(i) + D * y(i) : ' ... suivant après avoir subi la rotation 2d_poly_to xc+xp,yc-yp : ' Relier au point suivant next i END_SUB rem ============================================================================ rem &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& rem ============================================================================
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mathématiques pour les transformations du plan Dim 18 Fév 2018 - 11:36 | |
| Intéressant tout ça !j'étudierai à l'occasion, mais n'ayant pas dépassé la 1ère année de licence, et il y a si longtemps... ça va être dur !) | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Mathématiques pour les transformations du plan Dim 18 Fév 2018 - 13:10 | |
| Trop bien fait ! Clair, net, soigné, bref c'est du "made by Papydall" !
Merci ! | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Mathématiques pour les transformations du plan Dim 18 Fév 2018 - 13:22 | |
| Bonjours à tous,
@Papydall, Je suis jaloux de tes connaissances mathématiques, et je suis loin d'avoir celles de JL35 (1ère année de licence)... Tout ça pour dire à nos jeunes que les maths sont aussi une part importante de l'éducation...
A+ | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Mathématiques pour les transformations du plan Dim 18 Fév 2018 - 16:14 | |
| Bonjour tout le monde. Merci à tous ceux qui ce sont donnés la peine de s’intéresser à ce « tuto-code » et particulièrement à ceux qui ont posté leur impression. Moi aussi je n’étais pas allé très loin dans mes études. J’ai voulu devenir mathématicien ; je fus météorologue (par accident). Mais quel accident ! Je trouve que la science météorologique est, sans doute, l’une parmi les meilleures, la plus motivante et la plus indispensable pour l’homme. Mais c’est personnel et profondément subjectif. Revenons à nos moutons et plus particulièrement au code. Le calcul matriciel est un outil très puissant pour résoudre « mille et un » problèmes. Vous n’êtes pas obligés de le maîtriser, d’ailleurs moi, non plus. Vous pouvez, sans chercher à comprendre le pourquoi du comment, utiliser les formules des transformations du plan données dans le code. Voici le « SMIG » de ce que vous pouvez connaitre : Pour tout point du plan de coordonnées cartésiennes (x,y), appliquez les formules suivantes : - Code:
-
Xp = A*x + C*y Yp = B*x + D*y
Xp,Yp : coordonnées du point (x,y) après transformation A, B, C, D sont les éléments de la matrice générale des transformations. Pour les changements d’échelles :B = 0 et C = 0 Ce qui donne - Code:
-
B = 0 C = 0 Xp = A*x Yp = D*y
Pour les symétries :A et/ou D sont négatifs ; B et C sont nuls Ce qui donne - Code:
-
Rem Symétrie par rapport à l’axe des Y Xp = -x Yp = y Rem Symétrie par rapport à l’axe des X Xp = x Yp = -y Rem Symétrie par rapport aux 2 axes c-à-d symétrie centrale par rapport à l’origine Xp = -x Yp = -y
Pour les cisaillements :A = 1 et D = 1 C ou B = 0 - Code:
-
REM Cisaillent en X A = 1 C = 0 D = 1 Xp = x Yp =B*x + y Rem Cisaillement en Y A = 1 B = 0 D = 1 Xp = x + C*y Yp = y Rem Cisaillement dans les 2 directions A = 1 D = 1 Xp = x +C*y Yp = B*x + y
Pour les rotations - Code:
-
REM theta est l’angle de rotation en radians REM vous pouvez utiliser les degrés en déclarant DEGREES dans le code A = cos(theta) B = sin(theta) C = 0-sin(theta) D = cos(theta) Xp = A*x + C*y Yp = B*x + D*y
Voilà ! Ce n’est pas si compliqué que ça. Maintenant que vous savez autant (si ce n’est plus) que moi, vous pouvez donner libre cours à votre imagination. Je suis toujours à l'écoute pour toute demande d'éclaircissement dans la mesure de mes compétences. « C'est un fait indiscutable : les Français collectionnent les récompenses internationales en mathématiques comme le prix Abel ou la médaille Fields. Ils se classent juste derrière les Américains, mais, proportionnellement au nombre d'habitants, ils sont de loin les premiers. »
Le Figaro | |
| | | Contenu sponsorisé
| Sujet: Re: Mathématiques pour les transformations du plan | |
| |
| | | | Mathématiques pour les transformations du plan | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |