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
Herausfinden ob eine Linie geklickt wurde
- __blackjack__
- User
- Beiträge: 13100
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@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`.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
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.