python 绘制国旗的示例

国旗是一个国家的象征,它可以反映一个国家的特色和传统,国旗起源于近代的欧洲,是一个国家主权意识不断增强后的必然产物,本文我们使用 Python 来画几面国旗,使用的 Python 库是大家比较熟悉的 turtle。

五星红旗

五星红旗是中华人民共和国的国旗,它是由四颗小的黄五角星环绕一颗大的黄五角星组成的,底色为红色,实现代码如下:

turtle.setup(600,400,0,0)
turtle.bgcolor("red")
turtle.fillcolor("yellow")
turtle.color('yellow')
turtle.speed(10)
# 主星
turtle.begin_fill()
turtle.up()
turtle.goto(-280,100)
turtle.down()
for i in range (5):
  turtle.forward(150)
  turtle.right(144)
turtle.end_fill()
# 副星
turtle.begin_fill()
turtle.up()
turtle.goto(-100,180)
turtle.setheading(305)
turtle.down()
for i in range (5):
  turtle.forward(50)
  turtle.left(144)
turtle.end_fill()
turtle.begin_fill()
turtle.up()
turtle.goto(-50,110)
turtle.setheading(30)
turtle.down()
for i in range (5):
  turtle.forward(50)
  turtle.right(144)
turtle.end_fill()
turtle.begin_fill()
turtle.up()
turtle.goto(-40,50)
turtle.setheading(5)
turtle.down()
for i in range (5):
  turtle.forward(50)
  turtle.right(144)
turtle.end_fill()
turtle.begin_fill()
turtle.up()
turtle.goto(-100,10)
turtle.setheading(300)
turtle.down()
for i in range (5):
  turtle.forward(50)
  turtle.left(144)
turtle.end_fill()
turtle.hideturtle()
turtle.done()

实现效果如下:

python 绘制国旗的示例

青天白日旗

青天白日旗是民国时期的国旗,旗面作蓝色以示青天,旗中置一射出叉光的白日图案,实现代码如下:

t.colormode(255)
rcblue=(4,0,174)
rcred=(254,0,0)
def ol(r):
  na = 15 / 180 * math.pi
  ol=2*r*math.cos(na)
  ol=int(round(ol))
  return ol
def loop(r):
  t.fd(ol(r))
  t.right(150)
def main0(a,b):
  t.color(rcred)
  t.penup()
  t.goto(-a/2,b/2)
  t.pendown()
  t.begin_fill()
  t.goto(-a/2,-b/2)
  t.goto(a/2,-b/2)
  t.goto(a/2,b/2)
  t.end_fill()
  t.penup()
  t.goto(-a/4,b/4)
  t.pendown()
def main1(a1,b1):
  t.color('gray',rcblue)
  t.penup()
  t.right(90)
  t.fd(b1/2)
  t.left(90)
  t.pendown()
  t.begin_fill()
  t.fd(a1/2)
  t.left(90)
  t.fd(b1)
  t.left(90)
  t.fd(a1)
  t.left(90)
  t.fd(b1)
  t.left(90)
  t.fd(a1/2)
  t.end_fill()
  t.penup()
  t.goto(-a/4,b/4)
  t.seth(0)
  t.pendown()
def main2(r):
  t.pensize = 20
  t.color('white', 'white')
  t.penup()
  t.fd(r)
  t.right(180 - 30 / 2)
  t.pendown()
  t.begin_fill()
  for i in range(12):
    loop(r)
  t.end_fill()
  t.penup()
  t.goto(-a/4,b/4)
  t.seth(0)
  t.pendown()
def main3(r1,r2):
  t.color(rcblue, rcblue) 
  t.begin_fill()
  t.up()
  t.right(90)
  t.fd(r1)
  t.left(90)
  t.pd()
  t.circle(r1)
  t.end_fill()
  t.penup()
  t.goto(-a/4,b/4)
  t.pendown()
  t.color('white', 'white')
  t.begin_fill()
  t.pu()
  t.right(90)
  t.fd(r2)
  t.left(90)
  t.pd()
  t.circle(r2)
  t.end_fill()
  t.penup()
  t.goto(-a/4,b/4)
  t.seth(0)
  t.pendown()
def main(a,b):
  a1 = a / 2
  b1 = b / 2
  r = a1 / 4
  r2 = a1 / 8
  r1 = b1 * 17 / 80
  main0(a,b)
  main1(a1,b1)
  main2(r)
  main3(r1,r2)
a=1020
b=680
t.setup(1100,700,100,0)

实现效果如下:

python 绘制国旗的示例

红底白十字旗

红底白十字旗是瑞士的国旗,与其他国家有点不同,瑞士的国旗形状是正方形的,代表了该国坚守中立的政策,实现代码如下:

def draw_crossshaped(aTurtle, width=0, height=0, color=None):
  aTurtle = turtle.Turtle()
  aTurtle.hideturtle()
  aTurtle.penup()
  aTurtle.goto(30, 50)
  aTurtle.begin_fill()
  aTurtle.fillcolor(color)
  for i in range(4):
    aTurtle.pendown()
    aTurtle.fd(width)
    aTurtle.rt(90)
    aTurtle.fd(height)
    aTurtle.rt(90)
    aTurtle.fd(width)
    aTurtle.lt(90)
  aTurtle.end_fill()
def draw_RQ(times=20.0):
  width, height = 26 * times, 26 * times
  window = turtle.Screen()
  aTurtle = turtle.Turtle()
  aTurtle.hideturtle()
  aTurtle.speed(10)
  aTurtle.penup()
  aTurtle.goto(-width / 2, height / 2)
  aTurtle.pendown()
  aTurtle.begin_fill()
  aTurtle.fillcolor('red')
  aTurtle.fd(width)
  aTurtle.right(90)
  aTurtle.fd(height)
  aTurtle.right(90)
  aTurtle.fd(width)
  aTurtle.right(90)
  aTurtle.fd(height)
  aTurtle.right(90)
  aTurtle.end_fill()
  draw_crossshaped(aTurtle, width=80, height=80, color='white')
  window.exitonclick()

实现效果如下:

python 绘制国旗的示例

python 绘制国旗的示例

扫一扫手机访问