FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
transformations - Mathématiques pour les transformations du plan Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
transformations - Mathématiques pour les transformations du plan Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
transformations - Mathématiques pour les transformations du plan Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
transformations - Mathématiques pour les transformations du plan Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
transformations - Mathématiques pour les transformations du plan Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
transformations - Mathématiques pour les transformations du plan Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
transformations - Mathématiques pour les transformations du plan Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
transformations - Mathématiques pour les transformations du plan Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
transformations - Mathématiques pour les transformations du plan Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
transformations - Mathématiques pour les transformations du plan Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
transformations - Mathématiques pour les transformations du plan Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
transformations - Mathématiques pour les transformations du plan Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
transformations - Mathématiques pour les transformations du plan Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
transformations - Mathématiques pour les transformations du plan Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
transformations - Mathématiques pour les transformations du plan Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le deal à ne pas rater :
Code promo Nike : -25% dès 50€ d’achats sur tout le site Nike
Voir le deal

 

 Mathématiques pour les transformations du plan

Aller en bas 
4 participants
AuteurMessage
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

transformations - Mathématiques pour les transformations du plan Empty
MessageSujet: Mathématiques pour les transformations du plan   transformations - Mathématiques pour les transformations du plan EmptyDim 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 ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

transformations - Mathématiques pour les transformations du plan Empty
MessageSujet: Re: Mathématiques pour les transformations du plan   transformations - Mathématiques pour les transformations du plan EmptyDim 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 !)
Revenir en haut Aller en bas
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

transformations - Mathématiques pour les transformations du plan Empty
MessageSujet: Re: Mathématiques pour les transformations du plan   transformations - Mathématiques pour les transformations du plan EmptyDim 18 Fév 2018 - 13:10

Trop bien fait !
Clair, net, soigné, bref c'est du "made by Papydall" !

Merci !
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

transformations - Mathématiques pour les transformations du plan Empty
MessageSujet: Re: Mathématiques pour les transformations du plan   transformations - Mathématiques pour les transformations du plan EmptyDim 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+
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

transformations - Mathématiques pour les transformations du plan Empty
MessageSujet: Re: Mathématiques pour les transformations du plan   transformations - Mathématiques pour les transformations du plan EmptyDim 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
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé





transformations - Mathématiques pour les transformations du plan Empty
MessageSujet: Re: Mathématiques pour les transformations du plan   transformations - Mathématiques pour les transformations du plan Empty

Revenir en haut Aller en bas
 
Mathématiques pour les transformations du plan
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Des belles mathématiques pour des beaux yeux
» logiciel pour faire un plan de grille en fer forgé
» Une commande pour mettre au premier plan un sprite
» Les transformations affines
» Transformations bijectives d'images: Photomaton et Boulanger

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: