Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Näherungswert bestimmen (https://www.delphipraxis.net/33952-naeherungswert-bestimmen.html)

maximus Caesar 15. Nov 2004 14:27


Näherungswert bestimmen
 
Hallo!
Also, ich habe jetzt zwei Punkte, z.B. X:=8 Y:=4 und X:=55 Y:=54
Wenn ich jetzt mit der Maus einen klick mache, bekomme ich die aktuelle Position. Wie kann ich fesstellen, an welchem Punkt sie näher drann ist? (sollte auch bei Abständen von nur 5 Pixeln funktionieren!)

MrSpock 15. Nov 2004 14:33

Re: Näherungswert bestimmen
 
Hallo Caesar,

du kannst die aktuelle Position und den gesuchten Punkt vektoriel von einander abziehen (x2-x1, y2-y1) und das Ergebnis in Polarkoordinaten umrechnen. Die Länge gibt dir dann an, welcher Abstand geringer ist.

maximus Caesar 15. Nov 2004 14:36

Re: Näherungswert bestimmen
 
Wie mache ich das mit den Polarkoordinaten?

Sharky 15. Nov 2004 14:47

Re: Näherungswert bestimmen
 
Hai maximus,

mal so aus dem Kopf "gedacht" :stupid:

Du hast zwei feste Punkte und den Punkt der durch deinen Mausklick bestimmt wird.
Jetzt kannst Du aus je einem der fixpunkte und dem des Mausklickes ein Dreieick "erstellen". Dabei entspricht der Abstand zwichen dem FixPunkten und dem der Maus der Hypothenuse des jeweiligen Dreieckes.

nailor 15. Nov 2004 14:49

Re: Näherungswert bestimmen
 
den x und den y abstand berechnen. da wo x^2 + y^2 kleiner ist, ist er näher dran.

ste_ett 15. Nov 2004 15:04

Re: Näherungswert bestimmen
 
Durch den Klick bestimmst du 2 4-Ecke:
x1= Mousex-x1 / y1 = mousey-y1 / dx1 = mousex / dy1 = mousey
und
x2= Mousex-x2 / y2 = mousey-y2 / dx2 = mousex / dy2 = mousey

a und b sind die Breite und Höhe dieser 4-Ecke, bzw 2 Seiten eines Dreiecks.
c ist die Diagonale durch das 4-Eck, bzw. die 3, Seite des Dreicks.
Mit Hilfe des Satzes des Pythagoras (a^2 + b^2 = c^2) kannst du damit die Strecke errechnen, wie weit der Punkt des Mausklicks von dem jeweiligen Punkt entfernt ist. :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 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-2025 by Thomas Breitkreuz