This article is participating in Python Theme Month. See the link to the event for more details

preface

The last one wrote a small program of temperature conversion, quite a little sense of achievement. I learned that Python can also draw pictures, so I asked him to use a ☝🏻 function (turtle graphics) : turtle — Turtle graphics.

So, I said to the coach: this time I want to draw a big sun ☀️~

Refuze 💪🏻ヾ(◍° °◍) new air

You read that right, it is the big sun!!

The text start

Before we get started, let’s briefly introduce the turtle drawing function.

Please refer to the official tutorial:Docs.python.org/zh-cn/3/lib…

Here are some of the methods you might use in this article:

The setup () sets the showturtle | st () () shows that sea turtles pensize () | width () brush thickness pencolor () the brush color penup | pu | up () () () brush up the pendown | pd () () | down () the brush down the goto () | setpos () | setposition () to/positioning setheading () | Seth () to set the color to color () forward () | fd () on the left () | lt () left begin_fill () to fill end_fill () to end filling circle () circle exitonclick () when click exitCopy the code

Roughly understand the line, start the actual combat!

1 Create a project file

The first step, ☝🏻, is to turn on PyCharm and quickly create a new project followed by a Python file 😌 :

2 Clear logic

No matter before compiling what program, my habit: logic must first wisp clear!!

Since the turtle drawing function can only be completed in one stroke, it may not be able to achieve the display effect of ☀️; So I sketched it:☀️ at a glance, roughly composed: 1 circle and 8 equilateral triangles. So, presumably, the logic is:

  • Step 1: Cut the figure into 8 parts, each part is as shown below:

  • Step 2: Use turtle drawings to draw the section, dividing it into an equilateral triangle and an arc:
from turtle import *
# Brush up
pu()
# Position the start position
goto(-30.100)
# Brush down
pd()
# Set orientation
seth(0)
pencolor('#EEC211')
# 80 steps forward
fd(80)
120 degrees to the left
lt(120)
# 80 steps forward
fd(80)
120 degrees to the left
lt(120)
# 80 steps forward
fd(80)
# 143 degrees left
lt(143)
# Draw down an arc of radius 100 68 steps
circle(-100.68)
The window is closed manually by clicking
exitonclick()
Copy the code

After running, the effect is as follows:

  • Step 3: Repeat the for loop 8 times to splice the full sun shape:
from turtle import *
# Brush up
pu()
# Position the start position
goto(-30.100)
# Brush down
pd()
# Set orientation
seth(0)
pencolor('#EEC211')

# Loop 8 times
for i in range(8) :# 80 steps forward
    fd(80)
    120 degrees to the left
    lt(120)
    # 80 steps forward
    fd(80)
    120 degrees to the left
    lt(120)
    # 80 steps forward
    fd(80)
    # 143 degrees left
    lt(143)
    # Draw down an arc of radius 100 68 steps
    circle(-100.68)

The window is closed manually by clicking
exitonclick()
Copy the code

The running effect is as follows:

  • Step 4: Color the drawing
from turtle import *
# Brush up
pu()
# Position the start position
goto(-30.100)
# Brush down
pd()
# Set orientation
seth(0)
pencolor('#EEC211')
# Set color
color('#EEC211')

# Loop 8 times
for i in range(8) :# Start filling color
    begin_fill()
    # 80 steps forward
    fd(80)
    120 degrees to the left
    lt(120)
    # 80 steps forward
    fd(80)
    120 degrees to the left
    lt(120)
    # 80 steps forward
    fd(80)
    # 143 degrees left
    lt(143)
    # Draw down an arc of radius 100 68 steps
    circle(-100.68)
    # End fill
    end_fill()

The window is closed manually by clicking
exitonclick()
Copy the code

The running effect is as follows: Found a small problem, the middle part has no fill color, need to find a way to add it.

  • Step 5: Fill the center with color

Just to give you a general idea, draw another circle in the middle and then overlay the fill color.

Color the center part
# Set color
color('#EEC211')
begin_fill()
left(12)
circle(-145)
end_fill()
exitonclick()
Copy the code

The running effect is as follows:

  • Final step: Integrate the code and encapsulate the functions
# to draw the sun
def drawSun() :
    for i in range(8) :# Start filling color
        begin_fill()
        # 80 steps forward
        fd(80)
        120 degrees to the left
        lt(120)
        # 80 steps forward
        fd(80)
        120 degrees to the left
        lt(120)
        # 80 steps forward
        fd(80)
        # 143 degrees left
        lt(143)
        # Draw down an arc of radius 100 68 steps
        circle(-100.68)
        # End fill
        end_fill()

# main program
def main() :
    # Brush Color
    pencolor('#EEC211')
    # Brush up
    pu()
    # Position the start position
    goto(-20.100)
    # Brush down
    pd()
    # Set orientation
    seth(0)
    # Set color
    color('#EEC211')
    # to draw the sun
    drawSun()
    Color the center part
    begin_fill()
    left(12)
    circle(-145)
    end_fill()
    exitonclick()
Copy the code

The running effect is as follows: Oak, we’re done! ✌️ That’s all for today’s study, see you next time ~ 👋

The complete code is as follows:

from turtle import *

def drawSun() :
    for i in range(8) :# Start filling color
        begin_fill()
        # 80 steps forward
        fd(80)
        120 degrees to the left
        lt(120)
        # 80 steps forward
        fd(80)
        120 degrees to the left
        lt(120)
        # 80 steps forward
        fd(80)
        # 143 degrees left
        lt(143)
        # Draw down an arc of radius 100 68 steps
        circle(-100.68)
        # End fill
        end_fill()


def main() :
    # Brush Color
    pencolor('#EEC211')
    # Brush up
    pu()
    # Position the start position
    goto(-20.100)
    # Brush down
    pd()
    # Set orientation
    seth(0)
    # Set color
    color('#EEC211')
    # to draw the sun
    drawSun()
    Color the center part
    begin_fill()
    left(12)
    circle(-145)
    end_fill()
    exitonclick()

main()
Copy the code

Write in the last

I was surprised to learn that Python can not only crawl, but also draw, it is very interesting, I have seen friends drawCrayon small newAnd share it with your friends:How interesting!! Really is the god also ~ 🙉


That’s the end of this sharing

If you think the article is helpful to you, like, collect, follow, comment, one key four support, your support is the biggest motivation for my creation.