Jak mogę ustalić, czy punkt 2D znajduje się w wielokącie?

Próbuję utworzyć szybki punkt 2D wewnątrz algorytmu wielokąta, do użycia w testowaniu trafień (np Polygon.contains(p:Point).). Docenione zostaną sugestie dotyczące skutecznych