Kollision: Kreis in "Radar"
- SPech
- Moderator
- Beiträge: 63
- Registriert: 07.03.2002, 17:12
- Echter Name: Sebastian Pech
- Kontaktdaten:
Kollision: Kreis in "Radar"
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
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
SPech.de - Meine Projekte: AirTaxi, Adberion, WOW Reborn
Re: Kollision: Kreis in "Radar"
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?
Könntest du das eventuell nochmal genauer beschreiben, was du suchst?
-
- Establishment
- Beiträge: 191
- Registriert: 01.03.2009, 19:22
- Echter Name: David N.
Re: Kollision: Kreis in "Radar"
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…
Aus deiner Problembeschreibung werde ich aber ehrlichgesagt noch nicht ganz schlau…
- SPech
- Moderator
- Beiträge: 63
- Registriert: 07.03.2002, 17:12
- Echter Name: Sebastian Pech
- Kontaktdaten:
Re: Kollision: Kreis in "Radar"
Es geht um die Fläche zwischen zwei geraden.
SPech.de - Meine Projekte: AirTaxi, Adberion, WOW Reborn
Re: Kollision: Kreis in "Radar"
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.
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.
- SPech
- Moderator
- Beiträge: 63
- Registriert: 07.03.2002, 17:12
- Echter Name: Sebastian Pech
- Kontaktdaten:
Re: Kollision: Kreis in "Radar"
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.
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.
- Dateianhänge
-
- Unbenannt.png (3.32 KiB) 3676 mal betrachtet
SPech.de - Meine Projekte: AirTaxi, Adberion, WOW Reborn
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Kollision: Kreis in "Radar"
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.
Edit: Ersteres funktioniert nur mit Punkten, nicht mit Kreisen – da war ich wohl vorschnell, sorry.
- Richard Schubert
- Moderator
- Beiträge: 106
- Registriert: 27.02.2009, 08:44
- Wohnort: Hohen Neuendorf (b. Berlin)
- Kontaktdaten:
Re: Kollision: Kreis in "Radar"
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?
Oder ist dein Problem doch was anderes?
Produktivität über Performance - XNA Creators Club
Re: Kollision: Kreis in "Radar"
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.
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.
- SPech
- Moderator
- Beiträge: 63
- Registriert: 07.03.2002, 17:12
- Echter Name: Sebastian Pech
- Kontaktdaten:
Re: Kollision: Kreis in "Radar"
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 :)
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 :)
SPech.de - Meine Projekte: AirTaxi, Adberion, WOW Reborn