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

Calcul scientifique Python Discussion :

Animation de spirale d'archimède


Sujet :

Calcul scientifique Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2020
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2020
    Messages : 13
    Points : 8
    Points
    8
    Par défaut Animation de spirale d'archimède
    Bonjour
    J'arrive à afficher des animations en cartésien.
    J'arrive à afficher une spirale d’Archimède en polaires.
    Je n'arrive pas à animer une spirale d'Archimède en polaires.
    d'avance merci de votre aide.

    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
     
    # -*- coding: utf-8 -*-
    """
    Created on Tue Mar 31 19:19:13 2020
     
    @author: julnar
    Animation polaire archimède essai
    R = f(THETA)
    """
     
    import numpy as np
    import matplotlib.pyplot as plt
    from matplotlib.animation import FuncAnimation
    ""
    fig = plt.figure(figsize=(6,6))
    ax = plt.subplot(111, polar=True)
    ""
    rdata, tdata = [], []                       # déclaration listes des X et Y à afficher
    ln, = ax.plot(rdata, tdata)                 # affichage du fond
    ""
    theta = np.linspace(0, 6.0*np.pi, 200)      #theta en liste   
    ""
    # crér l'arrière de l'animation qui sera présent sur chaque image
    def init():
       ax.set_xlim(0, 2.0*np.pi)
       ax.set_ylim(0,10)
       ln.set_data(rdata,tdata)
       return ln,
    ""
    def update(frame):
        # met la valeur x courante de frame
        tdata.append(theta)  
        "place de la foncion ydata.append(f(frame)"                   
        rdata.append(1.19*theta)                # ro = f(theta) avec theta= frame
        ln.set_data(rdata, tdata)               # rempli line avec ro et theta courrants 
        return ln,
     
    lenteur = 20                                # lenteur de l'animation
    anim = FuncAnimation(
        fig, update, frames=theta,
        init_func=init,blit=True, interval = lenteur,repeat=False)

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut


    Exemple :

    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
    #! python3
    # coding: utf-8
     
    from termcolor import cprint
    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib.animation as anim
     
    r = np.arange(0, 12, 0.01)
    theta = 2.0 * np.pi * r
     
     
    def plot_cont(xmax):
        y = []
        x = []
        fig = plt.figure()
        ax = fig.add_subplot(111, projection='polar')
     
        def update(i):
            y.append(theta[i])
            x.append(r[i])
            ax.clear()
            ax.plot(x, y)
            #cprint('{} : {} {}'.format(i, r[1], theta[i]), 'green')
     
        # a n'est pas utilisé ailleurs, mais il est indispensable
        # au fonctionnement de l'animation
        a = anim.FuncAnimation(fig, update, frames=xmax, interval=10, repeat=False)
        plt.show()
     
     
    max = len(r)
     
    plot_cont(max)

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2020
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2020
    Messages : 13
    Points : 8
    Points
    8
    Par défaut remerciements
    bonjour danielhagnoul

    Merci beaucoup, cela fonctionne.
    J'ai compris le détail du passage de l'index de la liste des angles d'anim à update .

Discussions similaires

  1. Réponses: 14
    Dernier message: 31/12/2022, 08h39
  2. Comment ne pas rejouer une animation après un clic ?
    Par mmmmhhh dans le forum ActionScript 1 & ActionScript 2
    Réponses: 4
    Dernier message: 04/09/2002, 16h11
  3. [Composants][Animation] Lire une vidéo compressée
    Par femtosa dans le forum Composants VCL
    Réponses: 6
    Dernier message: 03/09/2002, 08h03
  4. Rx Controls Gif animés
    Par toufou dans le forum Composants VCL
    Réponses: 6
    Dernier message: 23/08/2002, 14h09
  5. Passage de parametre a une anim Flash 5
    Par debug dans le forum Intégration
    Réponses: 4
    Dernier message: 03/06/2002, 17h59

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