Einzelnen Beitrag anzeigen

JayZ

Registriert seit: 14. Mai 2016
34 Beiträge
 
#1

Zwei Vier-Ecke subtrahieren

  Alt 21. Feb 2017, 22:45
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
Miniaturansicht angehängter Grafiken
expl.png  

Geändert von JayZ (21. Feb 2017 um 22:50 Uhr)
  Mit Zitat antworten Zitat