Einzelnen Beitrag anzeigen

Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#1

Überschneidung zweier Quadrate

  Alt 26. Okt 2010, 18:25
Ich habe nun mehrere Quadrate. Diese Quadrate müssen jedoch nicht immer gleich weit gedreht sein.
So ist z.B. eines um 30° gedreht, ein weiteres nicht.
Von jedem dieser Quadrate habe ich vorliegen:
a) Den Drehwinkel.
b) Den Mittelpunkt / Schnittpunkt der Diagonalen.
c) Die Eckpunkte.
d) Eine System.Drawing.Region, die den Bereich enthält.

Ermitteln möchte ich, ob sich zwei der Quadrate überschneiden.

Ich hatte mir gedacht, ich könnte die Regionen ja einfach mit Region.Intersect() vergleichen.
Jedoch funktioniert das nicht so ganz.
Meine kleine Testroutine soll einen Dialog ausspucken, wenn die Schnittregion leer ist:
Code:
System.Drawing.Region reg = Quadrat1.Region.Clone();
    reg.Intersect(Quadrat2.Region);
    if (!reg.IsEmpty(CreateGraphics()))
        MessageBox.Show("Intersect!");
Die MessageBox wird niemals angezeigt.

Was mache ich falsch?
Was könnte ich ändern?
Gibt es noch andere Lösungswege?

[edit]
Seltsam. Wenn ich die Region-Eigenschaft direkt verwende, klappt es sogar
Nur, wenn ich sie vorher klone, gibt es Probleme.
Das soll mal einer verstehen ...

Geändert von implementation (26. Okt 2010 um 18:44 Uhr)
  Mit Zitat antworten Zitat