Wie um zu überprüfen, Kreuzung zwischen 2 gedrehte Rechtecke?
Kann mir jemand erklären, wie um zu prüfen, ob ein gedrehtes Rechteck schneiden andere Rechteck?
Haben Sie einen Blick auf "Trennen Achse-theorem" 🙂
Ist es immer ein Rechteck? Was ist die Achse der rotation? Ist die Achse befestigt?
Ich habe ein gedrehtes Rechteck und einem feststehenden und ich muss wissen, ob Sie sich überschneiden
Ist es immer ein Rechteck? Was ist die Achse der rotation? Ist die Achse befestigt?
Ich habe ein gedrehtes Rechteck und einem feststehenden und ich muss wissen, ob Sie sich überschneiden
InformationsquelleAutor Buron | 2012-06-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weitere Informationen finden Sie in diesem Artikel: 2D-Polygon Collision Detection - Code-Projekt
NB: Der Algorithmus funktioniert nur für konvexe Polygone, angegeben entweder im Uhrzeigersinn oder gegen den Uhrzeigersinn um.
Könnten Sie ein Beispiel geben, das gibt das falsche Ergebnis? Sie könnten Gabel dieser code: ideone.com/H7DWOO
Wie es aussieht, machte ich einen Fehler in meiner Umstellung auf C++. Es funktioniert jetzt - pastebin.com/03BigiCn
Hier ist eine Java-version, falls jemand interessiert ist. pastebin.com/GvxvEQnA
Ihre Polygone angegeben sind, die in der falschen Reihenfolge. Wie Sie stehen, Sie bilden zwei Zeit-Glas Formen. Der Algorithmus ist nur garantiert Arbeit für konvexe Polygone, angegeben entweder im Uhrzeigersinn oder gegen den Uhrzeigersinn um. -- Flip die letzten beiden Koordinaten, die in jedem polygon, um Sie in Rechtecke.
InformationsquelleAutor Markus Jarderot
In javascript, die genaue gleichen Algorithmus (für die Bequemlichkeit):
Hoffe, das jemand hilft.
Vielen DANK für Javascript
vielen Dank, funktioniert Recht gut: jsfiddle.net/2VXXP/6
Bei der Verwendung dieser, wer weiß wenn ich brauche, um einen zusätzlichen Punkt hinzufügen für den test? So zum Beispiel, wenn mit einem Dreieck gibt es 3 Punkte:
first
,second
undlast
. Was bedeutet parama
- und/oderb
würde ein array von 3 Elementen, oder würden Sie brauchen ein vierter Punkt wäre der Ausgangspunkt. Also im Grunde brauchen Sie den ersten Punkt am Anfang und Ende des Arrays?Ich denke nicht. Alle es braucht ist Ihre Punkte, die Sie nicht brauchen, zu 'schließen' die Form ab, indem die Ausgangslage Ende.
InformationsquelleAutor mstenroos
Hier der gleiche Algorithmus in Java, wenn jemand interessiert ist.
Richtig, ich vergaß, dass
Double.MIN_VALUE
ist die kleinste mögliche positive Anzahl und deswegen ist dieses Beispiel nicht. Ich denke, Sie sollten behoben werden, indem Sie Sie zuPOSITIVE_INFINITY
undNEGATIVE_INFINITY
.Ja, das funktioniert. Vielen Dank für Eure Hilfe!
InformationsquelleAutor Sri Harsha Chilakapati
Check-out die Methode, entwickelt von Oren Becker, um zu erkennen Kreuzung von gedrehten Rechtecken mit form:
Und rufen Sie die folgende Funktion gibt an, ob zwei gedrehte Rechtecke schneiden oder nicht:
InformationsquelleAutor herohuyongtao
Vielleicht hilft es jemand. Der gleiche Algorithmus in PHP:
InformationsquelleAutor sashko
Können Sie auch Rect.IntersectsWith().
Beispielsweise in WPF wenn Sie zwei UIElements, mit RenderTransform und platziert auf eine Leinwand, und Sie möchten, um herauszufinden, ob Sie sich schneiden können Sie etwas ähnliches:
InformationsquelleAutor Miro Bucko
Einen Typ(Java -) Skript-Implementierung mit einem Knebel zu (ex -) gehören "Touch" - Situationen:
InformationsquelleAutor Bernoulli IT
Lua Umsetzung Baujahr love2d Rahmen. Collision detection-Funktion arbeitet im reinen lua sowieso
InformationsquelleAutor Papaew