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

Programmation multimédia/Jeux Python Discussion :

Créer une animation à partir d'une matrice en lien avec les valeurs changeantes de la matrice [Python 3.X]


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2013
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2013
    Messages : 76
    Points : 40
    Points
    40
    Par défaut Créer une animation à partir d'une matrice en lien avec les valeurs changeantes de la matrice
    Bonjour,

    Je suis novice en python (donc je pose des questions bêtes...), j'ai donc cherché sur les doc python, et notamment sur maplotlib et sa gallery (http://matplotlib.org/gallery/index.html) je trouve des cas mais pas vraiment une solution applicable à mon cas.

    Voilà, j'ai une matrice contenant des entiers de 0 à 9 par exemple.
    Je voudrais afficher ces données dans une image via des cercles. La couleur de chaque cercle dépendant de la valeur lue dans ma matrice.
    Des modifications sont faites sur les données de la matrice et je fais varier les couleurs des cercles.
    Après chaque modification des données de la matrice, je fais afficher mon image avec les cercles dont les couleurs ont varié par rapport à l'image précédente.

    Pour passer d'une image à l'autre, je suis obligé de fermer la fenêtre affichant l'image.
    Cela fonctionne mais ....(il y en a un c'est normal).

    Je voudrais que mes affichages soient successifs, c'est à dire sans que je doivent fermer la fenêtre pour passer à l'affichage suivant. Sur Maplotlib, il y a des exemples d'animations et j'ai presque réussi mais j'ai un fond de couleur selon la valeur de la matrice alors que je voudrais un fond blanc mais le blanc n'existe pas ....

    Je suis en python 3.5.1 et j'utilise la bibliothèque maplotlib

    Pour le cas statique, c'est à dire fermeture de la fenêtre pour passer à l'affichage suivant, j'ai fait :

    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
    affichage = ones((10,10,3))
    taillecercle = 10
    couleur = 0
    couleur1 = 0
    couleur2 = 0
    for cycle in range(0,2):
        for i in range(0,10):
            for j in range(0,10):
                cercle = plot([j], [i], "wo")
                setp(cercle, 'markersize', taillecercle)
                if cycle == 00:
                    couleur = i/10
                    couleur1 = j/10
                    couleur2 = 0.1
                else:
                    couleur = j/10
                    couleur1 = i/10
                    couleur2 = 0.1
                setp(cercle, 'markerfacecolor',(couleur1,couleur,couleur2))
        imshow(affichage)
        show()

    Pour ajouter une animation, j'ai fait :

    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
    affichage1 = ones((10,10,3))
    p = imshow(affichage1)
    taillecercle = 10
    couleur = 0
    couleur1 = 0
    couleur2 = 0
    p = imshow(affichage1)
     
    for cycle in range(0,2):
        for i in range(0,10):
            for j in range(0,10):
                cercle = plot([j], [i], "wo")
                setp(cercle, 'markersize', taillecercle)
                 if cycle == 00:
                    couleur = i/10
                    couleur1 = j/10
                    couleur2 = 0.1
                else:
                    couleur = j/10
                    couleur1 = i/10
                    couleur2 = 0.1
                setp(cercle, 'markerfacecolor',(couleur1,couleur,couleur2))
     
        p.set_data(affichage1)
        pause(0.5)
    Mais le fond est foncé alors que j'en veux un blanc et en plus, il doit me manquer un truc de fin car l'image est ensuite bloquée. Je dois interrompre le programme.

    Quelqu'un aurait-il une solution à mon problème ? Une reco pour obtenir ce que je veux ?
    L'idéal étant donc : affichage de mon image avec des cercles positionnés selon des coordonnées x,y et avec la couleur que je veux, mise à jour de la couleur des cercles selon ce que je veux et cela N fois.
    L'optimum serait, une fois les N cycles réalisés, de pouvoir naviguer d'avant en arrière pour afficher l'image d'un cycle. Une possibilité serait d'enregistrer les images dans des fichiers et de revoir les fichiers mais pas très propre.

    Bon ben merci des conseils....

  2. #2
    Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2013
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2013
    Messages : 76
    Points : 40
    Points
    40
    Par défaut Créer une animation à partir d'une matrice en lien avec les valeurs changeantes de la matrice
    Bon, en plus, au-delà d'une matrice 10 10, cela rame ... proportionnel au carré de la taille de la matrice ....

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

Discussions similaires

  1. Créer .gif animé à partir d'une série d'images
    Par alex316 dans le forum Images
    Réponses: 24
    Dernier message: 01/03/2012, 18h01
  2. [Batch] Créer une chaine à partir d'une variable et d'une autre chaine
    Par mlle lain dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 10/11/2009, 16h26
  3. Réponses: 2
    Dernier message: 05/01/2009, 12h45
  4. Réponses: 5
    Dernier message: 22/05/2008, 14h42
  5. Réponses: 1
    Dernier message: 09/02/2007, 09h23

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