Como posso determinar se um ponto 2D está dentro de um polígono?

Estou tentando criar um ponto 2D rápido dentro do algoritmo de polígono, para uso em testes de impacto (por exemplo Polygon.contains(p:Point)). Sugestões para técnicas eficazes seriam