Python使用Turtle模块绘制国旗的方法示例
turtle模块
turtle模块:python内置的绘图工具
turtle(海龟)模块,我们是用它来进行画图的,基本上就是画简单的直线,点,和曲线。
你可以把它想成一个小海龟,在沙滩上行走,然后留下的各种痕迹,使用Turtle模块可以绘制很多精美的图形。
基本操作(Turtle方法)
- turtle.forward(step):前进step个像素
- turtle.back(step):后退step个像素
- turtle.right():右转一个角度
- turtle.left():左转一个角度
- turtle.pencolor(“string”):画笔颜色
- turtle.fillcolor(“string”):填充颜色
- turtle.speed(int):运动速度
其他的turtle方法可以参见python官网
https://docs.python.org/zh-cn/3.7/library/turtle.html
具体代码实现
#绘画
#中国国旗
#转载请标明出处!!
importturtle
importtime
defdraw__stars(tur,step,x,y,arg):
"""
绘制五角星
:paramtur:turtleobject
:paramstep:五角星一条边的长度
:paramx:开始绘制五角星的起点x坐标
:paramy:开始绘制五角星的起点y坐标
:paramarg:
:return:
"""
tur.pencolor('yellow')
tur.fillcolor('yellow')
tur.up()
tur.goto(x,y)
tur.begin_fill()
tur.down()
tur.right(arg)
tur.forward(step)
tur.right(144)
tur.forward(step)
tur.right(144)
tur.forward(step)
tur.right(144)
tur.forward(step)
tur.right(144)
tur.forward(step)
tur.right(144)
tur.end_fill()
defdraw__flag(tur,wide,height):
"""
绘制国旗的长方形形状
:paramtur:turtleobject
:paramwide:thewidthoftheflag
:paramheight:theheightoftheflag
:return:None
"""
tur.pencolor('red')
tur.fillcolor('red')
tur.goto(-wide/2,height/2)
tur.begin_fill()
tur.forward(wide)
tur.right(90)
tur.forward(height)
tur.right(90)
tur.forward(wide)
tur.right(90)
tur.forward(height)
tur.end_fill()
if__name__=='__main__':
"""
main函数
"""
#tur=turtle.Turtle()
turtle.screensize(canvwidth=3000,canvheight=2000,bg=None)
#绘制star的turtle对象
tur_star=turtle.Turtle()
#绘制flag的turtle对象
tur_flag=turtle.Turtle()
tur_flag.speed(3)
tur_star.speed(3)
#隐藏turtle对象
tur_star.hideturtle()
tur_flag.hideturtle()
#间隔3秒,可以没有,这个是我调试时加上去的
time.sleep(3)
#绘制长方形
draw__flag(tur_flag,630,420)
#绘制五角星,在合适的位置进行绘制五角星
#调用五次函数绘制五颗五角星
draw__stars(tur_star,step=60,x=-280,y=155,arg=0)
draw__stars(tur_star,step=25,x=-182,y=177,arg=-25)
draw__stars(tur_star,step=25,x=-175,y=125,arg=41)
draw__stars(tur_star,step=25,x=-208,y=79,arg=23)
draw__stars(tur_star,step=25,x=-265,y=75,arg=48)
#使画面锁定
turtle.done()
运行结果
总结
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。