Hallo,
eine sehr einfache Lösung könnte die Nutzung des Windows-
API sein (ungetestet!):
Delphi-Quellcode:
function PtInPoly (const aPoly: array of TPoint; x, y: Integer): Boolean;
var lRgn: HRGN;
begin
lRgn := CreatePolygonRgn(aPoly, Length(aPoly), WINDING);
Result := PtInRegion(lRgn, x, y);
DeleteObject(lRgn);
end;
Die Funktion
CreatePolygonRgn soll allerdings bei einer großen Anzahl von Punkten ziemlich langsam sein. In diesem Fall wirst du auf andere Algorithmen zurückgreifen müssen.
Gruß Hawkeye