Ich habe viele horizontale und vertikale Linien, die Rechteck wie in diesem Beispiel bilden.Bei vielen horizontalen und vertikalen Linien, wie findet man alle Rechtecke, in denen sich ein Unterrechteck befindet?
Gibt es einen Algorithmus oder Code, der jedes Rechteck lokalisieren kann, die nicht ein weiteres Rechteck enthält. Ich meine, das größte Rechteck in diesem Bild ist kein Rechteck, nach dem ich suche, weil es andere Rechtecke enthält.
Die Rechtecke, nach denen ich suche, müssen leer sein. Ich habe eine Liste der Startpunkte und Endpunkte jeder Zeile wie (a, b) bis (c, d). Ich möchte als Ergebnis eine Liste von Rechtecken (x, y, w, h) oder gleichwertig.
Beachten Sie, dass einige Linien Linien haben, die sie im rechten Winkel schneiden, zum Beispiel ist die obere Linie des breitesten Rechtecks in diesem Bild eine einzelne Linie, die eine sich schneidende vertikale Linie nach unten hat.
welche Liste, etwas wie '[((x1, y1), (x1, y2)), ((x1, y2), (x1, y3)), ((x1, y1), (x1, y3)), ...] '? – Aprillion
Malen Sie Ihren Bereich mit Flood-Fill-Methode von allen weißen Punkten. Jeder Bereich mit 4 Ecken wäre das gewünschte Rechteck. –
Es ist kein Bitmap-Bild, ich habe nur eine Liste von horizontalen und vertikalen Linien. Keine Flutfüllung. Nicht sicher, was Sie mit der Liste mit y1, y2, y3 erhöhen, ich brauche nur eine Liste von Rechtecken als Ergebnis, aber es ist vertreten. – Phil