Algoritma, daha önce bulduğunuz bir yolla başlar, bu durumda üçgenlerin bir listesi:
Mikko'nun blog gönderisinin altındaki kod, yolun çokgenleri arasındaki çizgi parçalarını temsil eden çizgi parçalarının bir listesi olan portals dizisini oluşturur. Bunlar, düzleştirilmiş yolun geçmesi gereken "portallar" dır (veya "çokgen kenar orta noktalarını izleyelim" den çokgen kenarlar). Portallar listesinin, başlangıç ve hedef noktalarında yozlaşmış çizgi parçalarıyla başladığını ve biteceğini unutmayın.
Bu portal listesi, resimlerinde sarı noktalı çizgi parçaları olarak gösterilir.
Algoritma, geniş bir huni ile başlar ve huniyi (AD) sıktığı sürece, huni taraflarını portal yan noktaları (çizgi segmentlerinin uç noktaları) boyunca tekrar tekrar ileriye doğru hareket ettirerek ilerler.
Bu, ileriye doğru yapılan her hareketin huni kenarlarını içe doğru hareket ettirmesi gerektiği anlamına gelir; bu , eski tarafı ve potansiyel yeni tarafı temsil eden vektörlerin çapraz çarpımı ile kontrol edilebilir ( aşağıdaki resimde P × Q ; triarea2
Mikko koduna da bakınız ). Bir taraf için ileriye doğru bir hareket huniyi sıkmazsa, o tarafı portalların mevcut yinelemesi için güncellemeyiz (E).
Ele alınması gereken diğer bir durum, huninin bir çizgi segmentine yozlaşmasıdır. Bu algoritma, kontroller için hesap için iki yandan biri, yine huni apeks ve sırasıyla sağ ve sol yan uç noktaları ile (yapılan vektörler bu kez çapraz ürün kullanılarak "yanlış" tarafında ise R, X S bölgesindeki aşağıdaki resim).
Bu durumda, huni tepesindeki vektör ve doğru yan uç noktasından düzeltilmiş yola ( yukarıdaki resimde R ) eklenir ve algoritma, yeni apeks (FG) olarak bitiş noktasıyla yeniden başlatılır, Tabii ki, hedef noktası ise.