Diplomarbeit (*.pdf - 5,3MB) - Faculty of Computer Science ...
Diplomarbeit (*.pdf - 5,3MB) - Faculty of Computer Science ...
Diplomarbeit (*.pdf - 5,3MB) - Faculty of Computer Science ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Fall 2:<br />
Fall 3:<br />
T<br />
B<br />
⋅ R<br />
B<br />
2<br />
> ( a R + a R + a R ) + b<br />
1<br />
B<br />
21<br />
B B B B<br />
B<br />
B<br />
B<br />
B<br />
R 22T3<br />
− R23T2<br />
> ( a2<br />
R23<br />
+ a3<br />
R22<br />
) + ( b1<br />
R31<br />
+ b3<br />
R11<br />
)<br />
[Gottschalk00] zeigt, dass sich das in kauf nehmen des Mehraufwands durch<br />
Transformation der Box B in das Koordinatensystem der Box A, insgesamt<br />
betrachtet, positiv auf die Anzahl der durchzuführenden Operationen auswirkt.<br />
Im folgenden sollen einige Spezialfälle, die bei der Berechnung des<br />
Schnitttests auftreten können, betrachtet werden.<br />
OBB der Dicke Null<br />
Ein OBB hat in bestimmten Fällen die Dicke Null. Dies tritt auf, wenn<br />
lediglich ein einziges Dreieck oder generell eine Menge von koplanaren<br />
Polygonen umhüllt wird. [Gottschalk00] zeigt, dass auch für diesen Fall die<br />
Berechnung des Schnitttests vereinfacht werden kann. Da hier jedoch lediglich<br />
eine Addition, eine Multiplikation und eine Betragbildung eingespart werden,<br />
wurde dies (auch in der Implementierung nach [Gottschalk00]) nicht<br />
berücksichtigt.<br />
n = Nullvektor<br />
Sind zwei Kanten der beiden zu testenden Boxen parallel, so ergibt sich für<br />
einen der zu testenden Vektoren n durch Bildung des Kreuzprodukts dieser<br />
Kanten der Nullvektor. Diese Problematik soll nachfolgend unersucht werden.<br />
Gleichung 4-1 wurde in [Gottschalk00] vereinfacht, indem beide Seiten mit |n|<br />
multipliziert worden sind. Dies ist selbstverständlich nur zulässig für den Fall,<br />
dass |n| > 0 ist. Die Auswertung der Gleichung<br />
( T<br />
A<br />
B<br />
− T ) ⋅ n<br />
><br />
2<br />
B<br />
22<br />
A<br />
A<br />
A<br />
( a1<br />
R1<br />
⋅ n + a2<br />
R2<br />
⋅ n + a3<br />
R3<br />
B<br />
B<br />
B<br />
( b1<br />
R1<br />
⋅ n + b2<br />
R2<br />
⋅ n + b3<br />
R3<br />
für den Fall, dass |n| = 0 ist, liefert somit<br />
0 > 0 .<br />
3<br />
B<br />
23<br />
⋅ n )<br />
⋅ n )<br />
2<br />
+<br />
92