J'essaye d'effectuer la détection de collision de phase large avec une approche de taille de grille fixe. Ainsi, pour la position de chaque entité: (x, y, z) (chacun de type float), j'ai besoin de trouver dans quelle cellule se trouve l'entité. J'ai alors l'intention de stocker toutes les cellules dans une table de hachage. signaler des collisions (le cas échéant). Voici ce que je fais: Position de la cellule de grille: (type int) (Gx, Gy, Gz) => (x/M, y/M, z/M) où M est la taille de la grille.Comment trouver la valeur de hachage d'un vecteur 3D?
Une fois, j'ai une cellule, je voudrais l'ajouter à une table de hachage avec sa clé étant un hachage unique basé sur (Gx, Gy, Gz) et la valeur étant la cellule elle-même. Maintenant, je ne peux pas penser à une bonne fonction de hachage et j'ai besoin d'aide avec ça. Est-ce que quelqu'un peut me suggérer une bonne fonction de hachage?
Merci
Je pense que cette solution fonctionne très bien pour votre cas spesific, mais il ne serait probablement pas une bonne idée pour le cas le plus général de " faire une clé de hachage pour le vecteur 3D ", car il pourrait y avoir aucune taille maximale. –