Seite 1 von 1

aneinanderreihen von rechtecken

Verfasst: Mittwoch 12. März 2014, 15:10
von nadine_83
Hallo. Mein Problem ist bestimmt simpel, aber irgendwie komme ich nicht dahinter:
Ich habe ein großes Rechteck von der Größe 5x5. In diesem befindet sich ein kleines rechteck mit einer größe von 1x1. Wie schaffe ich es jetzt, dass das große Rechteck von diesen kleinen ausgefüllt wird? Ich habe über eine for-Schleife nachgedacht!?!

Vielen Dank!

Re: aneinanderreihen von rechtecken

Verfasst: Mittwoch 12. März 2014, 15:26
von BlackJack
@nadine_83: Was bitte ist ein „Rechteck” in diesem Zusammenhang?

Re: aneinanderreihen von rechtecken

Verfasst: Mittwoch 12. März 2014, 15:29
von snafu
Wenn es dafür keine spezielle Funktion gibt, dann denk doch mal logisch: Das kleinere Rechteck soll ja vermutlich mittig im größeren Rechteck sitzen. Also könntest du zunächst den Mittelpunkt bestimmen (Seitenlängen jeweils halbieren). Von dieser Stelle gehst du dann um Höhe / 2 und Breite / 2 (beides bezogen auf des kleinere Rechteck) in Richtung Nullpunkt des Koordinatensystems. Und dort kannst du dann das kleinere Rechteck zeichnen.

Ist jedenfalls der Weg, der mir als erstes einfallen würde. Vielleicht gibt es einen anderen / besseren. Ich fand mein Vorgehen aber erstmal am naheliegendsten.

Re: aneinanderreihen von rechtecken

Verfasst: Mittwoch 12. März 2014, 15:35
von BlackJack
@snafu: Interessant was Du in die Frage hinein interpretierst. Wie so mehrere kleine Rechtecke ein Grosses ausfüllen sollen, ist mir allerdings nicht ganz klar geworden. ;-)

Re: aneinanderreihen von rechtecken

Verfasst: Mittwoch 12. März 2014, 16:41
von snafu
Ok, hab die Frage falsch verstanden... :oops:

Re: aneinanderreihen von rechtecken

Verfasst: Donnerstag 13. März 2014, 07:58
von BlackJack
@nadine_83: Wie man sieht kann man eigentlich nur raten. Aber ich versuche es auch mal: Kann es sein, dass Du einfach nur zwei verschachtelte ``for``-Schleifen suchst? Beziehungsweise `itertools.product()`?

Code: Alles auswählen

#!/usr/bin/env python
from itertools import product


def main():
    print 'Nested ``for`` loops:'
    for i in xrange(5):
        for j in xrange(5):
            print i, j
    print
    print '`itertools.product()`:'
    for i, j in product(xrange(5), xrange(5)):
        print i, j


if __name__ == '__main__':
    main()

Re: aneinanderreihen von rechtecken

Verfasst: Dienstag 18. März 2014, 16:50
von nadine_83
Danke erstmal für die Antworten. Das mit den zwei for-schleifen habe ich mit schon gedacht. Die Größe des ersten Quadrates ist 0,2x0,2. Jetzt habe ich mir gedacht, dass ich diese einfach solange wiederhole, bis die 5 erreicht wird. ungefähr so:

Code: Alles auswählen

for a in xrange(5):
	for b in xrange(5):
		if groesse <= 5:
			groesse +=groesse
Dabei definieren "a" und "b" das große Quadrat und "groesse" ist mein kleines Quadrat.
Liege ich in irgendeiner Weise richtig damit? Ich bin mir bei der Wiederholung nicht so sicher, wie ich diese darstellen kann.

Re: aneinanderreihen von rechtecken

Verfasst: Dienstag 18. März 2014, 17:20
von BlackJack
@nadine_83: Beschreibe doch mal das gesamte Problem. In ganzen Sätzen und ohne Lösungsansatz. Das mit der `grösse` macht jedenfalls keinen Sinn. Und nochmal die Frage was ist für Dich ein Rechteck? Aus welchen Informationen setzt sich das zusammen? Was bedeutet „aneinanderreihen”?

Re: aneinanderreihen von rechtecken

Verfasst: Dienstag 18. März 2014, 18:00
von nadine_83
Ich habe das Problem - versucht - graphisch darzugestellen (Zeilennummern nicht beachten!). Die Sternchen zeigen was ich habe und die Kreuze, was ich am Ende haben möchte. Die Position der Sternchen bilden ein eigenes Rechteck/Quadrat. Die komplette Breite und Länge beträgt 5cm (vom ersten Sternchen links oben bis zum letzten Kreuz in der ersten Zeile und letzten Spalte).

Code: Alles auswählen

*       *         +        +         +         +

    *       +        +        +         +

*       *         +        +         +         +

    +       +         +        +         +  

+       +       +        +         +           +

Re: aneinanderreihen von rechtecken

Verfasst: Dienstag 18. März 2014, 18:43
von /me
nadine_83 hat geschrieben:Die komplette Breite und Länge beträgt 5cm (vom ersten Sternchen links oben bis zum letzten Kreuz in der ersten Zeile und letzten Spalte).
Woher nimmst du die Angabe in Zentimeter? Was ist dein Ausgabemedium? Das sieht irgendwie aus, als würdest du ein grafisches Toolkit dafür einsetzen (wollen).

Die Ausgabe als solche lässt sich ja leicht erzeugen (Python 3).

Code: Alles auswählen

def paint_square(size):
    line = ' '.join('*' for _ in range(size))
    for row in range(size):
        print(line if row % 2 == 0 else ' ' + line[:-2])


def main():
    paint_square(5)


if __name__ == '__main__':
    main()
Irgendwie scheint da aber mehr berücksichtigt werden zu müssen was du bisher nicht gesagt hast.

Re: aneinanderreihen von rechtecken

Verfasst: Dienstag 18. März 2014, 18:54
von BlackJack
@nadine_83: Was heisst Du hast die Sternchen? Hast Du für jedes Sternchen ein Tupel mit Zahlen die den Punkt in einem Koordinatensystem darstellen? Oder ein Objekt das ein Rechteck modelliert? Oder irgend etwas ganz anderes?

Was möchtest Du denn eigentlich machen? Also was ist das Problem was Du hier zu lösen versuchst? Mit dem Wunsch aus Sternchen und Kreuzchen Rechtecke oder Quadrate zu machen, was immer das auch bedeuten mag, wacht man doch nicht eines morgens einfach so auf. ;-)

Re: aneinanderreihen von rechtecken

Verfasst: Mittwoch 19. März 2014, 13:30
von nadine_83
Die Sternchen stehen für ein Tupel mit Zahlen in einem Koordinatensystem und ich möchte, dass diese Sternchen solange wiederholt werden, bis sie einen Wert von fünf erreichen.

Re: aneinanderreihen von rechtecken

Verfasst: Mittwoch 19. März 2014, 13:37
von BlackJack
@nadine_83: Kannst oder willst Du nicht mal komplett verraten um was es hier geht, welche Daten Du hast, wie die aussehen, wo die herkommen, was Du damit machen willst, wie das Ergebnis aussehen soll, und vor allem *warum* Du das überhaupt machen willst?

Mit jeder Information die man Dir aus der Nase ziehen muss, kommen eigentlich nur noch mehr Fragen auf, statt Klarheit darüber was das Problem ist welches gelöst werden soll.