This is a draft Articles for creation (AfC) submission. It is not currently pending review. While there are no deadlines, abandoned drafts may be deleted after
Draft article not currently submitted for review.
This is a draft Articles for creation (AfC) submission. It is not currently pending review. While there are no deadlines, abandoned drafts may be deleted after six months. To edit or make changes to this draft, simply click on the "Edit" tab at the top of the window. To be accepted, a draft should:
It is strongly discouraged to write about either yourself or your business or employer. If you do so, you must declare it. Where to get help
How to improve a draft
You can also browse Wikipedia:Featured articles and Wikipedia:Good articles to find examples of Wikipedia's best writing on topics similar to your proposed article. Improving your odds of a speedy review To improve your odds of a faster review, tag your draft with relevant WikiProject tags using the button below. This will let reviewers know a new draft has been submitted in their area of interest. For instance, if you wrote about a female astronomer, you would want to add the Biography, Astronomy, and Women scientists tags. Editor resources
Last edited by Vkazemi (talk | contribs) 3 months ago. (Update) |
The Expanding Polytope Algorithm (EPA) is a computational geometry algorithm used primarily in physics engines and computer graphics to determine the penetration depth and contact manifold of two intersecting convex shapes (polytopes). [1]
EPA is almost exclusively used in conjunction with the Gilbert-Johnson-Keerthi (GJK) algorithm. While GJK is highly efficient at determining boolean collision (whether two objects intersect), it cannot calculate the depth of the intersection once the objects overlap. EPA takes the geometric data generated by a terminating GJK algorithm and expands it to find the minimum translation vector (MTV) required to separate the objects.
To understand EPA, one must first understand the Minkowski difference, defined for two point sets and as:
Two shapes intersect if and only if their Minkowski difference contains the origin .
The GJK algorithm searches for the origin within the Minkowski difference. If it finds the origin, it terminates and outputs a simplex (a triangle in 2D, or a tetrahedron in 3D) whose vertices lie on the boundary of the Minkowski difference and which wholly encloses the origin.
Once a collision is detected, physics engines need to push the objects apart to resolve the collision. The shortest distance to move them out of collision corresponds to the shortest distance from the origin to the boundary of the Minkowski difference. EPA's function is to "expand" the GJK simplex until it finds this closest boundary point.
The EPA algorithm operates iteratively, expanding the initial polytope outwards toward the boundary of the Minkowski difference.
In the worst-case scenario, EPA has a time complexity of , where is the number of vertices defining the Minkowski difference. However, because it is an iterative algorithm utilizing support functions, its practical performance depends heavily on the complexity of the intersecting shapes and the depth of penetration.
Limitations and challenges:
EPA is a standard algorithm in real-time collision detection systems. It is implemented in nearly all major 3D physics engines, including:
By providing the exact penetration vector and contact points, EPA allows physics engines to apply accurate impulse forces, preventing objects in video games or simulations from sinking into one another.
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.