Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Objekt kollidiert mit schräger Linie (https://www.delphipraxis.net/13607-objekt-kollidiert-mit-schraeger-linie.html)

Florian H 22. Dez 2003 12:12


Objekt kollidiert mit schräger Linie
 
Hi,

wie kann ich überprüfen, ob eine bestimmte Koordinate (z.B. 200,100) auf einer Linie liegt (z.B. von 0,0 nach 400,400)?

Das ganze ist für ein Minigolfspiel, wo eine Koordinate (der Ball) eben an einer Linie (der Bande) abprallen soll.
Doch dazu muss ich ja wissen ob überhaupt eine Kollision besteht.
Der Ball bewegt sich ja auch mit einer best. Geschwindigkeit und in einem best. Winkel...

Ist es da villeicht sinnvoller, das irgendwie mit dem Winkel des Balles und dem Winkeln der Linie zu prüfen, als über koordinaten? Wäre mir persönlich wohl lieber, da es wohl genauer ist.
nur ist das wohl auch schwerer...

hat einer eine gute Lösung?

grüße
flo

axelf98 22. Dez 2003 12:36

Re: Objekt kollidiert mit schräger Linie
 
Man könnte die schräge Linie als Gerade mit der Funktion g(x)=mx + n ansehen. Dann kann man mit der Abstandsformel zweier Punkte d = Wurzel((x1-x2)²+(y1-y2)²) den Abstand der Kugel mit Position x,y zu dem Funktionswert von g(x), dem Punkt auf der Linie, bestimmen. Wenn dieser Abstand kleiner als Kugelradius ist, gibt es eine Kollision.
Diese Methode rechnet nicht 100%ig genau, je steiler eine Gerade ist (Steigung m größer), desto ungenauer ist die Abfrage... Vielleicht fällt mir ja noch was genaueres ein!

choose 22. Dez 2003 13:10

Re: Objekt kollidiert mit schräger Linie
 
Das Problem lässt sich mit analytischer Geometrie recht elegant lösen. Sieh mal unter Bei Google suchenabstand punkt gerade (oder gleich bei einem der Treffer) nach.

Für die Reflektion bietet sich ebenfalls eine Lösung mithilfe des Lots, dass Du aus obiger Gesetzmäßigkeit ableiten kannst, an...


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:36 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