Seite 1 von 1

Kollision: Kreis in "Radar"

Verfasst: 29.03.2009, 22:10
von SPech
Guten Abend,

nach einem zwölf Stunden Code Marathon qualmt gerade mein Kopf.
Ich habe folgendes Problem ich muss eine Kugel in einem Radarfeld finden.
Das ganze habe ich bisher auf ein zweidimensionales Problem geändert.
Die Idee war das Radar als zwei unendliche Linien zu definieren aber ich habe gerade keine Idee wie ich das gegen einen Kreis testen soll?! :shock:

Viele Grüße
Sebastian

Re: Kollision: Kreis in "Radar"

Verfasst: 29.03.2009, 22:21
von Zudomon
So ganz verstehe ich das Problem nicht. Es hört sich für mich nach einem Strahl-Kugeltest an...
Könntest du das eventuell nochmal genauer beschreiben, was du suchst?

Re: Kollision: Kreis in "Radar"

Verfasst: 29.03.2009, 22:36
von klickverbot
Wenn dein Problem ist, eine Gerade gegen einen Kreis zu testen, wäre meine erste Idee, den Abstand des Kreismittelpunkts von der Geraden auszurechnen (Einsetzen in die Hessesche Normalform) und zu überprüfen, ob er kleiner als der Kreisradius.

Aus deiner Problembeschreibung werde ich aber ehrlichgesagt noch nicht ganz schlau…

Re: Kollision: Kreis in "Radar"

Verfasst: 29.03.2009, 22:52
von SPech
Es geht um die Fläche zwischen zwei geraden.

Re: Kollision: Kreis in "Radar"

Verfasst: 29.03.2009, 23:00
von Zudomon
Also soooo viel präziser ist deine Beschreibung immer noch nicht.

Wie wärs denn, wenn du statt Geraden ( du willst das ja letztendlich eh 3D haben ) als zwei parallele Ebenen betrachtest, dessen beide Normalen voneinander weg zeigen... nun könntest du eine Kugel gegen beide prüfen und schauen, ob diese zwischen den beiden Ebenen liegt.

Re: Kollision: Kreis in "Radar"

Verfasst: 29.03.2009, 23:41
von SPech
Tut mir leid hier nochmal genauer mit einer Zeichnung.

Also ich habe ein Objekt welches ein bestimmtes Sichtfeld hat (Theoretisch ist da ein Dreieck)
Die Objekte werden als Kreise dargestellt (Mittelpunkt + Radius)

Einen Test von Kreis und Linie wäre kein Problem aber ich komme gerade nicht auf den Test für den Kreis mit dem Dreieck.

Re: Kollision: Kreis in "Radar"

Verfasst: 29.03.2009, 23:48
von Krishty
Am einfachsten: Winkel zwischen Blickrichtung und Richtung des Kreises bestimmen (Skalarprodukt der normalisierten Vektoren) und prüfen, ob er kleiner oder gleich dem halben Blickfeld ist. Dasselbe mit der Distanz zwischen Betrachter und Kugel machen, dabei Kugelradius abziehen und mit der Sichtweite vergleichen.

Edit: Ersteres funktioniert nur mit Punkten, nicht mit Kreisen – da war ich wohl vorschnell, sorry.

Re: Kollision: Kreis in "Radar"

Verfasst: 29.03.2009, 23:50
von Richard Schubert
Mit der Methode Atan2 kannst du dir den Winkel zwischen dem Ausganspunkt und dem gesuchten errechnen lassen. Sobald dieser zwischen den beiden Sichtwinkeln ist, ist der Punkt sichtbar.

Oder ist dein Problem doch was anderes?

Re: Kollision: Kreis in "Radar"

Verfasst: 30.03.2009, 08:11
von Jörg
Wie du ermittelst, ob ein Kreis links oder rechts einer Gerade liegt, weisst Du sicherlich (falls nicht: Ermitteln, welchen Abstand der Kreismittelpunkt hat und wenn dieser plus Kreisradius > 0 ist, dann ist der Test positiv).
Dein Radar wird wohl konvex sein von der Flaeche her, die es ueberdeckt.
Daher einfach fuer alle Begrenzungslinien obigen Test durchfuehren und voila, schon ist man fertig.

Re: Kollision: Kreis in "Radar"

Verfasst: 30.03.2009, 23:17
von SPech
Richard vielen Dank das war genau was ich suchte.
Transliere jetzt beide Objekte auf (0,0) und bilde die 3 Winkel (Linie1, Linie2, ObjektMittelpunkt)
So finde ich zumindest schon raus ob der Mittelpunkt in dem Bereich liegt. Jetzt muss ich nurnoch den Radius dazu bekommen :)