Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 04, 2025 08:26

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Polygon & Kreis Collision...
BeitragVerfasst: Di Jan 28, 2003 17:38 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Huhu,

weiß jemand wie ich rausbekommenkann, ob ein Quad und ein 2D-Kreis sich überschneiden???

Vom Quad weiß ich alle 4x3 Koordinaten.. vom Kreis weiß ich die Koordinaten + Radius.

*schaut hilfesuchend*

Au'revoir,
Aya~

PS: Falls es so einfacher ist, die Quads sind immer gerade auf der Y-Achse (Also wie Wände)... der Kreis liegt immer flach auf der X-Achse.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 28, 2003 18:32 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Nov 02, 2002 18:06
Beiträge: 299
Wohnort: Dresden
So einfach is es mit dem Kreis glaube ich nicht. Ich würde den Kreis durch vielleicht 4 Linien vereinfachen und dann eine Poly-Linien Abfrage machen

_________________
"Ich würde ja gern die Welt verändern, aber Gott gibt mir den Quelltext nicht"


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 28, 2003 20:54 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
Wenn das Quad 'ne Wand ist und der Kreis auf der X-Achse liegt, dann ist der Radius, gemessen vom Mittelpunkt des Kreises Richtung Wand doch eine Linie, oder? Und die solltest du dann einfach überprüfen. Also z.B.
Kreis ist -3,0,0 entfernt, heißt, falls radius 1,5 ist, ist er an der Wand. Das ist doch schon ne if-Abfrage, oder? :wink:
Wenn man dann viele Quads hat, muss man halt so vielleicht 45 oder 90 Linien zeichnen und die mit Jan Horns Technik überprüfen, ob das allerdings dann langsamer wird, kann ich nicht sagen. :roll:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 29, 2003 10:27 
Offline
DGL Member

Registriert: Mo Jan 20, 2003 20:10
Beiträge: 424
Wohnort: nähe Starnberg
Nur eine Idee und nicht genau durchdacht:

1. Wenn die Entfernung vom Mittelpunkt zur Wand groesser ist als der Radius => keine Kollision, keine weitere Betrachtung
2. Wenn Entfernung kleiner als Radius ist, dann die X und Z - Position der Ecken der Wand prüfen, ob diese innerhalb des Radius liegen, => Kollision, da dann der Kreis die Linie zwischen den 2 Ecke der Wand schneidet oder berührt.

Bezieht sich auf die Annahme, das der Kreis immer in paralle zu X/Z - Ebene liegt und die Wände im 90-Winkel dazu stehen.

KidPaddle

_________________
http://www.seban.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 29, 2003 15:12 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Nov 02, 2002 18:06
Beiträge: 299
Wohnort: Dresden
Nein, auch wenn man viele Quads hat, bleibt die Anzahl der Linien gleich. (Glaube ich)

_________________
"Ich würde ja gern die Welt verändern, aber Gott gibt mir den Quelltext nicht"


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 31, 2003 17:50 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Allgemeine Vorgehensweise:

Quad mit der Ebene, in der der Kreis liegt schneiden. Einfach alle Kanten des Quads mit der Ebenengleichung der Kreisebene verschneiden. Bei einem konvexen Quad ergibt das 0, 1 (wenn nur ein Punkt auf der Ebene liegt) oder 2 Schnittpunkte. 0 Schnittpunkte = keine Überschneidung.

Bei einem Schnittpunkt muss die Distanz zum Kreismittelpunkt < Kreisradius sein.

Bei zwei Schnittpunkten muss der Normalabstand vom Kreismittelpunkt zur Geradengleichung der Strecke < Kreisradius sein, außerdem muss sich die Strecke zwischen den Schnittpunkten mit der durch die Gerade durch den Kreis gezogenen Sekante überschneiden.

Diese Vorgehensweise sollte (evtl. mit Mathebuch) nachvollziehbar sein.

Übrigens musst du die Ausrichtung einer Ebene in der eine Fläche liegt entweder mit zwei Komponenten angeben (XZ Ebene) oder über ihren Normalvektor (Ebene mit Y-Achse als Normale), damit sie definiert ist.
Auf X-Achse heißt ja nur, dass die X-Achse durch die Ebene geht, es unendlich viele Ebenen auf die diese Eigenschaft zutrifft.

Grüße

Mars

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.009s | 15 Queries | GZIP : On ]