GJK et EPA, la détection de collision
Plutôt que de chercher si deux formes convexes se recouvrent, GJK regarde leur différence de Minkowski : elles se touchent si et seulement si cet ensemble contient l'origine. Deux vues côte à côte, les formes qu'on déplace au doigt et la différence où l'algorithme travaille vraiment, et le curseur construit le simplexe appui par appui. Quand il y a contact, EPA prend le relais et gonfle le simplexe jusqu'au bord pour donner la profondeur et la direction du plus petit déplacement qui sépare. Le disque n'a aucun sommet et rien ne le distingue des polygones : GJK ne connaît d'une forme que son point le plus loin dans une direction.
Canvas 2D · différence de Minkowski · simplexe · EPA
La bibliothèque d'origine, en 2D et en 3D pour Babylon.js, écrite chez Wanadev : wanadev/collision-gjk-epa. Ce lab en reprend le principe, à plat, pour qu'il se regarde.