Nein, gerade das ist ja der Fehler in den Funktionen.
Beispiel: Nimm ein Rechteck, teile es senkrecht in der Mitte, nenne den linken Teil B, den rechten A. Dann haben A und B eine Seite gemeinsam und damit einen nicht-leeren Durchschnitt. Es ist B.Right=A.Left, also
gerade nicht B.Right < A.Left und damit der gesamte Ausdruck mit
and falsch und Deine Funktion liefert ein falsches Ergebnis.
Ich sprach (schrieb) nicht über EIN Rechteck, das wie auch immer durch eine Linie geteilt ist sondern über ZWEI aneinander grenzende Rechtecke.
Bleiben wir trotzdem bei Deinem Beispiel.
Wir haben also ein Rechteck.
Der obere linke Eckpunkt soll bei 5,5 liegen und es soll 60 Pixel breit und 30 Pixel hoch sein.
Nun trennen wir es in der Mitte durch eine senkrechte Linie und nennen den linken Teil B und den rechten Teil A.
Da wir die beiden Rechtecke ja nicht nur denken sondern auch zeichnen wollen, brauchen wir die Koordinaten von A und B.
Wenn wir die haben, zeichnen wir beide Rechtecke mit Canvas.Rectangle, wobei beide Rechtecke einen 1 Pixel breiten Rahmen haben sollen und die Rechtecke und Rahmen sichtbar unterschiedliche Farben haben sollen, damit wir genau sehen wo welches Rechteck beginnt und wo welches endet.
Liefere du bitte die Koordinaten der beiden TRects A und B.