赞
踩
本文的所有源码来自于:https://github.com/jackfrued/Python-100-Days/tree/master/Day01-15
turtle(海龟)库是turtle绘图体系python的实现;
turtle绘图体系:1969年诞生,主要用于程序设计入门;
turtle库是python的标准库之一;属于入门级的图形绘制函数库;
直接使用pip进行安装
pip install turtle
turtle.screensize(1000,600,'red') #大小的设置
turtle.setup(width=0.5, height=0.75, startx=None, starty=None)#参数:
#width, height: 输入宽和高为整数时, 表示像素; 为小数时, 表示占据电脑屏幕的比例,
#startx, starty: 这一坐标表示矩形窗口左上角顶点的位置, 如果为空,则窗口位于屏幕中心。
turtle.mainloop()#必须是程序的最后一个语句
(1)画笔运动的命令
turtle.forward(distance) #向当前画笔方向移动a像素长度
turtle.backward(distance) #向当前画笔相反方向移动a像素长度
turtle.right(degree) #顺时针移动
aturtle.left(degree) #逆时针移动
aturtle.pendown() #移动时绘制图形
turtle.goto(x,y) #将画笔移动到坐标为x,y的位置
turtle.penup() #移动时不绘制图形,提起笔
turtle.speed() #画笔绘制的速度范围
turtle.circle() #画图,半径为正,表示圆心在画笔的左边画圈
(2)画笔控制命令
turtle.pensize(width) #绘制图形的宽度
turtle.pencolor() #画笔的颜色
turtle.fillcolor(color) #绘制图形的填充颜色
turtle.color(color1,color2) #同时设置pencolor=color1,fillcolor=color2
turtle.filling() #返回当前是否在填充状态
turtle.begin_fill() #准备开始填充图形
turtle.end_fill() #填充完成
turtle.hideturtle() #隐藏箭头显示
turtle.showturtle() #显示箭头
(3)全局控制命令
turtle.clear() #清空turtle窗口,但是turtle的位置和状态不会改变
turtle.reset() #清空窗口,重置turtle状态为起始位置
turtle.undo() #撤销上一个turtle动作
""" 用Python的turtle模块绘制国旗 """ import turtle def draw_rectangle(x, y, width, height): """ 绘制矩形 """ turtle.goto(x, y)# 设置画笔位置 # 设置画笔颜色 turtle.pencolor('red') # 设置矩形填充颜色 turtle.fillcolor('red') # 填充矩形 turtle.begin_fill() for i in range(2): turtle.forward(width) turtle.left(90) turtle.forward(height) turtle.left(90) turtle.end_fill() def draw_star(x, y, radius): """ 绘制五角星 """ turtle.setpos(x, y) # 将画笔移动到坐标为x,y的位置(五角星起始位置) pos1 = turtle.pos() # 返回画笔位置 turtle.circle(-radius, 72) # 绘制72度圆弧角 pos2 = turtle.pos() turtle.circle(-radius, 72) pos3 = turtle.pos() turtle.circle(-radius, 72) pos4 = turtle.pos() turtle.circle(-radius, 72) pos5 = turtle.pos() turtle.color('yellow', 'yellow') #设置填充颜色 # 开始填充 turtle.begin_fill() turtle.goto(pos3) turtle.goto(pos1) turtle.goto(pos4) turtle.goto(pos2) turtle.goto(pos5) turtle.end_fill() def main(): """ 主程序 """ turtle.speed(12) turtle.penup() x, y = -270, -180 # 画国旗主体 width, height = 540, 360 draw_rectangle(x, y, width, height) # 画大星星 pice = 22 center_x, center_y = x + 5 * pice, y + height - pice * 5 turtle.goto(center_x, center_y) turtle.left(90) turtle.forward(pice * 3) turtle.right(90) draw_star(turtle.xcor(), turtle.ycor(), pice * 3) x_poses, y_poses = [10, 12, 12, 10], [2, 4, 7, 9] # 画小星星 for x_pos, y_pos in zip(x_poses, y_poses): turtle.goto(x + x_pos * pice, y + height - y_pos * pice) turtle.left(turtle.towards(center_x, center_y) - turtle.heading()) turtle.forward(pice) turtle.right(90) draw_star(turtle.xcor(), turtle.ycor(), pice) # 隐藏海龟 turtle.ht() # 显示绘图窗口 turtle.mainloop() if __name__ == '__main__': main()
(2)绘制小猪佩奇
""" 绘制小猪佩奇 """ from turtle import * def nose(x,y): """画鼻子""" penup() # 将海龟移动到指定的坐标 goto(x,y) pendown() # 设置海龟的方向(0-东、90-北、180-西、270-南) setheading(-30) begin_fill() a = 0.4 for i in range(120): if 0 <= i < 30 or 60 <= i <90: a = a + 0.08 # 向左转3度 left(3) # 向前走 forward(a) else: a = a - 0.08 left(3) forward(a) end_fill() penup() setheading(90) forward(25) setheading(0) forward(10) pendown() # 设置画笔的颜色(红, 绿, 蓝) pencolor(255, 155, 192) setheading(10) begin_fill() circle(5) color(160, 82, 45) end_fill() penup() setheading(0) forward(20) pendown() pencolor(255, 155, 192) setheading(10) begin_fill() circle(5) color(160, 82, 45) end_fill() def head(x, y): """画头""" color((255, 155, 192), "pink") penup() goto(x,y) setheading(0) pendown() begin_fill() setheading(180) circle(300, -30) circle(100, -60) circle(80, -100) circle(150, -20) circle(60, -95) setheading(161) circle(-300, 15) penup() goto(-100, 100) pendown() setheading(-30) a = 0.4 for i in range(60): if 0<= i < 30 or 60 <= i < 90: a = a + 0.08 lt(3) #向左转3度 fd(a) #向前走a的步长 else: a = a - 0.08 lt(3) fd(a) end_fill() def ears(x,y): """画耳朵""" color((255, 155, 192), "pink") penup() goto(x, y) pendown() begin_fill() setheading(100) circle(-50, 50) circle(-10, 120) circle(-50, 54) end_fill() penup() setheading(90) forward(-12) setheading(0) forward(30) pendown() begin_fill() setheading(100) circle(-50, 50) circle(-10, 120) circle(-50, 56) end_fill() def eyes(x,y): """画眼睛""" color((255, 155, 192), "white") penup() setheading(90) forward(-20) setheading(0) forward(-95) pendown() begin_fill() circle(15) end_fill() color("black") penup() setheading(90) forward(12) setheading(0) forward(-3) pendown() begin_fill() circle(3) end_fill() color((255, 155, 192), "white") penup() seth(90) forward(-25) seth(0) forward(40) pendown() begin_fill() circle(15) end_fill() color("black") penup() setheading(90) forward(12) setheading(0) forward(-3) pendown() begin_fill() circle(3) end_fill() def cheek(x,y): """画脸颊""" color((255, 155, 192)) penup() goto(x,y) pendown() setheading(0) begin_fill() circle(30) end_fill() def mouth(x,y): """画嘴巴""" color(239, 69, 19) penup() goto(x, y) pendown() setheading(-80) circle(30, 40) circle(40, 80) def setting(): """设置参数""" pensize(4) # 隐藏海龟 hideturtle() colormode(255) color((255, 155, 192), "pink") setup(840, 500) speed(10) def main(): """主函数""" setting() nose(-100, 100) head(-69, 167) ears(0, 160) eyes(0, 140) cheek(80, 10) mouth(-20, 30) done() if __name__ == '__main__': main()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。