¿Cómo puedo determinar si un punto 2D está dentro de un polígono?

Estoy tratando de crear un punto 2D rápido dentro del algoritmo de polígono, para usar en pruebas de impacto (por ejemplo Polygon.contains(p:Point)). Se agradecerán sugerencias para técnicas