punkt i polygon?

, hvordan til at kontrollere, om punkt x, y er inden for en polygon,.,, i polygon, tilsyneladende denne løsning består i at kontrollere, hvor mange gange du kors, en linje til at gå fra punkt x, y - til den ydre kant af skærmen.,,, jeg har aldrig prøvet at læse koden korrekt at forsøge at forstå begrebet,,, jeg ved bare, at det virker.,,, function PtInPoly(const Points: Array of TPoint; X,Y: Integer): Boolean;,, var,, Count,,, I,,, J : Integer;,, begin,, Result := False;,, Count := Length(Points);,, J := Count-1;,, for I := 0 to Count-1 do begin,, if ((Points[I].Y <=Y) and (Y < Points[J].Y)) or,, ((Points[J].Y <=Y) and (Y < Points[I].Y)) then,, begin,, if (x < (Points[j].X - Points[i].X) * (y - Points[i].Y) / , ,, (Points[j].Y - Points[i].Y) + Points[i].X) then,, Result := not Result;,, end;,,, J := I;,, end;,, end;,



Previous:
Next Page: