Leksykon IT › Programowanie › Twierdzenie o osi rozdzielającej (SAT)

Twierdzenie o osi rozdzielającej (SAT)

Programowanie Svenska → Zaktualizowano: 2026-10-24

Dwa kształty wypukłe nie nakładają się wtedy i tylko wtedy, gdy istnieje oś, na której ich cienie się nie pokrywają.

Twierdzenie jest szczególnym przypadkiem twierdzenia o oddzielaniu hiperpłaszczyzną z geometrii wypukłej i sprawia, że testy kolizji są zaskakująco proste. Dla dwóch wielokątów wypukłych wystarczy zrzutować oba na skończony zbiór osi kandydujących — normalnych do krawędzi — i sprawdzić, czy na którejkolwiek z nich przedziały się rozchodzą. Znajdziesz lukę — kształty są rozłączne i możesz przestać szukać.

SAT stoi za dużą częścią procedur kolizji 2D w grach właśnie dlatego, że łatwo go poprawnie napisać i zdebugować: oś rozdzielającą można narysować na ekranie. W 3D liczba osi kandydujących rośnie (krawędź względem krawędzi dokłada iloczyny wektorowe) i wiele silników woli wtedy GJK. W gratisie dostajemy też wielkość nakładania — najmniejsze nałożenie na dowolnej osi to głębokość penetracji.

← Wróć do leksykonu