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

Android Discussion :

Sauvegarder en mémoire un rectangle


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 118
    Par défaut Sauvegarder en mémoire un rectangle
    Bonjour,

    Mon problème est le suivant j'effectue une application android ou grâce à un algorithme j'effectue le dessin de rectangle a une position bien précise (x, y) sur mon plan quadrillé. Je définis mon Canvas c et ensuite je fais c.drawRec..., j'aimerai savoir comment faire pour mémoriser à chaque fois que je trace un rectangle, car j'ai certain rectangle qui se dessine plusieurs fois à la même position donc j'aimerai faire un test dessus pour éviter de les tracer si il existe déjà.

    Je vous remercie

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 095
    Par défaut
    Tu peux très bien mettre chacun des nouveaux rectangle créés dans une liste tout simplement. Après tu cherchera dans ta liste si un rectangle n'est pas en collision avec le nouveau que tu veux insérer dans la liste.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 118
    Par défaut
    D'accord, je vous remercie. Mais je mets çà dans une liste de quoi, parce que je voulais faire une liste de coordonnées pour voir par rapport à la position mais ca ne sera pas tres bien je pense

  4. #4
    Membre éprouvé Avatar de Arislas
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 116
    Par défaut
    Je pense que tu peut créer une liste de rectangle et faire tes calculs de collisions sur eux.

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 118
    Par défaut
    voici mon code :

    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
     
    public void test(int x1, int y1, int x2, int y2) {
    		int x, y, dx, dy, xincr, yincr, erreur, i, coordX, coordY;
    		double scalePixel = (Plan.getScale() / 2);
     
    		Canvas c = new Canvas(simu);
    		Paint paint = new Paint();
     
    		dx = Math.abs(x2 - x1);
    		dy = Math.abs(y2 - y1);
     
    		if (x1 < x2) {
    			xincr = 1;
    		} else {
    			xincr = -1;
    		}
     
    		if (y1 < y2) {
    			yincr = 1;
    		} else {
    			yincr = -1;
    		}
     
    		x = x1;
    		y = y1;
     
    		if (dx > dy) {
    			erreur = dx / 2;
    			for (i = 0; i < dx; i++) {
    				x = x + xincr;
    				erreur = erreur + dy;
    				if (erreur > dx) {
    					erreur = erreur - dx;
    					y = y + yincr;
    				}
     
    				c.drawRect(x, y, (int) (x + scalePixel),
    						(int) (y + scalePixel), paint);
     
    			}
    		} else {
    			erreur = dy / 2;
    			for (i = 0; i < dy; i++) {
    				y = y + yincr;
    				erreur = erreur + dx;
     
    				if (erreur > dy) {
    					erreur = erreur - dy;
    					x = x + xincr;
    				}
     
    				c.drawRect(x, y, (int) (x + scalePixel),
    						(int) (y + scalePixel), paint);
     
    			}
     
    		}
    	}
    Par rapport a mon code la, je déclare une liste de rectangle comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    List <Rect> list_Rec = new ArrayList<Rect>();
    et je déclare également :

    ou j'effectue cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rectangle = new Rect(x,y...);
    et du coup j'ajoute mon rectangle a ma liste de rectangle, une fois que je fais çà je pense que çà devrait être bon

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 118
    Par défaut
    j'ai donc effectué cela et par la suite ajouter ce code :

    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
     
    /** Creation du rectangle **/
    				rectangle = new Rect(x, y,
    						(int) (x+ scalePixel),
    						(int) (y+ scalePixel));
     
     
    				if (listRect.contains(rectangle)) {
     
    				} else {
     
    					listRect.add(rectangle);
     
     
    					c.drawRect(rectangle, paint);
    				}
    Mais ca ne marche pas, j'ai toujours des rectangles dessiné au même endroit

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

Discussions similaires

  1. Sauvegarde en mémoire d'un OracleInput
    Par LittleFr0g dans le forum Développement de jobs
    Réponses: 9
    Dernier message: 19/07/2011, 11h54
  2. Sauvegarde fichier mémoire externe
    Par l-amoureu dans le forum Android
    Réponses: 3
    Dernier message: 17/05/2011, 10h31
  3. CList et POSITION à sauvegarder en mémoire
    Par sevli dans le forum Windows
    Réponses: 0
    Dernier message: 25/06/2008, 10h24
  4. Réponses: 5
    Dernier message: 10/04/2007, 11h31
  5. Sauvegarde d'une variable en mémoire
    Par Hypollite76 dans le forum Delphi
    Réponses: 4
    Dernier message: 07/12/2006, 15h25

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