Eh bien, le GJK vous donnerait le point le plus proche de la somme de Minkowski à l'origine. Si rien d'autre ne bouge, alors votre somme de Minkowski serait la même, et le point le plus proche aussi.
Habituellement, les gens supposent que les corps sont libres de bouger et de tourner. Dans ce cas, les résultats changent tout le temps.
Sur le cas de traduction, vous devriez pouvoir réutiliser votre différence Minkowski. Dans le cas de rotation, vous devrez recalculer. Ce serait un problème pour de nombreuses applications en temps réel.
Si votre algorithme utilise implicitement la différence de Minkowski, au moyen des fonctions de support, vous n'avez pas besoin de recalculer quoi que ce soit. C'est l'un des avantages de l'utilisation des fonctions de support.
Certaines formes ont une forme très facile pour la fonction de support. Dans ce cas, vous n'avez pas besoin de calculer quoi que ce soit. C'est un autre avantage. Et, enfin, vous pouvez ajouter les fonctions de support à faire pour la fonction de support d'une somme de Minkowski. Une grande propriété, puisque de cette façon vous pouvez former une famille de formes en utilisant des primitives, et obtenir que GJK travaille dessus.
Si vous avez une coque convexe de n points sur le plan, la fonction de support peut être précalculée en trouvant les bords du polygone de coque et en triant les angles des vecteurs normaux. Chaque sommet de la coque aura deux normales. Va juste séquentiellement et trouve si ta direction est entre ces vecteurs normaux. Cela vous donnerait O (n).
Vous pouvez également modifier l'ordre de comparaison et en faire O (log (n)).
Qu'est-ce que n? Est-ce que cela fait quelque chose pour vous: http://code.google.com/p/gjkd/ ? –
n^2 devrait vraiment être n1 * n2 où nX est le nombre de sommets de la forme X. Quelle est la complexité du GJK en termes de temps? Je cherchais principalement une explication et non une implémentation. J'ai déjà vu le lien mais il n'y a pas de documentation, juste quelques commentaires. –