Einzelnen Beitrag anzeigen

Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#14

Re: Überprüfung, ob sich Rechtecke schneiden

  Alt 28. Jun 2007, 19:18
Hallo Nikolas,

wenn du keine rein mathematische Lösung mehr findest, kannst du auch auf die Regionen-Befehle der WinAPI ausweichen:

Delphi-Quellcode:
function RectPolygonIntersect (const R: TRect; const P: array of TPoint): Boolean;
var
  RectRgn : HRGN;
  PolyRgn : HRGN;
begin
  RectRgn := CreateRectRgnIndirect(R);
  PolyRgn := CreatePolygonRgn(P[0], Length(P), WINDING);
  Result := (CombineRgn(RectRgn, RectRgn, PolyRgn, RGN_AND) <> NULLREGION);
  DeleteObject(PolyRgn);
  DeleteObject(RectRgn);
end;
Sollte sich diese Lösung als zu langsam erweisen, hilft vielleicht ein vorgeschalteter BoundingBox-Test, so wie es bereits in den vorigen Beiträgen vorgeschlagen wurde.

Gruß Hawkeye
  Mit Zitat antworten Zitat