Code:
P1 = Max( A.TopLeft, B.TopLeft )
P2 = Min( A.BottomRight, B.BottomRight )
dabei ist
Code:
Max( P1, P2 ) : Point
R.x = Max( P1.x, P2.x )
R.y = Max( P1.y, P2.y )
Das Minimum analog dazu
Jetzt muss nur noch die Bedingung erfüllt sein, dass
Code:
P1.x <= P2.x und P1.y <= P2.y
Eine Sonderbedingung ist, wenn P1=P2, dann ist die Schnittmenge ein Punkt
PS
Wichtig ist noch, die Bereiche vor der Analyse zu normalisieren (d.h. TopLeft liegt wirklich auch oben links)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)