01.03.2013 Aufrufe

Diplomarbeit (*.pdf - 5,3MB) - Faculty of Computer Science ...

Diplomarbeit (*.pdf - 5,3MB) - Faculty of Computer Science ...

Diplomarbeit (*.pdf - 5,3MB) - Faculty of Computer Science ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!