Thema: Delphi auf linen klicken

Einzelnen Beitrag anzeigen

Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#8

Re: auf linen klicken

  Alt 10. Nov 2006, 17:57
Zitat von mimi:
:Muetze1
das verstehe ich nicht was du meinst.....
Ist der gleiche Vorschlag wie der des Gummbärchens.

@Muetze1 & SirThornberry: Für einen exakten Klick mag das reichen, aber der Fall ist wohl _äußerst_ unwahrscheinlich . Mit der Toleranz wird das nicht funktionieren, der Mausbereich ist dann auf der einen Seite dünn wie ein Faden und auf der anderen aufgefächert.

@mimi: Tut mir leid, aber es _geht_ einfach nicht einfacher als mit Vektoren.
Startpunkt A, Endpunkt B, Maus C

Du musst das Lot von C auf AB konstruieren. Mit dem Skalarprodukt kannst du überprüfen, ob der Lotfußpunkt überhaupt auf AB liegt: 0 <= ((B - A) . (C - A)) / |A| <= |B|. Nun musst du noch die Lotlänge errechnen, zB per Pythagoras, und überprüfen, ob sie kleiner als die Toleranz ist.
Zusätzlich kannst du noch prüfen, ob |C - A| oder |C - B| < Toleranzwert ist, ob C also in einem Kreis um einen der Linienpunkte liegt.

Alles aus dem Kopf, habe ich so oder so ähnlich in meinem Bézier-Program benutzt.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat