Das Zeichnen von Kirschblüten mit Python-Code ist einfach, Tutorial zum Zeichnen von Kirschblüten mit Python-Code

In diesem Artikel geht es darum, wie einfach es ist, Kirschblüten mit Python-Code zu zeichnen, und es gibt ein Tutorial zum Zeichnen von Kirschblüten mit Python-Code. Ich hoffe, es hilft Ihnen weiter. Vergessen Sie nicht, diese Website mit einem Lesezeichen zu versehen.

Vorwort Meine Lieblingsfarbe
ist Pink! Der Python-Kirschblütenbaum wartet auf Sie ~
Hallo Freunde, es ist lange her, seit wir uns das letzte Mal getroffen haben. Die Kirschblüten blühen in letzter Zeit so schön. Der Blogger möchte die Freude des Frühlings mit allen teilen. Werfen wir einen Blick darauf Kirschblütenbaum gemalt vom Blogger!

1. Schildkröten-Grundlagen

老生常谈啦,在用python画樱花树前,我们先来了解一下turtle吧!

Turtle ist ein wichtiges Paket (eingebautes Paket) zum Zeichnen in Python. Es enthält eine Fülle von Zeichenwerkzeugen und verschiedenen Zeichenfunktionen. Nachdem Sie gelernt haben, mit Turtle zu zeichnen, können Sie jedes gewünschte Muster zeichnen. Oh.

1.1 Turtle-Zeichenfläche
Die Größe der Zeichenfläche von Turtle kann mit der Funktion „turtle.screensize()“ eingestellt werden

turtle.screensize(width,height,bg)

Legen Sie die Größe der Zeichenfläche fest, einschließlich Breite und Höhe. Breite ist die Breite, Höhe ist die Höhe und BG ist die Leinwandfarbe.

1.2 Schildkrötenbürste
Die Schildkrötenbürste hat mehrere häufig verwendete Funktionen:

①turtle.penup(): Heben Sie den Pinsel an. Zu diesem Zeitpunkt hinterlässt das Bewegen des Pinsels keine Spuren auf der Leinwand.
②turtle.pendown(): Legen Sie den Pinsel entsprechend Turtle.penup ab. Sie können mit dem Malen fortfahren, nachdem Sie ihn abgelegt haben Pinsel (legen Sie ihn ab, nachdem der Pinsel beim Malen Spuren auf der Leinwand hinterlassen hat)
③turtle.pensize(): Steuern Sie die Größe des Pinsels (Sie können die Größe des Pinsels entsprechend Ihren Anforderungen definieren)
④turtle.pencolor(): Steuern Sie die Farbe des Pinsels (Sie können alle Pinsel online überprüfen. Es gibt viele Farben, die in Python verwendet werden können)
⑤turtle.hideturtle(): Pinsel ausblenden (nachdem Sie den Pinsel ausgeblendet haben, sehen Sie ihn beim Zeichnen nicht)

1.3 Schildkrötenzeichnung
Beim Zeichnen verwenden wir häufig einige einfache Bewegungsfunktionen:

①turtle.forward(x): Bewegen Sie den Pinsel um x Pixel vorwärts (x kann als Abstand verstanden werden)
②turtle.backward(x): Bewegen Sie den Pinsel um x Pixel zurück (x kann als Abstand verstanden werden)
③turtle.left(n): Drehen den Pinsel um n Grad nach links drehen
④ Turtle.right(n): Drehen Sie den Pinsel um n Grad nach rechts
⑤ Turtle.speed(): Legen Sie die Geschwindigkeit des Pinselzeichnens fest (1~10 erhöht, 0 ist die schnellste)

1.4 Schildkrötenfärbung


Nachdem wir das Bild gezeichnet haben, müssen wir es oft mit Farbe füllen. Hier können Sie die Funktion Turtle.fillcolor() verwenden. Schreiben Sie die Farbe, die Sie füllen möchten, in die Klammern, um C+ oder Python zu lernen .
Achten Sie bei der Verwendung der Funktion Turtle.fillcolor() auf deren Grundformat:
turtle.beginfill()     #开始填充
turtle.fillcolor()      #输入填充的颜色
turtle.endfill()        #结束填充

1.5 Schildkrötenschrift

Nachdem wir die gesamte Zeichnung fertiggestellt haben, können wir zum Schreiben die Funktion Turtle.write () verwenden

turtle.write(" ",move,align,font)

2. Python-Sakura-Baum

简单的了解turtle小海龟后,我们就可以步入今天的主题啦!

2.1 Sakura-Kategorie

Da es sich um einen Kirschblütenbaum handelt, muss er mit Kirschblüten bemalt werden. Hier habe ich mich für eine fünfblättrige Kirschblüte entschieden.

def flower():  
    tu.hideturtle() 
    tu.pensize(2)  
    tu.pencolor("pink")
    flowersize = ra.randint(1,5)  
    for j in range(5):  
        tu.forward(int(flowersize))
        tu.backward(int(flowersize))
        tu.right(72)

2.2 Sakura-Baum

Nachdem die Kirschblüten gezeichnet wurden, können wir den Baum rekursiv zeichnen.

def tree(n,k):
    tu.pendown()  
    tu.pencolor("black")
    tu.pensize(n/4)
    tu.forward(k)  
    if n>0:
        r=ra.random()*10+10
        l=ra.random()*10+10
        x=k*(ra.random()*0.25+0.7)  
        tu.right(r)
        tree(n-1,x)
        tu.left(l+r)
        tree(n-1, x)
        tu.right(l)
    else:
        tu.right(90)
        flower()
        tu.left(90)
        tu.pu()
        t=tu.heading()
        s=-ra.random()
        tu.setheading(s)
        x=ra.randint(1,5)
        tu.forward(x)
        tu.setheading(t)
        tu.pd()
        tu.right(90)
        flower()
        tu.left(90)
        tu.pu()
        t=tu.heading()
        tu.setheading(s)
        tu.backward(x)
        tu.setheading(t)
    tu.penup()
    tu.backward(k) 

2.3 Hauptfunktion

Schließlich benötigen wir eine Hauptfunktion, um den Kirschblütenbaum zu implementieren

tu.setup(800,480)
tu.bgcolor("lavenderblush") 
tu.hideturtle()  
tu.tracer(0)
tu.penup()  
tu.goto(0,-150)
tu.pendown()
tu.left(90)  
tree(12,50)
for i in range(99):
    tu.penup()
    tu.goto(ra.randint(-150,150),ra.randint(-150,0))
    tu.pendown()
    flower()

2.4 Programmanalyse

Lassen Sie uns den Sakura Tree-Code im Detail analysieren!

  1. Importieren Sie Turtle- und Random-Bibliotheken
    import turtle as tu
    import random as ra
    

    Im Code wird die Schildkrötenbibliothek zum Zeichnen und die Zufallsbibliothek zum zufälligen Generieren von Werten verwendet.

  2. Blumenfunktion definieren
    def flower():  
        tu.hideturtle() 
        tu.pensize(2)  
        tu.pencolor("pink")
        flowersize = ra.randint(1,5)  
        for j in range(5):  
            tu.forward(int(flowersize))
            tu.backward(int(flowersize))
            tu.right(72)
    

    Mit der Blumenfunktion wird eine Blume gezeichnet. Verstecken Sie zunächst die Schildkröte und legen Sie die Stiftgröße und -farbe fest. Ermitteln Sie dann mithilfe von Zufallszahlen die Größe der Blume und zeichnen Sie 5 Blütenblätter in einer Schleife.

  3. Baumfunktion definieren
    def tree(n,k):
        tu.pendown()  
        tu.pencolor("black")
        tu.pensize(n/4)
        tu.forward(k)  
        if n>0:
            r=ra.random()*10+10
            l=ra.random()*10+10
            x=k*(ra.random()*0.25+0.7)  
            tu.right(r)
            tree(n-1,x)
            tu.left(l+r)
            tree(n-1, x)
            tu.right(l)
        else:
            tu.right(90)
            flower()
            tu.left(90)
            tu.pu()
            t=tu.heading()
            s=-ra.random()
            tu.setheading(s)
            x=ra.randint(1,5)
            tu.forward(x)
            tu.setheading(t)
            tu.pd()
            tu.right(90)
            flower()
            tu.left(90)
            tu.pu()
            t=tu.heading()
            tu.setheading(s)
            tu.backward(x)
            tu.setheading(t)
        tu.penup()
        tu.backward(k) 
    

    Mit der Baumfunktion wird ein Baum gezeichnet. Der Parameter n repräsentiert die Höhe des Stammes und k repräsentiert die Länge des Stammes. Versetzen Sie in der Funktion zunächst die Schildkröte in den Stift-Down-Zustand, legen Sie die Farbe und die Stiftgröße fest und zeichnen Sie den Rüssel. Wenn n > 0, verwenden Sie Zufallszahlen, um den Winkel, die Länge und den zufälligen Skalierungskoeffizienten des Zweigs zu generieren, drehen Sie ihn dann um den Winkel r nach rechts, rufen Sie rekursiv die Baumfunktion auf, um den rechten Zweig zu zeichnen, drehen Sie ihn um den Winkel l + r nach links und rekursiv Rufen Sie die Baumfunktion auf, um den linken Zweig zu zeichnen, und biegen Sie schließlich nach rechts ab, um den Winkel l wiederherzustellen. Wenn n=0, bedeutet dies, dass der Stamm die Spitze erreicht hat und die Blütenblätter gezeichnet werden müssen. Zeichne zwei Blumen, der Abstand zwischen ihnen und der Abstand dahinter werden durch Zufallszahlen generiert. Versetzen Sie die Schildkröte dann in den Stift-up-Zustand und kehren Sie in die Ausgangsposition des Stammes zurück, um das Zeichnen eines weiteren Baumes vorzubereiten.

  4. Leinwand einrichten
    tu.setup(800,480)
    tu.bgcolor("lavenderblush") 
    tu.hideturtle()  
    tu.tracer(0)
    

    Dieser Code initialisiert die Leinwandeinstellungen, einschließlich Leinwandgröße, Hintergrundfarbe, Ausgangszustand der Schildkröte und Zeichengeschwindigkeit.

  5. Zeichne Bäume und Blumen
    tu.penup()  
    tu.goto(0,-150)
    tu.pendown()
    tu.left(90)  
    tree(12,50)
    for i in range(99):
        tu.penup()
        tu.goto(ra.randint(-150,150),ra.randint(-150,0))
        tu.pendown()
        flower()
    

    Dieser Code ruft die Baumfunktion auf, um einen 12-stufigen Baum und die darin enthaltenen Blumen zu zeichnen. Zeichnen Sie anschließend 99 Blumen in zufälliger Position und Größe.

  6. Vollständige Zeichnung
    tu.done()
    

    Verwenden Sie abschließend die Funktion done, um das Ende der Zeichnung anzuzeigen.

    2.5 Kirschblütenwald

    Wie kann ein Kirschblütenbaum ausreichen? Verwenden Sie Schleifenanweisungen rational und bereiten Sie einen Kirschblütenwald für sie vor!

    for i in range(20):
        tu.penup()  
        tu.goto(ra.randint(-300,300),ra.randint(-150,0))
        tu.pendown()
        tu.left(90)  
        tree(8,30)
        tu.setheading(0)
        ……
    

    Ende

    Bis zum nächsten Mal, Freunde!

Supongo que te gusta

Origin blog.csdn.net/mynote/article/details/135232026
Recomendado
Clasificación