import turtle as t #导入海龟库命名为t t.screensize(800,600) #定义画布大小800*600 t.speed(8) #定义画图速度,0最快,0-10之间 def flag(): #定义旗面函数 t.color('red') #定义旗帜画笔颜色,保持和填充一致 t.fillcolor('red') #定义旗帜填充颜色 t.begin_fill() #开始填充 t.pendown() #落笔 for i in range(2): #循环两次,对应矩形长和宽,比例3:2 t.forward(600) #缺省向右600步 t.right(90) #右转90度 t.forward(400) #向前400步 t.right(90) #右转90度 t.end_fill() #结束填充 t.penup() #养成好习惯,结束后抬笔 def zuobiao(): #定义坐标函数 t.color("grey") #坐标颜色“grey” t.goto(-300,0) #来到旗面左边中心 t.pendown() #落笔 t.forward(600) #画出X轴 t.penup() #抬笔 t.goto(0,-200) #来到旗面下方中心 t.pendown() #落笔 t.goto(0,200) #直接向上走200,不用forward避免转向 t.penup() #结束后抬笔 def wangge(): #定义网格辅助线函数 t.color("grey") #网格线颜色“grey” y = 200 #在第二象限从上往下画横向网格,y坐标初始200 for i in range(10): #重复10次 t.goto(-300,y) #来到第二象限最左上角 t.pendown() #落笔 t.forward(300) #向右走300步 t.penup() #抬笔 t.fd(-300) #原路返回到最左边 y -= 20 #y坐标减少20,一个小方格的边长 x = -300 #在第二象限从左往右画纵向网格,x坐标初始-300 for i in range(16): #重复15次 t.goto(x,0) #来到x轴最左边 t.pendown() #落笔 t.setheading(90) #设置头朝上画,向上90度,向右0度,向下-90度 t.forward(200) #向上走200步 t.penup() #抬笔 t.fd(-200) #原路返回到x轴 x += 20 #x坐标增加20,一个小方格的边长 t.penup() #结束函数,抬笔 def yuan(x,y,r): #定义辅助圆函数 t.color("blue") #辅助圆蓝色 t.goto(x,y) #来到指定坐标 t.setheading(0) #向右方向 t.pendown() #落笔 t.circle(r,steps = 100) #用circle画圆,steps=100是尽量接近圆 t.penup() #抬笔 def star(x,y,r,h): #画五角星函数,xy中心点座标,r半径,h为朝向 t.penup() #抬笔 t.color("yellow") #画笔颜色“yellow” t.fillcolor("yellow") #五角星填充颜色“yellow” ls = [] #定义列表,用来存放五角星初始顶角坐标 t.goto(x,y) #来到五角星中心点 t.setheading(h) #设置朝向 for i in range(6): #5次循环分别找到五角星五个顶点 t.forward(r) #先按照朝向找到向中心的顶点 t.pos() #记录下顶点坐标 ls.append(t.pos()) #把顶点坐标放入列表中 t.forward(-r) #回到五角星中心点 t.right(144) #从朝向第一个顶点右转144度(内角36度) t.goto(ls[0]) #来到找到的第一个顶点 t.pendown() #落笔开始画五角星 t.begin_fill() #开始填充 for i in range(6): #5次循环分别连接找到的五个顶点 t.goto(ls[i]) #依次连接列表中的顶点 t.end_fill() #结束填充 t.penup() #画笔抬起 t.penup() #开始主程序和调用函数,抬笔 t.goto(-300,200) #来到旗面左上角 flag() #调用旗面函数,画出旗帜 zuobiao() #调用坐标函数,画出x和y轴 wangge() #调用网格辅助线函数,画出第二象限的网格辅助线 yuan(-200,40,60) #调用辅助圆函数,画大五角星的辅助圆 yuan(-100,0,20) #调用辅助圆函数,画最下方小五角星的辅助圆 yuan(-60,40,20) #调用辅助圆函数,画从下往上第二个小五角星的辅助圆 yuan(-60,100,20) #调用辅助圆函数,画从下往上第三个小五角星的辅助圆 yuan(-100,140,20) #调用辅助圆函数,画从下往上第四个小五角星的辅助圆 star(-200,100,60,90) #调用五角星函数,画大五角星 t.goto(-100,20) #来到最下方小五角星中心 h = t.towards(-200,100) #设置朝大五角星中心方向,并赋值给五角星函数的h star(-100,20,20,h) #调用五角星函数,画最下方小五角星 t.goto(-60,60) #来到从下往上第二个小五角星中心点 h = t.towards(-200,100) #设置朝大五角星中心方向,并赋值给五角星函数的h star(-60,60,20,h) #调用五角星函数,画从下往上第二个小五角星 t.goto(-60,120) #来到从下往上第三个小五角星中心点 h = t.towards(-200,100) #设置朝大五角星中心方向,并赋值给五角星函数的h star(-60,120,20,h) #调用五角星函数,画从下往上第三个小五角星 t.goto(-100,160) #来到从下往上第三个小五角星中心点 h = t.towards(-200,100) #设置朝大五角星中心方向,并赋值给五角星函数的h star(-100,160,20,h) #调用五角星函数,画从下往上第四个小五角星 t.hideturtle() #程序结束,隐藏小海龟 t.done() #程序结束,保留画布屏幕
settings
unfold_less visibility play_arrow