Seite 1 von 1

QPainter und Polygone

Verfasst: 7. Januar 2005 11:20
von flownfluid
Guten Tag allerseits...

Ich zeichne ein Polygon welches die Koordinaten in einem QPointArray gespeichert hat. Kenn QT eine Funktion welche mir sagt ob die Maus nun auf dem Polygon ist oder nicht.
Sonst müsste ich jede Koordinate abfragen und kontrollieren und das ist ein bisschen mühsam :-)

Vielen Dank für eure Hilfe

Verfasst: 18. Januar 2005 09:21
von lepsai
Painter-Aktionen und Mausevents haben miteinander ja nix zutun, also musst du das leider per Hand lösen.

Verfasst: 28. Januar 2005 11:39
von pm_Snake
Aber so ne Funktion ist auch wirklich nicht allzuschwer zu implementieren :)

Verfasst: 30. Januar 2005 18:50
von flownfluid
tja mag wohl sein :lol:
Doch leider kenne ich keinen einfachen Weg die Mausposition zu kontrollieren ob sie auf einem x- beliebigen Polygon ist oder nicht.

Nehmen wir mal doch einfach mal an, das ich ein 40- faches Polygon habe welches sich zum Teil überschneidet.

Bei meiner Methode habe ich irgendwo auf der Oberfläche einen Punkt angenommen. Zu diesem Punkt nehme ich zwei Punkte des Polygons rechen diese Steigungen aus und bereche die Steigung zwischen dem Punkt der Maus und dem angenommen Punkt. So berechen ich drei Strecken und vergleiche diese. Und so weiss ich ob ich nun im Polygon bin oder nicht... Ist eigentlich recht kompliziert aber es funktioniert.

Es würde mich eigentlich schon recht interessieren wie du meinst es wäre nicht allzuschwer zu implementieren.
Deswegen habe ich ja eigentlich auch um Hilfe gefragt....

Vielen Dank

Verfasst: 30. Januar 2005 20:58
von lepsai
ich denke du hast alles richtig gemacht und da gibt es von der Herangehensweise her keinen anderen Ansatz...

Verfasst: 1. Februar 2005 21:56
von monte
Sowas müsste doch eigentlich auch ganz gut mit QCanvasPolygonalItem auf
einem QCanvas Feld gehen. Welches ja ein collisions( const QPoint & p ) hat.

Natürlich nur wenn man QCanvas verwenden will bzw. kann.

Verfasst: 2. Februar 2005 19:13
von flownfluid
Ich bin eigentlich auch darüber überzeugt das man dies mit QCanvas lösen kann. Leider kenne ich mich mit diesem Werkzeug überhaupt nicht aus und verstehe es irgendwie auch nicht.
Wäre dankbar für irgendwelche Inputs wie ich mich da am besten einleben könnte...

Merci