Bonjour, je voudrais savoir si vous connaissez un moyen de savoir si deux lignes d'un canevas tkinter se touchent ? Attention, la méthode find_overlapping ne me semble pas convenir pour déterminer cela et c'est pourquoi je ne vois pas trop comment faire ...
Est-ce que la méthode présentée sur stackoverflow conviendrait ?
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
find_overlapping prend un rectangle en paramètre dont la ligne sera une des diagonales. Après on peut réduire le rectangle mais il va falloir itérer un certain nombre de fois pour balayer les points de la 1ère ligne.
Résoudre le système d'équation me semble être la seule solution.
Ah ok, effectivement, moi, je m'étais servi de find_overlapping pour savoir si un élément du canvas touchait une extrémité de la 1ere ligne (ou pas)
Dans ce cas, il faut, comme tu le dis, chercher l'intersection de 2 segments (car 2 lignes infinies se croisent à moins d'être parallèles)
Le lien proposé par Fred montre une fonction qui le fait
Dans le temps, j'avais créé une fonction qui y ressemble, qui non seulement renvoyait les coordonnées du point d'intersection, mais aussi un statut
du genre PARALLELES, LIGNE_LIGNE (le point est en dehors des segments), SEGMENT_SEGMENT (le point est sur les 2 segments),
LIGNE_SEGMENT (le point est en dehors du 1er segment et sur le 2eme), etc ...
Il y avait aussi un argument booléen nommé STRICT si l'on voulait tester que les segments se croisent vraiment et pas seulement que l'extrémité de l'un touche l'autre
Est-ce que la méthode présentée sur stackoverflow conviendrait ?
C'est possible, en calculant les coordonnées d'intersection des droites sur lesquelles sont portées les lignes et en vérifiant si le point d'intersection appartient à l'une des lignes. L'idéal aurait été une méthode implémentée dans tkinter mais merci !
Cordialement,
Lapin Lapinou.
Canvas 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.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)