Leksykon IT › Programowanie › Algorytm lejka (funnel algorithm)

Algorytm lejka (funnel algorithm)

Programowanie Svenska → Zaktualizowano: 2026-10-25

Wyznacza prawdziwie najkrótszą ścieżkę przez korytarz trójkątów navmesha, gdy wyszukiwanie ścieżki ustaliło już, które trójkąty trasa przecina.

A* na navmeshu daje listę trójkątów, a nie ścieżkę. Naiwne łączenie środków trójkątów daje niepotrzebnie długi zygzak. Algorytm lejka traktuje natomiast wspólne krawędzie kolejnych trójkątów jako ciąg portali i rozpina lejek między lewą a prawą stroną. Zawęża go krawędź po krawędzi; gdy tylko lewa i prawa strona się przetną, w najbardziej wewnętrznym narożniku stawia punkt trasy i zaczyna nowy lejek od tego miejsca. Efekt przypomina naciąganie sznurka wzdłuż korytarza.

Podstawy położyli Hershberger i Snoeyink (1994); świat gier zna go głównie dzięki zwartemu „simple stupid funnel algorithm” Mikko Mononena. To oczywisty etap końcowy między przeszukaniem trójkątów a linią, którą agent faktycznie przechodzi.

← Wróć do leksykonu