Seite 1 von 1

turtle ying-yang

Verfasst: Dienstag 13. Mai 2008, 19:42
von deep
hallo zusammen,
ihr habt mir schonmal so gut geholfen und nun hoffe ich, dass ihr mir auch dieses Mal weiter helfen koennt^^

Aufgabe:
Schreibe eine Prozedur kreissymbol, welche die rechte der obenstenden Figuren erzeugt; dabei soll radius der Parameter des kleinen Kreisradius sein.
(Originaltext, die sind bei uns immer so komisch)

meine Lösung:

Code: Alles auswählen

def yingyang(radius):
    fill(1)
    left(90)
    circle(radius,180)
    left(180)
    circle(radius,-180)
    circle(radius*2,180)
    fill(0)
    left(90)
    forward(radius/2)
    right(90)
    fill(1)
    color('white')
    circle(radius/2)
    fill(0)
    left(90)
    up()
    forward(radius*2)
    right(90)
    down()
    fill(1)
    color('black')
    circle(radius/2)
    fill(0)
    left(90)
    up()
    forward(radius+radius/2)
    down()
    left(90)
    circle(radius*2)
klappt auch wunderbar, allerdings ist der code so unübersichtlich, dass der mir selber nicht gefällt (und das ist ziemlich selten :roll: )
Wie kann ich das Ganze also etwas übersichtlicher machen?

deep

Re: turtle ying-yang

Verfasst: Dienstag 13. Mai 2008, 20:08
von numerix
deep hat geschrieben:Aufgabe:
Schreibe eine Prozedur kreissymbol, welche die rechte der obenstenden Figuren erzeugt; dabei soll radius der Parameter des kleinen Kreisradius sein.
(Originaltext, die sind bei uns immer so komisch)
Das "komischste" an der Aufgabenstellung ist die "rechte der obenstenden(!) Figuren". Ich nehme an, gemeint ist "obenstehend", aber anders als vermutlich auf dem Originalaufgabenblatt gibt es diese Figur hier nicht.
Dem Titel des Threads könnte man nun entnehmen, dass es sich dabei vielleicht um die dort benannte Figur handeln könnte ...

Jedenfalls: Meines Erachtens lässt sich am Code nicht viel machen. Es ist eben eine Abfolge bestimmter Bewegungen mit der Turtle zu vollziehen. Man könnte die Figur natürlich auch noch auf andere Weisen zusammensetzen, aber ich glaube nicht, dass der Code dadurch "besser" wird, nur eben anders.

Re: turtle ying-yang

Verfasst: Dienstag 13. Mai 2008, 20:18
von deep
pütone hat geschrieben:
deep hat geschrieben:Aufgabe:
Schreibe eine Prozedur kreissymbol, welche die rechte der obenstenden Figuren erzeugt; dabei soll radius der Parameter des kleinen Kreisradius sein.
(Originaltext, die sind bei uns immer so komisch)
Das "komischste" an der Aufgabenstellung ist die "rechte der obenstenden(!) Figuren". Ich nehme an, gemeint ist "obenstehend", aber anders als vermutlich auf dem Originalaufgabenblatt gibt es diese Figur hier nicht.
Dem Titel des Threads könnte man nun entnehmen, dass es sich dabei vielleicht um die dort benannte Figur handeln könnte ...
Die Figur auf dem Aufgabenblatt sieht genau so aus wie der Code sie 'zeichnet'.
Dann muss ich damit wohl glücklich werden, vielen dank für die rasche Antwort :)

Verfasst: Dienstag 13. Mai 2008, 20:19
von numerix
Eine Kleinigkeit ist mir doch noch eingefallen, ob es eine Verbesserung ist, überlasse ich dir:

Code: Alles auswählen

def yingyang(radius):

    def ying(col):
        down()
        right(90)
        fill(1)
        color(col)
        circle(0.5*radius)
        fill(0)
        left(90)
        up()

    fill(1)
    left(90)
    circle(radius,180)
    left(180)
    circle(radius,-180)
    circle(2*radius,180)
    fill(0)
    left(90)
    forward(0.5*radius)
    ying('white')
    forward(2*radius)
    ying('black')
    forward(1.5*radius)
    right(90)
    down()
    circle(-2*radius,180)