呕心沥血之作!最通俗易懂的python代码,绘制五星红旗竟如此简单!

呕心沥血之作!最通俗易懂的python代码,绘制五星红旗竟如此简单!

  • 前期准备
  • 调用turtle库
  • 绘制背景红布
  • 绘制大五角星
  • 绘制四个小五角星
  • 运行程序

前期准备

首先分析绘制五星红旗需要画一些什么,以及要绘制的尺寸大小,图形的位置分布。我了解到一面标准的五星红旗的长宽比为3:2,还有一个重要信息是大五角星的边长是小五角星的两倍。那么开始绘制吧

调用turtle库

设置绘制背景板500*400像素,调整笔的大小和颜色

#五星红旗
import turtle as t
t.setup(500,400)
t.penup()
t.goto(-240,160)
t.pendown()
t.pensize(0.01)
t.pencolor('white')

绘制背景红布

绘制背景红布中要用到fillcolor填充颜色函数,它会在绘制好的封闭图形中填充颜色

#红布
t.fillcolor('red')
t.begin_fill()
for i in range(2):
    t.fd(480)
    t.right(90)
    t.fd(320)
    t.right(90)
t.end_fill()

绘制大五角星

计算大五角星在整体红布上的位置,然后用goto函数抵达那个位置,计算好角度和边长,我本次用的边长41.3个像素,设置填充颜色为yellow

#大五角星
t.penup()
t.goto(-140,60)
t.left(90)
t.fd(41.3)
t.pendown()
t.fillcolor('yellow')
t.begin_fill()
t.right(162)
for i in range(5):
    t.fd(30)
    t.left(72)
    t.fd(30)
    t.right(144)
t.end_fill()

绘制四个小五角星

绘制小五角星类似于绘制大五角星,为了代码简洁,此次用的for…in range循环函数,计算好小五角星相对于打五角星的位置和各个小五角星饶大五角星之间的间隔角度,我本次设置的间隔角度为30度

#小五角星
for j in range(4):
    t.penup()
    t.goto(-140,60)
    t.seth(45-j*30)
    t.fd(80)
    t.right(180)
    
    t.pendown()
    t.fillcolor('yellow')
    t.begin_fill()
    t.right(162)
    for i in range(5):
        t.fd(10)
        t.left(72)
        t.fd(10)
        t.right(144)
    t.end_fill()
t.done

运行程序

运行程序后最后的结果图:
(图片审核不通过,这里就不给放了,大家可以用代码自己去画一下哦)
喜欢的朋友可以点赞收藏支持一下哦!!!

你可能感兴趣的:(python)