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

Tkinter Python Discussion :

Comparer 2 paires de coordonnee - tkinter


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Lyceen
    Inscrit en
    Novembre 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lyceen
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2012
    Messages : 40
    Par défaut Comparer 2 paires de coordonnee - tkinter
    Bonsoir,

    Dans le cadre d'un projet scolaire, nous avons besoin de comparer 2 paires de coordonnees.

    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
    from tkinter import *
     
    root2=Tk()
    fenetre_plateau=Canvas(root2,width="487",height="315")
    photo = PhotoImage(file= "mapcouper.gif")
    fenetre_plateau.create_image(243.5,157.5,image=photo)
     
    fenetre_plateau.pack()
     
    carrebleu = [[94,11],[94,53],[207,11],[207,53]]
    def souris (event=None):
        coord = [event.y,event.x]
        print("0",carrebleu[0])
        print("coord",coord)
        if ... :
            print("carrebleu")
     
    root2.bind('<Motion>',souris)
     
    root2.mainloop()
    En gros, la liste carrebleu designe, dans l'ordre haut gauche, haut droit, bas gauche, bas droit, les coordonnees d'un rectangle.

    Je cherche quelle condition mettre dans mon if pour que le print s'affiche lorsque mon curseur est sur le rectangle.

    J'ai bien essayer avec des carrebleu[0] < coord etc. Mais lorsque je faisais ca, seul les coord en x etaient comparer. Les coord y n'etaient alors pas pris en compte.

    Pourriez vous m'aider sachant que cela doit etre fait avec les modules implanter par defaut dans python3.

    Ps : Je ne possede pas les accents sur mon clavier, et la correction automatique etant en anglais, je n'ai pas pu les mettres. Je les ai donc tous remplacer par "er", veuillez m'en excuser.

    Bromy

  2. #2
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonjour,

    Vous pouvez utiliser l'opérateur logique and pour votre if:
    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
    from tkinter import *
     
     
     
    carrebleu = [[94,11], [94,53], [207,11], [207,53]]
     
     
    def souris(event):
        # if carrebleu[0][0]-1 < event.x < carrebleu[2][0]+1 and carrebleu[0][1]-1 < event.y < carrebleu[1][1]+1:
        if 93 < event.x < 208 and 10 < event.y < 54:
            print("coords : %dx%d"% (event.x, event.y))
     
     
    root2 = Tk()
    fenetre_plateau = Canvas(root2, width="487", height="315")
    fenetre_plateau.create_rectangle(94, 11, 207, 53, fill="blue")
    fenetre_plateau.pack()
    root2.bind('<Motion>',souris)
    root2.mainloop()
    Ceci dit pas besoin de connaître les coordonnées pour cela.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    from tkinter import *
     
     
     
    def souris(event):
        print("coords : %dx%d"% (event.x, event.y))
     
     
    root2 = Tk()
    fenetre_plateau = Canvas(root2, width="487", height="315")
    rect = fenetre_plateau.create_rectangle(94, 11, 207, 53, fill="blue")
    fenetre_plateau.tag_bind(rect, '<Motion>', souris)
    fenetre_plateau.pack()
    root2.mainloop()
    @+

  3. #3
    Membre averti
    Homme Profil pro
    Lyceen
    Inscrit en
    Novembre 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lyceen
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2012
    Messages : 40
    Par défaut
    Ok merci, tu m'as montrer ce que j'avais besoin.

    Deuxieme petite question, j'ai introduis une image d'un labyrinthe, je voudrais maintenant y dessiner un pion que je pourrais deplacer sur l'image, comment faire ? Si je cree un canvas pour dessiner dessus, mon image n'y sera plus ?
    Ou alors dois je recreer toute l'image avec tkinter ?

    from tkinter import *

    root2=Tk()
    fenetre_plateau=Canvas(root2,width="487",height="315")
    photo = PhotoImage(file= "mapcouper.gif")
    fenetre_plateau.create_image(243.5,157.5,image=photo)

    fenetre_plateau.pack()

    carrebleu = [[11,94],[53,94],[11,207],[53,207]]
    carrebleu2 = [[438,92],[478,92],[438,206],[478,206]]
    x = 240
    y = 145
    r = 8

    def souris(event):
    if (carrebleu2[0][0] < event.x < carrebleu2[1][0] and carrebleu2[0][1] < event.y < carrebleu2[2][1]) or (carrebleu[0][0] < event.x < carrebleu[1][0] and carrebleu[0][1] < event.y < carrebleu[2][1]) :
    print("Vous etes sur la zone invisible")

    root2.bind('<Motion>',souris)

    root2.mainloop()

  4. #4
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonjour,

    Citation Envoyé par bromy Voir le message
    Deuxieme petite question, j'ai introduis une image d'un labyrinthe, je voudrais maintenant y dessiner un pion que je pourrais deplacer sur l'image, comment faire ? Si je cree un canvas pour dessiner dessus, mon image n'y sera plus ?
    Ou alors dois je recreer toute l'image avec tkinter ?
    Je n'ai pas bien compris 'mon image n'y sera plus'.
    Si ce n'est pour un create_window les objets d'un Canvas sont superposables : Si vous ne touchez pas à votre image et placez/déplacez des objets dessus ils seront au premier plan.
    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
    from tkinter import *
     
     
    carrebleu = [[11,94], [53,94], [11,207], [53,207]]
    carrebleu2 = [[438,92], [478,92], [438,206], [478,206]]
    x = 240
    y = 145
    r = 8
     
     
    def souris(event):
        if (carrebleu2[0][0] < event.x < carrebleu2[1][0] and carrebleu2[0][1] < event.y < carrebleu2[2][1]) or (carrebleu[0][0] < event.x < carrebleu[1][0] and carrebleu[0][1] < event.y < carrebleu[2][1]):
            print("Vous etes sur la zone invisible")
     
     
    def move(event):
        x = fenetre_plateau.canvasx(event.x)
        y = fenetre_plateau.canvasy(event.y)
        fenetre_plateau.coords(pion, x-10, y-10, x+10, y+10)
     
     
    root2 = Tk()
    fenetre_plateau=Canvas(root2, width="487", height="315")
    photo = PhotoImage(file="mapcouper.gif")
    fenetre_plateau.create_image(243.5, 157.5, image=photo)
    pion = fenetre_plateau.create_oval(210, 210, 230, 230, fill='red')
    fenetre_plateau.pack()
    root2.bind('<Motion>', souris)
    root2.bind('<1>', move)
    root2.mainloop()
    Les deux conditions pour ne pas voir l'image sont : Vous placez un objet/Widget devant ou vous en perdez la référence.

    @+

  5. #5
    Membre averti
    Homme Profil pro
    Lyceen
    Inscrit en
    Novembre 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lyceen
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2012
    Messages : 40
    Par défaut
    Merci !
    Je n'avais pas trouver comment les superposer.

  6. #6
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Un Résolu ?

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

Discussions similaires

  1. [date] Comparer deux formats différents
    Par terziann dans le forum Requêtes
    Réponses: 17
    Dernier message: 21/07/2003, 15h21
  2. [LG][FAQ]comparer des fichiers
    Par lucke dans le forum Langage
    Réponses: 11
    Dernier message: 01/06/2003, 18h02
  3. [langage] Comparer Perl avec d'autres langages comme C ?
    Par Anonymous dans le forum Langage
    Réponses: 3
    Dernier message: 10/08/2002, 23h52
  4. Réponses: 4
    Dernier message: 30/06/2002, 20h23
  5. Comparer des fichiers de données : Quel Langage ?
    Par Anonymous dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 24/04/2002, 22h37

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