in einem anderem Beitrag hat Winni untenstehende Funktion gepostet.
siehe viewtopic.php?f=29&t=13252
Leider habe ich keine Ahnung wie man mit PointF umgeht bzw. wie man damit ein Polygon zeichnet.
Welches Package muss ich da benutzen und gibt es da irgendwo eine Wiki? Hab leider nichts gefunden.
Code: Alles auswählen
function PointInPoly(p : TPointF; const poly : array of TPointF) : Boolean;
var i,k : integer;
Begin
result := false;
k := High(poly);
For i := 0 to high(poly) do begin
if (
( ((poly[i].y <= p.y) and (p.y < poly[k].y)) or ((poly[k].y <= p.y) and (p.y < poly[i].y)) ) and
(p.x < ((poly[k].x - poly[i].x) * (p.y - poly[i].y) / (poly[k].y - poly[i].y) + poly[i].x) )
) then result := not result;
k := i
end;
end;
Viele Grüße
Bernd