Seite 1 von 1

Herausfinden ob eine Linie geklickt wurde

Verfasst: Mittwoch 17. Oktober 2018, 11:11
von fingeg
Hallo,

Ich habe ein Programm in dem einige Linien ein Netzwerk darstellen, dafür nutze ich PyQt4.
Jetzt möchte ich, dass man durch klicken auf eine Linie eine Aktion erhält.

Das heißt, ich habe den Punkt an dem geklickt wurde (A) und den start- und endpunkt einer Linie (B und C) und möchte jetzt herausfinden, ob sich Punkt A mit einem Maximalen Abstand von 10px von der Linie BC befindet.

Hat da jemand eine Idee, wie ich das ausrechnen kann oder gibt es da vielleicht sogar schon fertige Funktionen in PyQt?

Danke schonmal im Vorraus :)
L.G. Finn

Re: Herausfinden ob eine Linie geklickt wurde

Verfasst: Mittwoch 17. Oktober 2018, 13:28
von __blackjack__
@fingeg: Wenn man auf einen Klick auf eine Linie reagieren möchte, würde ich ja spontan sagen das man das über die entsprechenden Events auf dem `QGraphicsItem` erledigen kann, also im konkreten Fall dem `QGraphicsLineItem`.

Re: Herausfinden ob eine Linie geklickt wurde

Verfasst: Mittwoch 17. Oktober 2018, 15:22
von __deets__
Wenn das nicht gut genug geht, dann musst du von selbst ran, und das Skalarprodukt des Vektors A-C und des Kreuzproduktes/Normalenvektors (B-C) berechnen. Beide Vektoren muessen auf Einheitsvektor-Laenge normiert werden, und das Skalarprodukt gibt dir dann den Abstand in Pixeln.