Wie finde ich den Hash-Wert eines 3D-Vektors?

Ich versuche, eine breitphasige Kollisionserkennung mit einem Ansatz mit fester Gittergröße durchzuführen. Für die Position jeder Entität: (x, y, z) (jede vom Typ float) muss ich herausfinden, in welcher Zelle die Entität liegt. Ich beabsichtige dann, alle Zellen in einer Hash-Tabelle zu speichern und dann zu durchlaufen um eventuelle Kollisionen zu melden.

Also, hier ist, was ich tue: Position der Gitterzelle: (Int-Typ) (Gx, Gy, Gz) => (x / M, y / M, z / M) wobei M die Größe des Gitters ist.

enn ich eine Zelle habe, möchte ich sie zu einer Hash-Tabelle hinzufügen, wobei der Schlüssel ein eindeutiger Hash ist, der auf (Gx, Gy, Gz) basiert, und der Wert die Zelle selbst ist. Jetzt kann ich mir keine gute Hash-Funktion vorstellen und brauche dabei Hilfe.

Kann mir jemand eine gute Hash-Funktion vorschlagen?

Vielen Dan

Antworten auf die Frage(4)

Ihre Antwort auf die Frage