Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Cursor-in-Ellipse-Abfrage (Canvas) (https://www.delphipraxis.net/73343-cursor-ellipse-abfrage-canvas.html)

Cöster 16. Jul 2006 14:04


Cursor-in-Ellipse-Abfrage (Canvas)
 
Es geht um ein Programm zur Mind-Map-Erstellung. Die Wörter sollen sich in einer Ellpise befinden. Mit der Maus soll es später möglich sein, die Ellipsen und damit die Wörter auf der Oberfläche der Paintbox zu verschieben. Dazu muss ich aber rauskriegen, ob sich der Cursor, während des OnMouseDown-Ereignisses überhaupt auf einer Ellipse befindet. Hätte da jemand ne Idee, wie ich das anstellen muss?
Danke

Hawkeye219 16. Jul 2006 14:20

Re: Cursor-in-Ellipse-Abfrage (Canvas)
 
Hallo Cöster,

du könntest mit der Funktion MSDN-Library durchsuchenCreateEllipticRgn eine Region erstellen und anschließend mit der Funktion MSDN-Library durchsuchenPtInRegion prüfen, ob ein Punkt in dieser Region liegt.

Gruß Hawkeye

Nikolas 16. Jul 2006 14:56

Re: Cursor-in-Ellipse-Abfrage (Canvas)
 
Alternativ gehts auch mathematisch:
Du hast zwei Punkte a und b (die Brennpunkte) und eine reelle Zahl r > 0. Eine Ellipse ist dann die Menge aller Punkte x, für die gilt, dass die Summe der Abstände zwischen x und a sowie x und b genau r beträgt. Wenn du a und b kennst, brauchst du nur noch die Abstände ausrechnen und überprüfen, ob die Summe kleiner als r ist.

Da du die Ellipse aber wahrscheinlich nicht über Brennpunkte und Radius zeichnest, ist dies vielleicht eine schöne, aber nicht unbedingt praktikable Lösung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:05 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz