hallo freunde
ich habe eine struktur die so ähnlich ist wie TRect einfach nur mit weniger funktionen:
Delphi-Quellcode:
TViereck = record
x, y, width, height : integer;
function getX2() : integer; // rechnet x + width
function getY2() : integer; // rechnet y + height
end;
function Viereck(x,y,width,height:integer);
begin
Result.x := x;
Result.y := y;
Result.width := width;
Result.height := height;
end;
ich habe auch eine funktion die die intersection von 2 vier-ecken zurückgibt:
Delphi-Quellcode:
function RectIntersection(a, b : TViereck) : TViereck;
begin
Result := Viereck(max(a.x, b.x)),
max(a.y, b.y),
min(a.x2(), b.x2()),
min(a.y2(), b.y2()));
result.width -= result.x;
result.height -= result.y;
end;
Nun überelge ich schon seit stunden wie ich die 2 vierecke subtrahieren kann also das eine vom anderen abziehen könnte... ich weiss das je nach welche vierecke da benutzz werden auch mehrere als nur ein viereck zurückgegeben wird aber ich komme nicht drauf wie ich das machen soll.... ich habe schon einiges versucht aber habe nur sachen rausbekommen die gar keinen sinn ergeben und ich verzweifle schon fast... habe meinen vater schon gefragt aber er ist kein informatiker oder programmierer und weiss leider auch nicht wie man das lösen soll =(
könnte mir einer helfen? wäre sehr dankbar für alles, brauche nicht unbedingt eine fertige code lösung einfach jemanden der mein verwurstet gehirn auf die sprünge hilft =)
danke und einen guten abend noch! =D
edit:
habe ein erkerungsbild eingefügt