Laden...

Viele Grafik Objekte und MouseMove...

Erstellt von jank vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.621 Views
J
jank Themenstarter:in
1 Beiträge seit 2007
vor 16 Jahren
Viele Grafik Objekte und MouseMove...

Hallo,

ich habe in meinem Projekt ein Performance Problem.
Ich habe eine grosse Liste von Grafik-Objekten, die auf ein Graphics eines Panels gezeichnet werden. Jetzt möchte ich für ein Objekt, das unter der Maus liegt, einen Tooltip anzeigen. Dafür laufe ich bei jeder Mausbewegung durch diese Liste und prüfe mit einem Hit-Test ob das Objekt zu meiner Mausposition passt. Das ist für ein paar Objekte ok, aber wenn man mehr als 5000 Objekte hat ist das schon nicht mehr so schön.

Hier meine Frage: Wie könnte man dieses Problem lösen? Gäbe es eine Möglichkeit, die Liste zu sortieren (nach x, y und z-Order)? Und wie findet man dann das Objekt?

MFG

89 Beiträge seit 2006
vor 16 Jahren

Hallo,

Die Moeglichkeiten sind vielfaeltig. DU kannst z.b. alle Objekte in einen Quadtree einsortieren, und nur die Objekte in den Knoten des Mauszeigers abfragen.

Gruss
purestrain

Y
238 Beiträge seit 2005
vor 16 Jahren

Suche mal im Forum nach dem Stichwort "Quadtree". Ich glaube sogar dass jemand bereits eine fertige Implementierung gepostet hat.

2.760 Beiträge seit 2006
vor 16 Jahren

Du kannst auch einfach eine Struktur bauen die ein Gitter darstellt.
In jeder Zelle speicherst du dann deine Objekte entsprechend ihrer Position, wenn
du nun einen HitTest machen willst, dann durchläufst du einfach nur alle Zeilen und Spalten die der aktuellen Mausposition am nächsten kommen und prüfst dann die interne List auf Objekte die mit der Maus kollidieren.
Das sollte etwas schneller sein.

2.921 Beiträge seit 2005
vor 16 Jahren

Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.