Leksykon IT › Programowanie › Punkt w wielokącie (point in polygon)

Punkt w wielokącie (point in polygon)

Programowanie Svenska → Zaktualizowano: 2026-10-26

Klasyczny test geometryczny sprawdzający, czy dany punkt leży wewnątrz wielokąta, czy na zewnątrz.

Zwykłe rozwiązanie to raycasting: wypuszczamy z punktu promień w dowolnym kierunku i liczymy, ile krawędzi wielokąta przecina — nieparzysta liczba oznacza wnętrze, parzysta zewnętrze. Alternatywą jest liczba nawinięć (winding number), która sumuje, ile razy wielokąt okrąża punkt, i radzi sobie też z figurami samoprzecinającymi się. Obie metody działają w czasie liniowym względem liczby krawędzi.

Test leży u podstaw wykrywania trafień w grach 2D, kliknięć w przyciski o nieregularnym kształcie, geofencingu i GIS. Dla wielokątów wypukłych wystarczy prostszy test znaku względem każdej krawędzi; w ciężkich przypadkach wielokąt jest wstępnie przetwarzany lub indeksowany przestrzennie.

← Wróć do leksykonu