Python Turtle模块教程:如何画五星红旗?

前面我们已经学会画五角星,不妨让我们一起绘制一面五星红旗吧!!!

思路:1.首先需要导包,用Python自带的turtle包,直接导入

2.设置好画布大小

3.绘制五角星时注意每颗星的起始位置,旋转角度,画笔颜色,填充颜色等

4.添加文字

效果图:

代码:

运行结果:

大家动起手来吧,需要代码自取

import turtle#导入海龟笔库

import math

turtle.pencolor("red")

turtle.fillcolor("red")

turtle.pensize(1)

#画矩形,选择的66*44比例的旗帜

turtle.begin_fill()

turtle.up()#拿起笔

turtle.goto(-330,-220)#起始坐标

turtle.down()#落笔准备画

for i in range(2): #循环画出正方形

turtle.fd(660)

turtle.left(90)

turtle.fd(440)

turtle.left(90)

#此时海龟坐标为-330,-220

turtle.end_fill()

#分割二象限,用于调试计算,提交时注释掉

'''turtle.up()

turtle.goto(-330,0)

turtle.down()

turtle.fd(660)

turtle.speed(0)

turtle.up()

turtle.goto(0,220)

turtle.down()

turtle.seth(-90)

turtle.fd(440)

for i in range(10):

turtle.up()

turtle.goto(-330,22*i)

turtle.seth(0)

turtle.down()

turtle.fd(330)

for i in range(15):

turtle.up()

turtle.goto(-22*i,220)

turtle.seth(-90)

turtle.down()

turtle.fd(220)

turtle.up()

turtle.goto(-220,44)# 大五角星的中心的正下方

turtle.down()

turtle.seth(0)

turtle.circle(66)

'''

#画五角星

def draw_star(x,y,a,b,rank,radis):

turtle.fillcolor("yellow")#填充颜色

turtle.pencolor("yellow") #画笔颜色

turtle.up()

pos_list=[] #存储五个点的坐标的二维列表

turtle.goto(x,y)

turtle.seth(0)

if rank>0:

if(rank<3):#判断是上面两个星星还是下面两个星星,因为转的角度不同

rank=2

else:

rank=3

f=90*rank+math.degrees(math.atan(a/b))

else:

f=0;

#print(f)

turtle.circle(-radis,f)

for i in range(5): #循环5次,标记五个点

turtle.up()

turtle.circle(-radis,144)

#turtle.down()

#turtle.dot()

pos_list.append(turtle.pos())

#print(small_pos_list)

turtle.up()

turtle.goto(pos_list[4])#回到起点

turtle.begin_fill()

turtle.down()

for i in range(5): #开始画五角星

turtle.goto(pos_list[i])

turtle.end_fill()

draw_star(-220,176,0,0,0,66) #画大五角星,输入起点坐标,偏置角度0,0,规定大五角星编号为0,圆形半径为66

draw_star(-110,198,5,3,1,22) # 第一颗星星 起点在左边第5个格子,上边9个格子,偏置角度的tan=5/3,编号为1,圆形半径为22

draw_star(-66,154,7,1,2,22)# 第二颗星星 起点在左边第3个格子,上边7个格子,偏置角度的tan=7/1,编号为2,圆形半径为22

draw_star(-66,88,2,7,3,22)# 第三颗星星 起点在左边第3个格子,上边7个格子,偏置角度的tan=2/7,编号为3,圆形半径为22

draw_star(-110,44,4,5,4,22) # 第四颗星星 起点在左边第5个格子,上边9个格子,偏置角度的tan=4/5,编号为4,圆形半径为22

#绘制文字

turtle.up()

turtle.color('black')

turtle.goto(220,-180)#定位

turtle.hideturtle()

turtle.write('绘制员:',font=('微软雅黑',10))

turtle.up()

turtle.color('black')

turtle.goto(240,-200)#定位

turtle.hideturtle()

turtle.write('2111340',font=('微软雅黑',10))

turtle.up()

turtle.color('black')

turtle.goto(240,-220)#定位

turtle.hideturtle()

turtle.write('王 丽',font=('微软雅黑',10))

记得点赞,关注小编

物联沃分享整理
物联沃-IOTWORD物联网 » Python Turtle模块教程:如何画五星红旗?

发表评论