J'écris un jeu dans lequel le joueur peut manipuler un grand nombre d'objets à la fois. Je voudrais que le joueur puisse sélectionner des objets en fonction des distances qui les séparent. Étant donné les emplacements de tous les objets, un objet de départ et un seuil de distance, quel est le moyen le plus rapide de trouver le sous-ensemble contenant l'objet de départ pour lequel la distance entre deux objets ne dépasse pas le seuil? Les solutions heuristiques sont parfaitement acceptables.Trouver un sous-ensemble de points par distance relative
Répondre
This library semble faire l'affaire.
« ANN est une bibliothèque écrite dans le langage de programmation C++ pour supporter à la fois exacte et rapprocher le plus proche voisin chercher dans les espaces de différentes dimensions
[...] Dans le problème du plus proche voisin, on donne un ensemble P de points de données dans un espace de dimension D. Ces points sont prétraités dans une structure de données, de sorte que, en fonction de n'importe quel point q, les points de P à q peut être rapporté efficacement. "
Dépend de votre structure de données. Principalement, vos objets sont-ils déjà triés/partitionnés par la distance? Je ne peux pas penser à une heuristique à distance ... mais vous pourriez certainement le faire en parallèle, ce qui devrait aider.
Les objets sont actuellement partitionnés par emplacement, mais la solution n'est pas optimale car je sais que ce n'est pas définitif, donc je cherche des structures qui pourraient offrir un bon compromis entre espace et distance. Peut-être un quadtree? –
- 1. Position relative en PHP entre 2 points (Lat/Long)
- 2. comment trouver la distance entre 2 points sur google map?
- 3. PHP trouver un chemin absolu à distance
- 4. Calcul d'une distance relative Levenshtein - logique?
- 5. Trouver 2 points sur un objet 3D et obtenir leur distance
- 6. Distance moyenne entre les points d'un cluster
- 7. Question relative à trouver/remplacer using propertyregex
- 8. Géométrie: trouver le point à une distance spécifique entre deux points
- 9. Optimisation de la distance des points au test de sphère
- 10. Le moyen le plus rapide pour trouver la distance minimale entre les points
- 11. SQLite -> trouver deux points les plus proches de deux points différents
- 12. Trouver la distance entre 2 points dans Android en utilisant Cursor et la méthode distanceTo()
- 13. Trouver des angles de rotation entre des points 3d
- 14. Distance à un avion
- 15. Étant donné un ensemble de points, trouver si l'un des trois points sont colinéaires
- 16. Trouver les coordonnées d'un point entre deux points?
- 17. Notation par points JavaScript
- 18. jQuery: déplace l'élément par la valeur relative
- 19. la distance Looping entre deux points, et q pour quitter
- 20. Calculateur de distance par mer, coordonnées intermédiaires?
- 21. Algorithme pour trouver des points proches?
- 22. Trouver seulement les points pertinents dans MATLAB
- 23. API Google Maps - distance "route" entre 2 points
- 24. Étalement maximal de plusieurs points
- 25. cocos2d aide à trouver des points sur un cercle
- 26. Points équidistants sur les courbes de Bézier
- 27. Impossible de résoudre l'URL relative contenant le signe deux-points (:) en utilisant l'URL de résolution
- 28. positionnement DIV avec position: relative
- 29. Trouver IP à distance en utilisant .net
- 30. comment trouver la distance entre les éléments de deux tableaux?
Cela peut fonctionner, d'autant plus qu'il est sous licence LGPL. Je crains qu'il ne puisse pas fonctionner en temps réel pour un grand nombre de points, mais je vais le tester en premier. –