# encoding: utf-8
import turtle
t = turtle.Turtle()
# 画矩形, 分别是 x坐标, y坐标, 宽, 高, 颜色
def rect(x, y, width, height, color):
# 先移动到矩形左上角
t.penup()
t.goto(x, y)
t.pendown()
# 设置矩形颜色, 开始填色
t.fillcolor(color)
t.begin_fill()
# 再画矩形
t.goto(x + width, y)
t.goto(x + width, y - height)
t.goto(x, y - height)
t.goto(x, y)
# 结束绘制并填色
t.end_fill()
# 画圆形, 分别是 x坐标, y坐标, 半径, 颜色
# 注意 在这个函数中 x y 是圆心的坐标
def circle(x, y, r, color):
t.penup()
t.goto(x, -r)
t.pendown()
t.fillcolor(color)
t.begin_fill()
t.circle(r)
t.end_fill()
# 用圆形和矩形画日本国旗
def japan(x, y, width, height):
# 画底层的白色矩形旗面
rect(x, y, width, height, '#ffffff')
# 画中心的圆
circle(0, 0, 50, '#ff0000')
# 用三个矩形拼装成 法国国旗
def france(x, y, width, height):
w = width / 3
rect(x, y, w, height, '#0000ff')
rect(x + w, y, w, height, '#ffffff')
rect(x + w + w, y, w, height, '#ff0000')
def germany(x, y, width, height):
h = height / 3
rect(x, y, width, h, 'black')
rect(x, y - h, width, h, 'red')
rect(x, y - h - h, width, h, 'yellow')
def gambia(x, y, width, height):
h = height / 3
rect(x, y, width, h, 'red')
rect(x, y - h, width, h, 'white')
rect(x, y - h - h, width, h, 'green')
# 加一个蓝条
# 蓝条高度 h1
# 蓝色矩形的 y 就应该是 y - (h - h1) / 2
h1 = h * 2 / 3
y1 = y - (h - h1) / 2
rect(x, y1 - h, width, h1, 'blue')
def switzerland(x, y, width, height):
rect(x, y, width, height, 'red')
long = height * 2 / 3
w = height / 5
longx = width / 3 / 2
longy = y - height / 5
rect(longx, longy, w, long, 'white')
def flag():
x = -150
y = 100
width = 300
height = 200
# japan(x, y, width, height)
# france(x, y, width, height)
# germany(x, y, width, height)
# gambia(x, y, width, height)
switzerland(x, y, width, height)
# 4
# 用题 3 的函数画德国国旗 冈比亚国旗 瑞士国旗
# 5
# 用 3 个函数画朝鲜国旗
# 分别是 圆 矩形 五角星
# 提示, 使用之前定义的函数
# 6
# 用之前的题目的函数 画出美国国旗
# 美国国旗是 13 条横杠 加上 50 颗星星, 所以使用循环
flag()
turtle.done()
网友评论