Partage
  • Partager sur Facebook
  • Partager sur Twitter

Faire varier un angle avec tkinter

    25 mars 2015 à 22:44:55

    Bonsoir,

    Je voudrais faire varier un angle afin de permettre un rotation d'un trait.

    Quelles commandes peut-on utiliser avec tkinter ???

    Merci d'avance de vos réponses !

    • Partager sur Facebook
    • Partager sur Twitter
      25 mars 2015 à 22:45:51

      Ou utiliser des coordonnées du cercle trigonométrique avec des cosinus et des sinus.
      • Partager sur Facebook
      • Partager sur Twitter
        25 mars 2015 à 23:13:08

        Salut

        Changer ses coordonnées ?

        • Partager sur Facebook
        • Partager sur Twitter
          25 mars 2015 à 23:18:50

          En fait j'ai une ligne verticale qui est censé avoir  une rotation afin de se retrouver à l'horizontal, et on m'a proposé de faire un angle t=90 puis cos(t) et sin(t).

          Ensuite l'idée serait de faire varier t dans une boucle tant qu'il est supérieur à 0.


          Mais je n'ai aucune idée de comment utiliser les angles avec tkinter :s

          Si je change seulement ses coordonnées, on ne le verra pas descendre et il ne sera pas de la même taille...

          • Partager sur Facebook
          • Partager sur Twitter
            26 mars 2015 à 4:05:16

            Hmm je vois, peut-être faudrait-il changer de méthode et utiliser la méthode de Canvas : create_arc

            Je n'ai pas plus regarder que cela, mais avec quelques manipulations ça doit être faisable :)

            http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/create_arc.html

            • Partager sur Facebook
            • Partager sur Twitter
              26 mars 2015 à 9:21:16

              TheClem2 a écrit:


              Mais je n'ai aucune idée de comment utiliser les angles avec tkinter :s

              Si je change seulement ses coordonnées, on ne le verra pas descendre et il ne sera pas de la même taille...

              Comme tu le dis, tu dois faire varier l'angle durant un certain temps. Donc il te faut une fonction qui s'appelle elle-même et qui fait bouger un tout petit peu l'angle à chaque fois. Il existe la méthode after des widget qui te permet d'appeler dans un certain temps une fonction. Et cette fonction peut se rappeler elle-même toujours avec after.

              L'angle n'est qu'une variable. Genre angle = math.pi/2 # en radian. A chaque appelle de cette fonction tu diminues l'angle jusqu'à ce qu'il soit égale à 0.

              Voici un petit exemple

              !/usr/bin/env python3

              -- coding: utf-8 --

              from tkinter import * import math

              def display_line_angle(line, x0, y0, angle, length):

              "Display the line from origin x0, y0 with an angle and length"
              x = length * math.cos(angle)
              y = length * math.sin(angle)
              canvas.coords(line, x0, y0, x0 + x, y0 + y)
              

              def update_angle(delta_angle):

              "Increased the angle of the line by delta_angle. Called every 50 ms."
              global angle # Because we need to change it from within the function.
              angle += delta_angle
              display_line_angle(line, x0, y0, angle, LENGTH)
              if angle >= math.pi * 2:
                  return
              master.after(50, update_angle, math.pi / 120)
              

              master = Tk() canvas = Canvas(master, width=600, height=600) canvas.grid(column=0, row=0) x0, y0 = 300, 300 LENGTH = 200 # line length. Constant. angle = 0

              line = canvas.create_line((x0, y0, 0, 0), width=4, fill='red', smooth=True) display_line_angle(line, x0, y0, angle, LENGTH)

              update_angle(math.pi / 120)

              master.mainloop()

              </pre>

              -
              Edité par Dan737 26 mars 2015 à 11:35:45

              • Partager sur Facebook
              • Partager sur Twitter
                26 mars 2015 à 23:58:05

                Ok merci ! j'essaierai demain et je vous dirai si j'ai réussi !

                -
                Edité par TheClem2 26 mars 2015 à 23:58:15

                • Partager sur Facebook
                • Partager sur Twitter

                Faire varier un angle avec tkinter

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown