[PHP] Kollision mit einer Ellipse *g*

Goltergaul

Well-known member
ID: 17553
L
26 April 2006
480
7
Hi ich habe mal ein eher ungewöhnliches problem denke ich:

ich habe ein Koordinatensystem und in diesem befindet sich eine Ellipse.
Nun möchte ich prüfen ob sich ein bestimmter punkt in diesem Koordinatensystem innerhalb der ellipse befindet.

Mit einem Kreis wärs nicht so schwer, aber bei ner ellipse weiß ich jetzt nicht wirklich weiter... hat da wer ne idee?

danke euch =)
 
Kommt halt drauf an wie du die Ellipse gespeichert hast. Am einfachsten ist es wenn du die Brennpunkte hast.
Wenn die Längere der Ellipse a ist und der Abstand des Punktes (Wurzel aus ((F1_x-P_x)²+(F1_y-P_y)²)) zum 1. Brennpunkt + den Abstand des Punktes zum 2. Brennpunkt größer als 2a ist, dann ist es außerhalb der Ellipse, wenn kleiner dann innerhalb und wenn gleich, dann auf der Ellipse.
Sag einfach wie die Ellipse angegben ist, dann kann ich gleich ne Formel angeben.

MfG respawner
 
Zuletzt bearbeitet:
Du könntest das Koordinatensystem doch "strecken" je nach Bedarf,
wenn du so rechnest:
- Ellipse ist b Mal h
- x, y wäre der Punkt
- d die Entfernung
d² = (x/b)²+(y/h)²

dann wäre:
- d < 1: Punkt innerhalb der Ellipse
- d = 1: Punkt auf der Ellipse
- d > 1: Punkt außerhalb der Ellipse

Wenn die Ellipse bei der Prüfung gedreht werden soll, dann wirds natürlich schwerer.
 
dann rechne es so,

d = ((P_x-M_x)*2/Breite)²+((P_y-M_y)*2/Höhe)²
P_x und P_y ist der x- und y-Wert des zu testenden Punkts
M_x und M_y der Mittelpunkt der Ellipse
Breite die Breite der Ellipse
Höhe ist die Höhe der Ellipse

dann kannst du wie Icy geschrieben hat aus d das Verhalten auslesen:
d>1 Außerhalb
d<1 Innerhalb
d=1 Auf der Ellipse

MfG respawner