QuadTree: Unterschied zwischen den Versionen
Justus (Diskussion | Beiträge) K Die Seite wurde neu angelegt: {{:QuadTree/Einleitung}} |
Justus (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
{{:QuadTree/Einleitung}} | {{:QuadTree/Einleitung}} | ||
Es kann durchaus sinnvoll sein, zu leere Quads wieder zu einem zusammenzufügen. Auch sollte man sich Gedanken machen, nach welchen Kriterium man Objekte in der Welt speichert. Da gibt es typischerweise drei Möglichkeiten: | |||
; Rein positionsbasiert | |||
: Da man die Positions und Größe jedes Quads kennt kann man relativ leicht prüfen, in welchen Quad ein Objekt liegt. | |||
; Position und Objektgröße | |||
: Man schiebt das Objekt in dem Baum so lange nach oben, bis es von den Ausmaßen vollständig in ein Quad passt. | |||
; Position und Objektgröße nur in Blättern | |||
: Man hat eine [[Referenz]] auf ein Objekt in allen Quads, die von einem Objekt berührt werden. |
Version vom 22. April 2009, 10:45 Uhr
Ein QuadTree[1] ist eine Datenstruktur mit der eine 2-Dimensionale Welt repräsentiert werden kann. Die Welt wird dazu in vier gleich große Rechtecke eingeteilt. Damit man viele Objekte effizient organisieren kann wird nur eine bestimmte Anzahl n Objekte in einer Zalle (Quad) gespeichert. Falls die gespeicherte Anzahl der Objekte n übersteigt wird das betroffene Quad in vier neue Quads geteilt und die vorhandenen Objekte auf die vier neuen Quads verteilt.
Im folgenden Beispiel wird angenommen, daß n=4
Dabei entsteht ein Baum, der in etwa so aussehen könnte:
Es kann durchaus sinnvoll sein, zu leere Quads wieder zu einem zusammenzufügen. Auch sollte man sich Gedanken machen, nach welchen Kriterium man Objekte in der Welt speichert. Da gibt es typischerweise drei Möglichkeiten:
- Rein positionsbasiert
- Da man die Positions und Größe jedes Quads kennt kann man relativ leicht prüfen, in welchen Quad ein Objekt liegt.
- Position und Objektgröße
- Man schiebt das Objekt in dem Baum so lange nach oben, bis es von den Ausmaßen vollständig in ein Quad passt.
- Position und Objektgröße nur in Blättern
- Man hat eine Referenz auf ein Objekt in allen Quads, die von einem Objekt berührt werden.
- ↑ Wikipedia Artikel zu QuadTrees