1. #1
    Membre du Club
    Homme Profil pro
    Chercheur d'Emploi
    Inscrit en
    février 2017
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'Emploi

    Informations forums :
    Inscription : février 2017
    Messages : 51
    Points : 50
    Points
    50

    Par défaut Transformer un "Vector2" a partir d'une Matrix3x2

    Bonjour messieurs dames !

    Je dois transformer faire en Java la même chose que ce code en c#

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
                //Create rotation matrix (matricies are transposed from math conventions)
                var rotationMatrix = new Matrix3x2();
                rotationMatrix.M11 = cos;
                rotationMatrix.M12 = sin;
                rotationMatrix.M21 = -sin;
                rotationMatrix.M22 = cos;
     
                //Rotate all of our values
                for (int i = 0; i < positionList.Count; i++)
                {
                    rotatedPositionList.Add(Vector2.TransformNormal(positionList[i], rotationMatrix));
                }
    Pour ça j'ai crée une classe Vecteur2 que voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    import java.lang.Math;
     
    public class Vecteur2 {
     
        double x;
        double y;
     
        public Vecteur2(double fX, double fY) {
            x = fX;
            y = fY;
        }
     
        public double LengthSquared() {
            return Math.pow(x, 2) + Math.pow(y, 2);
        }
    }
    Et une classe Matrix3x2 que voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class Matrix3x2 {
        double m11;
        double m12;
        double m21;
        double m22;
        double m31;
        double m32;
     
        public Matrix3x2(){
        }
    }
    Jusque là il me semble que je suis bon (quoique. pas sur. arrêtez moi si je me trompe.)

    Maintenant je dois ajouter a ma classe Vecteur2 la methode "TransformNormal" de la class Vector2 de c# que voici: https://msdn.microsoft.com/fr-fr/lib...v=vs.111).aspx

    En gros je dois transformer un Vecteur2 en Matrix3x2. De là ou j'en suis je ne vois absolument pas comment faire. Quelqu'un sait m'eclairer ?

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java/Eclipse RCP
    Inscrit en
    septembre 2009
    Messages
    10 399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java/Eclipse RCP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2009
    Messages : 10 399
    Points : 24 920
    Points
    24 920
    Billets dans le blog
    2

    Par défaut

    Salut,

    Regarde cette classe : AffineTransform.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre du Club
    Homme Profil pro
    Chercheur d'Emploi
    Inscrit en
    février 2017
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'Emploi

    Informations forums :
    Inscription : février 2017
    Messages : 51
    Points : 50
    Points
    50

    Par défaut

    Je suis sur le SDK Android. Malheuresement cette methode n'y est pas implantée

  4. #4
    Membre éprouvé
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    octobre 2012
    Messages
    609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : octobre 2012
    Messages : 609
    Points : 1 219
    Points
    1 219

    Par défaut

    Mais la reponse est dans la doc. La methode doit faire les calcul montré dans la matrice de droite. La question est la valeur de la troisième colonne de ta matrice, qui n'est pas initialisée dans le code c# que tu donne. Pense également que le vecteur doit être normalisé avant d'effectuer le calcul.
    «Dieu ne joue pas aux dés.» - Albert Einstein. Et pan! 30 ans de retard dans la théorie quantique!
    «Tout n'est pas politique, mais la politique s'intéresse à tout.» - Nicolas Machiavel. Et surtout à ceux qui ne s'y intéressent pas.

  5. #5
    Membre du Club
    Homme Profil pro
    Chercheur d'Emploi
    Inscrit en
    février 2017
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'Emploi

    Informations forums :
    Inscription : février 2017
    Messages : 51
    Points : 50
    Points
    50

    Par défaut

    Oui j'avais vu ça pour les 2 valeurs non intinialisées. Ducoup je fais comment dans ce cas là ? je fais comme si elles vallaient 0 ?

  6. #6
    Membre du Club
    Homme Profil pro
    Chercheur d'Emploi
    Inscrit en
    février 2017
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'Emploi

    Informations forums :
    Inscription : février 2017
    Messages : 51
    Points : 50
    Points
    50

    Par défaut

    Bon j'ai fait ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        public Vecteur2 TransformNormal(Vecteur2 normal, Matrix3x2 matrix) {
            normal.x = matrix.m11*x + matrix.m21*y + matrix.m31;
            normal.y = matrix.m12*x + matrix.m22*y + matrix.m32;
            return normal;
        }
    Ca vous semble correct ? Je ne suis vraiment pas sur de mon coup mais c'est ce que j'ai trouvé a partir de ce que j'ai compris de toute cette histoire.

    J'ai pas mal de code a faire avant de pouvoir voir si ça marche et s il y a un soucis je ne saurais pas si ça vient de cette methode ou d'ailleurs donc je vous demande votre avis maintenant tant qu'a faire

  7. #7
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java/Eclipse RCP
    Inscrit en
    septembre 2009
    Messages
    10 399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java/Eclipse RCP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2009
    Messages : 10 399
    Points : 24 920
    Points
    24 920
    Billets dans le blog
    2

    Par défaut

    Citation Envoyé par CoDuSu Voir le message
    Je suis sur le SDK Android. Malheuresement cette methode n'y est pas implantée
    Pour Android, l'équivalent semble être android.graphics.Matrix. Il y a aussi apparemment une classe dédiée aux animations aussi : android.view.animation.Transformation.

    Et puis tu peux aussi regarder la doc ou le source de la classe AffineTransform.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Transformer un vecteur en matrice
    Par chouki dans le forum MATLAB
    Réponses: 2
    Dernier message: 31/03/2010, 02h46
  2. transformer un vecteur ligne en vecteur colonne
    Par samiov dans le forum MATLAB
    Réponses: 4
    Dernier message: 26/03/2010, 10h42
  3. [Débutant] transformé un vecteur date
    Par Bonois dans le forum MATLAB
    Réponses: 3
    Dernier message: 19/04/2009, 13h30
  4. Transformer un vecteur de caractères en matrice 4*4
    Par pazze dans le forum x86 32-bits / 64-bits
    Réponses: 1
    Dernier message: 07/04/2009, 12h17
  5. Transformer un vecteur en tableau de float
    Par DiverSIG dans le forum java.util
    Réponses: 3
    Dernier message: 19/11/2008, 18h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo