Kollision: schräge Wand und Ball in 2D

oska

Mitglied
Hallo erstmal. Ich habe die Frage in dieses Forum gestellt, da es sich nicht um eine Sprachspezifische Frage handelt.

Ich brauche eine Idee, wie ich die Kollision eines Balles mit einer schrägen Wand feststellen kann.
Das ganze ist 2-Dimensional.
Bekannt sind:
- Position und Bewegungsvektor des Balles
- Anfangs- und Endpunkt der Wand

Vielen Dank schonmal im vorraus.
 
hi,

du könntest doch einen zu der Wand senkrecht stehenden Vektor bilden, von der Mitte des Balles (Länge = Radius des Balles), und schaust dann ob diese zwei sich schneiden
:)
 
Klingt logisch. Aber wie bekomme ich diesen Vektor des Balls.
Ein Vektor senkrecht zur Wand wär ja der Normalenvektor der Wand. Der geht aber von der Wand aus und ich weiß nicht wie ich das jetzt mit dem Ball zusammenbringen soll.
 
Hi,

wie ich es verstehe, beötigst Du quasi den Abstand eines Punktes zu einer Graden? Ist dieser Abstand kleiner als der Radius des Kreises, liegt eine Kollision vor. Ein Beispiel hierzu habe ich mal als Flash ActionScript gepostet, aber das sollte leicht in alle anderen Sprachen übertragbar sein:
Code:
function point_to_line(x1,y1,x2,y2,x3,y3) {
	h=y2-y1; // Höhe und Breite
	b=x2-x1;
	s=h/b; // Steigung der Linie
	ax=1; // Höhe und Breite auf Einheits(Richtungsvektor) bringen
	ay=s;
	ba=Math.sqrt(Math.pow(ax,2)+Math.pow(ay,2)); // Betrag von a berechnen;
	qx=x3-x1; // Differenz von Ortsvektor (Punkt) und Startpunkt (Linie) berechnen;
	qy=y3-y1;
	vx=ay*qx-ax*qy; // Vektorprodukt von Richtungsvektor und Differenzvektor;
	vy=ax*qy-ay*qx;
	bv=Math.sqrt(Math.pow(vx,2)+Math.pow(vy,2)); // Betrag des Vektorproduktes;
	d=bv/ba; // Abstand Punkt (x3|y3) zur Linie
	return d;
}
x1|y1 und x2|y2 sind Start- und Endpunkt der Linie, x3|y3 die Koordinaten des Kreismittelpunktes.

Gruß
.
 

Neue Beiträge

Zurück