Das mit dem Multiplizieren wäre möglich, aber äußerst unschön, außerdem müsste ich dann immer erst TRects erstellen.
Diese Funktion liefert zumindest bei gleichen Rechtecken "true", aber ich glaube sonst nicht immer:
Delphi-Quellcode:
function RectIntersectFloat(P1x, P1y, P1sizeX, P1sizeY, P2x, P2y, P2sizeX, P2sizeY: Extended):Boolean;
begin
result := true;
if (P1x >= P2x+P2sizeX) or
(P1y >= P2y+P2sizeY) or
(P2x >= P1x+P1sizeX) or
(P2y >= P1y+P2sizeY) then result:=false;
end;
Wobei sie nach meinen Überlegungen richtig sein müsste... ich schau mal.
_____
Cool, Hawkeye schau ich mir mal an!
Edit: Die Funktion tuts auch:
Delphi-Quellcode:
function RectIntersectFloat(P1x, P1y, P1sizeX, P1sizeY, P2x, P2y, P2sizeX, P2sizeY: Extended):Boolean;
begin
result := true;
if (P1x > P2x+P2sizeX) or
(P1y > P2y+P2sizeY) or
(P2x > P1x+P1sizeX) or
(P2y > P1y+P2sizeY) then result:=false;
end;
Es sei denn ich habe irgendeinen speziellen Testfall übersehen! Wenn doch nicht melde ich mich nochmal! Danke!