Autor Beitrag
Qualle7
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mo 18.01.10 12:45 
Hallo,

ich habe nun schon länger versucht, ein MouseClickEvent auf mein gezeichnetes Kreisbogensegment (über Graphics.drawArc gezeichnet) abzufangen.
Aber ich bin immer noch nicht dahintergekommen, wie ich es schaffe abzufragen ob der Punkt vom MouseClick auf der Fläche des Kreisbogensegments liegt.

Kann mir jemand helfen?

Mit freundlichen Grüßen

Qualle
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mo 18.01.10 14:04 
:welcome:

Wenn du nicht gerade auf die Farbe des Pixels unter der Maus testen willst, würde ich eine Prise Mathematik vorschlagen :zwinker: . Zum Berechnen von Winkeln besonders Math.Atan2.

_________________
>λ=
Qualle7 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 19.01.10 13:55 
Danke für die rasche Antwort.

Ich habe mich auch etwas mit Math.Atan2 beschäftigt, allerdings geht Math.Atan2 vom Ursprung(0,0) aus.
Ich würde allerdings den Kreismittelpunkt als Berechnungsursprung benötigen.

Gibt es eventuell bereits eine API oder Klassen die bereitestellen, dass Kreisbogensegmente gezeichnet werden können und die auch ein onClick abfangen? Wäre eine Wunschvorstellung :P

Mit freundlichen Grüßen

Qualle
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 19.01.10 14:30 
user profile iconQualle7 hat folgendes geschrieben Zum zitierten Posting springen:
Gibt es eventuell bereits eine API oder Klassen die bereitestellen, dass Kreisbogensegmente gezeichnet werden können und die auch ein onClick abfangen? Wäre eine Wunschvorstellung :P
Wäre aber viel zu speziell um den Weg in eine allgemeine API zu finden.

Das einzige was du machen könntest wäre Regionen zu benutzen. Diese kannst du direkt zur Abfrage nutzen, ob ein Punkt darin liegt, ich weiß nicht ob nur via Windows API und PtInRegion oder direkt.

Eigentlich ist es aber viel einfacher das selbst mathematisch zu lösen...
Im Zweifelsfall reicht dazu ganz simpel der Satz des Pythagoras, wenn du die Winkelfunktionen nicht magst. ;-)
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Di 19.01.10 18:44 
user profile iconQualle7 hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe mich auch etwas mit Math.Atan2 beschäftigt, allerdings geht Math.Atan2 vom Ursprung(0,0) aus.
Ich würde allerdings den Kreismittelpunkt als Berechnungsursprung benötigen.
Dann holst du dir durch eine Vektorsubtraktion den Mittelpunkt in den Ursprung.

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Im Zweifelsfall reicht dazu ganz simpel der Satz des Pythagoras, wenn du die Winkelfunktionen nicht magst. ;-)
Den werden wir so oder so benötigen ;) . Da wir aber schon zwei Winkel gegeben haben, kann ich mir nicht vorstellen, wie das ohne Winkelfunktionen funktionieren soll.

PS: Lustig wird es natürlich erst, wenn man eine Ellipse zeichnet... :mrgreen:

_________________
>λ=
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 19.01.10 18:52 
Ach ja: Kreisbogensegment, daran hatte ich nicht gedacht. :oops:

Mit dem Satz des Pythagoras lässt sich jedenfalls sehr simpel feststellen, ob man innerhalb des Vollkreises ist. Dazu dann noch den Winkel um festzustellen ob man innerhalb des Segments ist.

user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
PS: Lustig wird es natürlich erst, wenn man eine Ellipse zeichnet... :mrgreen:
Och, dazu gibts ja das schöne Schnurmodell mit den beiden Brennpunkten. :mrgreen:
Dann funktioniert es von diesen Brennpunkten aus ähnlich wie beim Satz des Pythagoras nur mit simplen Summen.