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

Aktuelle Zeit: Fr Jul 04, 2025 05:04

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



Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Polygon in Quad...?
BeitragVerfasst: Sa Jan 18, 2003 10:18 
Offline
DGL Member
Benutzeravatar

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

ich bin grad ein wenig.. äh... na ja, weiß halt nich weiter *g*

Ich hab grad meinen Octree gebastelt, funktioniert bis auf eine kleinigkeit und eine etwas größere sache, schon sehr gut... :)

Also: Wie bekomme ich raus ob ein Polygon in einem Würfel liegt..?

sobald ein Vertex des Polygons im Würfel liegt ist es kein Problem mehr, nur was wenn alle Vertex'e des Polygons ausserhalb des Würfels liegen, das Polygon aber trotzdem durch den Würfel druchgeht...? :roll:

Weiß jemand wie ich das rausbekommen kann???

Au'revoir,
Aya~

PS: Die andere größere sache ist wie man Polygone Splitten kann, aber da hab ich schon irgendwo nen Tutorial gesehen.. würd mich aber auch freuen wenn mir da wer noch schöne Seiten sagt (ausser die eine von Steffan Zerbst)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 18, 2003 15:45 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hab mal zum besseren Verständniss ein Bild gemacht... :)

Bild
<span style='font-size:16pt;line-height:100%'>Woher weiß ich ob die fläche den Würfel durchdringt, bzw reinragt??</span>


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jan 19, 2003 13:25 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Wenn sich der Würfel und das Polygon schneiden , dann geht entweder eine Kante des Polygons durch den Würfel, eine Seitenkante des Würfels schneidet das Polygon oder ein Punkt des Polygons ist im Würfel.
Aber einfacher wäre es die Bounding Box des Polygons zu nehmen und zu prüfen, ob sie die den Würfel, der ja vermutlich auch eine Boundind Box ist, schneidet. Das ist aber nicht so genau, aber wenn das Polygon den Würfel schneidet, dann trifft auch dieser Test zu, so das vermutlich keine Fehler entstehen dürften.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jan 19, 2003 13:35 
Offline
DGL Member
Benutzeravatar

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

mhh.... "nicht so genau" reicht mir hierfür leider nicht.. :(
Hierbei ist's auch relativ egal wie lange das berechnen dauert, denn das ist für meinen Octree gedacht, und der brauch bei großen Leveln sowieso ne ganze Zeit bis er berechnet ist... :)

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jan 20, 2003 17:52 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Weiß da keiner irgendwie was dazu...??

Es muß doch irgendne Intersection Methode für nen Polygon mit nem Cube geben, oder...??? *schaut hoffnungsvoll*

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jan 20, 2003 20:02 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
Es gibt soetwas wie polygon - polygon intersection tests - wird meist für collision detection verwandt, mach dich dort aber mal schlau. übrigens, dieser test ist meist "recht" aufwendig, es könnte sich lohnen erst um das polygon eine AABounding Box zu berechnen und diese auf überschneidungen mit dem Octree Leaf zu testen. Ansonsten musst du halt mal nach solchen Überschneidungstests ausschau halten, ich hab mich damit bislang noch nicht beschäftig, ich weiß nur, dass es sie gibt und dass es im Netz schiere unmengen an Tutorials dazu gibt, meist unter dem Begriff Collision Detection doer Intersection test.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jan 20, 2003 20:36 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Unter <a href='http://www.realtimerendering.com/int' target='_blank'>http://www.realtimerendering.com/int</a> gibt es Beispiele für alle nur denkbaren Kombinationen von Kollisionen zwischen Kugel,AABB,Dreieck,Linie usw...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jan 20, 2003 20:42 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Die Seite kenn ich schon...

<a href='http://www.magic-software.com/Source/Intersection3D/MgcIntr3DTriBox.cpp' target='_blank'>http://www.magic-software.com/Source/Inter...ntr3DTriBox.cpp</a>
Das scheint auch genau das zu sein was ich brauche, nur leider versteh ich da rein garnix.. :)

Wenn also wer lust hat mir das zu erklären oder auf Delphi umzuschreiben, da wär ich seeehr dankbar.. :P

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jan 20, 2003 20:59 
Offline
DGL Member

Registriert: Mo Jan 20, 2003 20:10
Beiträge: 424
Wohnort: nähe Starnberg
Hi,

habe gerade unter Allgemein/Mathe-Schnittpunkte etwas gepostet.

Wenn Du die Unit geomtry.pas von M. Lischke bzw. JEDI verwendet, ist unter <a href='http://www.seban.de/download/PLCollision.pas' target='_blank'>http://www.seban.de/download/PLCollision.pas</a> eine Unit zu finden, die eine Collision zwischen einer Ebene und einer Linie behandelt. Sie ist im Orignal von Maarten Kronberger, unter http:// www.sulaco.co zu finden, habe diese nur an die Unit Geometry.pas angepasst und ein wenig umformatiert. Um sicher zu ein, must Du für jede Kante deines Würfels den Intersection Test machen, aber da Geschwindigkeit kein Problem ist....

Du uebergibst die 4 Vertices des Plane und 2 Vertices des Würfes und bekommst einen Boolean-Rückgabewert. Hoffe hilft Dir weiter.

Thomas

_________________
http://www.seban.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jan 20, 2003 21:01 
Offline
DGL Member
Benutzeravatar

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

ja... das währe eine möglichkeit... mal schauen, wenn ich nix besseres hinbekomme werd ich's wohl so machen :roll:

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 10 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.008s | 14 Queries | GZIP : On ]