IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

List non trouvée


Sujet :

avec Java

  1. #1
    Membre du Club
    Homme Profil pro
    Chercheur d'Emploi
    Inscrit en
    Février 2017
    Messages
    86
    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 : 86
    Points : 65
    Points
    65
    Par défaut List non trouvée
    Salut, il me reste une erreur dans ma retranscription d'une methode c# en Java (3 fois la même erreur en fait. sur 3 lignes differentes.) Je vous ai mis les erreurs directement en commentaire dans le code en rouge et en gras (au cas ou: la méthode original en c# est la methode DoMath() visible sur ce Github: https://github.com/Whiplash141/Whips...or/MainForm.cs)

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
        double timeToSimulate = 8f;
        double timeStep = 0.0001f; // seconds
        double gravity = 9.81f; // m/s/s
        double muzzleVelocity = 950; // m/s
        double zeroingRange = 254;// m
        double targetRange = 500; // m
        double dragForce = 0.00095f;
        double mildots;
    
        List<Vecteur2> positionList = new LinkedList<Vecteur2>();
        List<Vecteur2> rotatedPositionList = new LinkedList<Vecteur2>();
    
        public void DoMath() {
            //Initial simulationic void DoMath()
    
            Vecteur2 velocityVector = new Vecteur2(muzzleVelocity, 0);
            Vecteur2 positionVector = new Vecteur2(0, 0);
            positionList.add(positionVector);
    
    
            for (double t = 0; t <= timeToSimulate; t += timeStep) {
                double frictionAcceleration = dragForce * velocityVector.LengthSquared();
    
                //compute total acceleration on the bullet
                Vecteur2 accelerationVector = Vecteur2.Normalize(velocityVector).negatif().multiplie(frictionAcceleration).plus(new Vecteur2(0, -gravity));
    
                //d = 1/2*a*t^2 + vi*t + d0;
                positionVector = positionVector.plus(velocityVector.multiplie(timeStep).plus(accelerationVector.multiplie(1/2).multiplie(timeStep).multiplie(timeStep)));
                positionList.add(positionVector);
    
                //vf = vi + at
                velocityVector = velocityVector.plus(accelerationVector.multiplie(timeStep));
            }
    
            //Solve for zeroing position
            Vecteur2 zeroingPosition = new Vecteur2(0, 0);
            double smallestDistance = 100000;
            for (int i = 0; i < positionList.size(); i++) { //Erreure possible: size() ici remplace Count en c#
                Vecteur2 thisPos = positionList[i]; // Error:(44) error: array required, but List<Vecteur2> found
    
                double distanceFromOrigin = thisPos != Vecteur2.Zero() ? thisPos.Length() : 0f;
    
                double thisDistance = Math.abs(distanceFromOrigin - zeroingRange);
    
                if (thisDistance < smallestDistance) {
                    zeroingPosition = thisPos;
                    smallestDistance = thisDistance;
                }
            }
    
            //Get elevation angle for zeroing
            double zeroingElevationAngle = zeroingPosition != Vecteur2.Zero() ? Math.atan(zeroingPosition.y / -zeroingPosition.x) : 0.0;
            double cos = (double) Math.cos(zeroingElevationAngle);
            double sin = (double) Math.sin(zeroingElevationAngle);
    
            //Create rotation matrix (matricies are transposed from math conventions)
            Matrix3x2 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.size(); i++) {
                rotatedPositionList.Add(Vecteur2.TransformNormal(positionList[i], rotationMatrix)); // Error: error: array required, but List<Vecteur2> found
            }
    
            //Solve for desired range
            Vecteur2 targetPos = new Vecteur2(0, 0);
            smallestDistance = 100000;
            for (int i = 0; i < rotatedPositionList.size(); i++) {
                Vecteur2 thisPos = rotatedPositionList[i]; // Error: error: array required, but List<Vecteur2> found
    
                double thisDistance = Math.abs(thisPos.x - targetRange);
    
                if (thisDistance < smallestDistance) {
                    targetPos = thisPos;
                    smallestDistance = thisDistance;
                }
            }
    
            mildots = (double) Math.atan(-targetPos.y / targetPos.x) * 1000f;
            String direction = mildots > 0 ? "above" : "below";
    
            button1.setText("Aim {Math.Abs(mildots):N2} mildots {direction} target");
        }
    }

    Toujours au cas ou voici la classe Vecteur2: (classe que j'ai écris en prenant les constructeurs et methodes dont j'avais besoin sur le code de la classe Vector2 du langage c# que l'on peut voir ici: http://www.technologicalutopia.com/s...vector2.cs.htm )

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
    import java.lang.Math;
     
    public class Vecteur2 {
     
        double x;
        double y;
     
        private static Vecteur2 zeroVector = new Vecteur2(0f, 0f);
     
        public Vecteur2(double dX, double dY) {
            x = dX;
            y = dY;
        }
     
        public double LengthSquared() {
            return Math.pow(x, 2) + Math.pow(y, 2);
        }
     
        public static Vecteur2 TransformNormal(Vecteur2 normal, Matrix3x2 matrix) {
            normal.x = (normal.x * matrix.m11) + (normal.y * matrix.m21);
            normal.y = (normal.x * matrix.m12) + (normal.y * matrix.m22);
            return normal;
        }
     
        public static Vecteur2 Normalize(Vecteur2 value) {
            double val = 1.0f / (double) Math.sqrt((value.x * value.x) + (value.y * value.y));
            value.x *= val;
            value.y *= val;
            return value;
        }
     
        public static Vecteur2 Zero()
        {
            return zeroVector;
        }
     
        public double Length()
        {
            return (double)Math.sqrt((x * x) + (y * y));
        }
        public Vecteur2 negatif()
        {
            this.x = -this.x;
            this.y = -this.y;
            return this;
        }
     
        public Vecteur2 multiplie(Vecteur2 scaleFactor)
        {
            this.x *= scaleFactor.x;
            this.y *= scaleFactor.y;
            return this;
        }
     
        public Vecteur2 multiplie(double scaleFactor)
        {
            this.x *= scaleFactor;
            this.y *= scaleFactor;
            return this;
        }
        public Vecteur2 plus(Vecteur2 value2)
        {
            this.x += value2.x;
            this.y += value2.y;
            return this;
        }
        public Vecteur2 plus(double value2)
        {
            this.x += value2;
            this.y += value2;
            return this;
        }
     
     
    }

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    L'erreur est éloquente pourtant : array required, but List<Vector2> found

    Déclaration de la variable positionList : type = List<Vector2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List<Vecteur2> positionList = new LinkedList<Vecteur2>();
    Accès dans cette ligne de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Vecteur2 thisPos = positionList[i]; // Error:(44) error: array required, but List<Vecteur2> found
    donc par positionList[i]. Tu cherches à accèder à un élément d'une java.util.List par la syntaxe d'accès à un élément de tableau !!! Pour une List, on utilise sa méthode get(int index) !
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    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.

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/04/2011, 15h24
  2. [debutant][Classpath][Linux] Classe non trouvée
    Par oghma777 dans le forum Général Java
    Réponses: 5
    Dernier message: 15/10/2004, 21h26
  3. COleDispatchDriver et Afx.h -> LPCSTR non trouvé
    Par Bayard dans le forum C++Builder
    Réponses: 2
    Dernier message: 25/09/2004, 08h42
  4. Recherche dans une liste non trié
    Par Oberown dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 13/09/2004, 13h56
  5. [Debutant][Install][VS]erreur sur fichier non trouvé.
    Par silvermoon dans le forum DirectX
    Réponses: 4
    Dernier message: 16/07/2004, 20h59

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