Minimales begrenzendes Rechteck der 2D-Form nach Koordinaten berechnen

8

Ich habe eine Lösung, die räumliche Daten verwendet, um einen Cluster von Punkten auf einer Karte darzustellen. Ich muss die Koordinaten verwenden, die die Ausdehnungen eines Clusters darstellen, um das minimale Begrenzungsrechteck zu finden, das dieses Cluster von Punkten enthalten kann.

Gibt es einen einfachen Algorithmus, um dies berechnen zu können oder gibt es eine eingebaute Funktionalität in C #, um dies zu erreichen? Ich bin mir der NetTopologySuite bewusst, bin mir aber nicht sicher, ob / wie ich dies zum Erreichen des gleichen Ziels nutzen könnte. Ich habe eine Liste von Koordinaten, also müsste ich diese Liste von Strings hineingeben und den MBR herausholen.

    
CSharpened 27.01.2012, 09:10
quelle

3 Antworten

10

Die einfachste Lösung, und ich nehme an, die, nach der Sie am wahrscheinlichsten suchen, ist die Berechnung der achsgerechten Begrenzungsbox, bei der einfach die Min / Max-X & amp; y Werte, dann baut man eine Box aus diesen.

Ich gebe Ihnen Pseudocode dafür, da Sie nicht die Typen gepostet haben, in denen Ihre Geometrie ausgedrückt wird ...

%Vor%

So gegeben:

%Vor%

Alle folgenden Aussagen treffen zu:

%Vor%

Wenn das Koordinatensystem natürlich die niedrigsten Koordinaten oben hat (z. B. wie eine typische Anzeige), dann müssen Sie die Berechnung invertieren; oder berechnen Sie das Ergebnis zuerst im Objektraum und übersetzen Sie anschließend in den logischen Raum.

Beachten Sie, dass ich einen Typ für die Box gewählt habe, die alle vier Ecken ausdrückt, für den Fall, dass Sie in Zukunft auf eine beliebig ausgerichtete Box aktualisieren möchten (obwohl Sie aus demselben Grund auch einen Punkt + verwenden könnten) 2 Vektoren dafür).

    
Andras Zoltan 27.01.2012, 09:37
quelle
6

Eine mögliche, wenn auch einfache Möglichkeit, dies zu tun, könnte so aussehen:

%Vor%

Dies setzt natürlich voraus, dass Sie nach einem Rechteck suchen, das vertikal und horizontal ausgerichtet ist. Wenn Sie also nach dem kleinstmöglichen Rechteck suchen, egal wie es gedreht wird, ist das nichts für Sie.

    
Nailuj 27.01.2012 09:32
quelle
0

Versuchen Sie G # bei Ссылка

Es hat eine minimale Fläche und einen minimalen Umfang, der Rechtecke und auch minimale einschließende Kreise einschließt.

    
wackmc 04.11.2012 23:10
quelle

Tags und Links