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 :

Animer une sinusoide


Sujet :

Calcul scientifique Python

  1. #1
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2019
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2019
    Messages : 67
    Points : 42
    Points
    42
    Par défaut Animer une sinusoide
    Bonjour à tous :

    Je souhaite créer un programme avec Python 3 dont l'effet est le suivant:
    On rentre les paramètres "U" et "f" correspondant à un signal sinusoidal de la forme y = U*cos(2*pi*f*t + b)
    "t" est le paramètre temps et b la phase à l'origine, initialement à 0.
    "t" correspond à l'abscisse de mon graphique.
    "y" correspond à l'ordonnée de mon graphique.

    Je souhaite tracer le graphique dans lequel cette sinusoide soit animée, comme une onde.
    J'ai donc pensé à faire varier le paramètre "b" au cours du temps.
    Avec le programme ci-dessous, j'obtiens plein de graphiques avec au fur du temps, le décalage de la courbe.
    Ce qui m'intéresse, c'est avoir à l'écran 1 seul graphique, et voir la courbe qui se déplace.

    Je sais qu'il y a un problème dans ma boucle "while". Je ne sais pas comment résoudre ce problème.
    Quelqu'un pourrait-il me proposer un script corrigé ? Merci.
    Je précise bien que je travaille avec Python 3.

    Voici mon script :

    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
    import numpy as np
    import matplotlib.pyplot as plt
     
     
    t = np.linspace(0, 20, 1000)
     
     
    print("")
     
    print("")   
    print("SINUSOIDE EN MOUVEMENT")
    print("")  
    print("On considère une fonction sinusoïdale d'équation : U*cos(2*pi*f*t + b)") 
    print("")
     
    U = float(input("Quelle est l'amplitude de votre signal U (en V, et Umax < 10 V) ?"))
     
    print("")
    f = float(input("Quelle est la fréquence de votre signal f (en Hz) ?"))
    b = -np.pi
    while b<np.pi:
     
         y = U*np.cos(2*3.14*f*t + b)
     
         plt.plot(t,y)
     
         b = b + 0.05
         plt.grid()
         plt.title("Onde mécanique en mouvement")
         plt.xlabel("Temps en secondes")
         plt.ylabel("Amplitude en Volt")
         plt.show()
         plt.pause(0.05)
         plt.cla()
     
    print("C'est FINI !")

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par Olivier20000 Voir le message
    Ce qui m'intéresse, c'est avoir à l'écran 1 seul graphique, et voir la courbe qui se déplace.

    Je sais qu'il y a un problème dans ma boucle "while". Je ne sais pas comment résoudre ce problème.
    Déjà il faut que vous regardiez comment réaliser des animations avec matplotlib.

    Quelqu'un pourrait-il me proposer un script corrigé ?
    regardez ce que fait l'exemple simple_anim.py...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2019
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2019
    Messages : 67
    Points : 42
    Points
    42
    Par défaut Animation: simple_anim.py
    Bonjour Monsieur,

    j'ai regardé la séquence que vous me proposez : j'ai "copié/collé" le programme et inséré and Spyder 3.
    Le résultat qui s'affiche est juste un carré blanc.
    Pb de version Python ??
    Tout le contenu de ce petit programme est-il interprétable dans Python 3 ou certaines instructions ne sont plus valides?
    Merci.

    Je suis débutant, désolé...

    Cordialement,

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par Olivier20000 Voir le message
    j'ai regardé la séquence que vous me proposez : j'ai "copié/collé" le programme et inséré and Spyder 3.
    Le résultat qui s'affiche est juste un carré blanc.
    Ca fonctionne très bien sous python3 (j'ai testé avec python3.6).

    Citation Envoyé par Olivier20000 Voir le message
    Je suis débutant, désolé...
    Un IDE comme Spyder est juste là pour voir permettre d'écrire et mettre au point vos scripts. L'environnement normal pour lancer un "script" Python, c'est d'ouvrir un terminal et de taper <python> monscript.py.
    note: en remplaçant <python> par la chaine de caractères qui va bien pour démarrer le "python" que vous utilisez.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre émérite

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Points : 2 328
    Points
    2 328
    Par défaut
    Paramétrez Spyder pour que l'affichage graphique se fasse dans une nouvelle fenêtre et non dans le terminal.

    Outils -> Preference
    section "Console Ipython"
    Onglet "Graphiques"
    Dans la partie Sortie graphique, mettre le menu déroulant sur "Automatique"
    Appliquer, puis OK

    Redémarrez ensuite Spyder

  6. #6
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2019
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2019
    Messages : 67
    Points : 42
    Points
    42
    Par défaut Merci !
    Citation Envoyé par lg_53 Voir le message
    Paramétrez Spyder pour que l'affichage graphique se fasse dans une nouvelle fenêtre et non dans le terminal.

    Outils -> Preference
    section "Console Ipython"
    Onglet "Graphiques"
    Dans la partie Sortie graphique, mettre le menu déroulant sur "Automatique"
    Appliquer, puis OK

    Redémarrez ensuite Spyder
    Bonjour,

    Merci de votre aide.
    Le graphiques et animations s'affichent maintenant normalement dans une fenêtre externe.
    Cordialement.

  7. #7
    Membre émérite

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Points : 2 328
    Points
    2 328
    Par défaut
    Bien donc maintenant que vous parvenez à faire tourner l'exemple donné sur le site officiel vous devriez arriver à l'adapter à votre besoin.

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/03/2010, 18h50
  2. Animer une bitmap
    Par cjacquel dans le forum MFC
    Réponses: 1
    Dernier message: 31/03/2008, 18h09
  3. Besoin d'aide sur une sinusoide
    Par BruceBoc dans le forum Physique
    Réponses: 5
    Dernier message: 11/04/2007, 22h49
  4. 1 script, pour animer une image, qui en regroupe 3 scripts
    Par vampyer972 dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 09/04/2006, 00h06
  5. [FLASH] Animer une image
    Par @zr@el dans le forum Flash
    Réponses: 6
    Dernier message: 01/06/2005, 08h20

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