用Python的turtle模块画国旗

发布时间:2019-08-25 09:36:43编辑:auto阅读(1211)

    最近在学Python,发现Python的海龟绘图非常有趣,就分享一下!话不多说,先来Python turtle的官方文档链接: Python turtle。这里面有turtle的各类指令。turtle画国旗主要用到两个函数:draw_rentangle和draw_star。

    import time
    import turtle
    import os
    def draw_rectangle(start_x,start_y,rec_x,rec_y):
        turtle.goto(start_x,start_y)
        turtle.color('red')
        turtle.fillcolor('red')
        turtle.begin_fill()
        for i in range(2):
            turtle.forward(rec_x)
            turtle.left(90)
            turtle.forward(rec_y)
            turtle.left(90)
        turtle.end_fill()
    
    def draw_star(center_x,center_y,radius):
        turtle.setpos(center_x,center_y)
        #find the peak of the five-pointed star
        pt1=turtle.pos()
        turtle.circle(-radius,72)
        pt2=turtle.pos()
        turtle.circle(-radius,72)
        pt3=turtle.pos()
        turtle.circle(-radius,72)
        pt4=turtle.pos()
        turtle.circle(-radius,72)
        pt5=turtle.pos()
        #draw the five-pointed star
        turtle.color('yellow','yellow')
        turtle.fill(True)
        turtle.goto(pt3)
        turtle.goto(pt1)
        turtle.goto(pt4)
        turtle.goto(pt2)
        turtle.goto(pt5)
        turtle.fill(False)
    
    #start the project
    turtle.speed(5)
    turtle.penup()
    #draw the rectangle
    star_x=-320
    star_y=-260
    len_x=660
    len_y=440
    draw_rectangle(star_x,star_y,len_x,len_y)
    #draw the big star
    pice=660/30
    big_center_x=star_x+5*pice
    big_center_y=star_y+len_y-pice*5
    turtle.goto(big_center_x,big_center_y)
    turtle.left(90)
    turtle.forward(pice*3)
    turtle.right(90)
    draw_star(turtle.xcor(),turtle.ycor(),pice*3)
    #draw the small star
    turtle.goto(star_x+10*pice,star_y+len_y-pice*2)
    turtle.left(turtle.towards(big_center_x,big_center_y)-turtle.heading())
    turtle.forward(pice)
    turtle.right(90)
    draw_star(turtle.xcor(),turtle.ycor(),pice)
    #draw the second star
    turtle.goto(star_x+pice*12,star_y+len_y-pice*4)
    turtle.left(turtle.towards(big_center_x,big_center_y)-turtle.heading())
    turtle.forward(pice)
    turtle.right(90)
    draw_star(turtle.xcor(),turtle.ycor(),pice)
    #draw the third
    turtle.goto(star_x+pice*12,star_y+len_y-7*pice)
    turtle.left(turtle.towards(big_center_x,big_center_y)-turtle.heading())
    turtle.forward(pice)
    turtle.right(90)
    draw_star(turtle.xcor(),turtle.ycor(),pice)
    #draw the final
    turtle.goto(star_x+pice*10,star_y+len_y-9*pice)
    turtle.left(turtle.towards(big_center_x,big_center_y)-turtle.heading())
    turtle.forward(pice)
    turtle.right(90)
    draw_star(turtle.xcor(),turtle.ycor(),pice)
    
    turtle.ht()
    time.sleep(3)
    os._exit(1)

    结果:
    用Python的turtle模块画国旗用Python的turtle模块画国旗
    xxx

    感觉画的还不赖:)

    本文转载自:http://blog.sina.com.cn/s/blog_ea828d2a0102wb4p.html

关键字