Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   C# Überschneidung zweier Quadrate (https://www.delphipraxis.net/155508-ueberschneidung-zweier-quadrate.html)

implementation 26. Okt 2010 18:25

Überschneidung zweier Quadrate
 
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 :gruebel:
Nur, wenn ich sie vorher klone, gibt es Probleme.
Das soll mal einer verstehen ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz