python绘图模块之利用turtle画图

模块之turtle

小故事

前两天朋友说:“常文啊!听说你会python,那能不能用python画一些好看的图呢?”然后我特意去学了一下turtle模块,现在给大家分享一下。

一、什么是turtle

Turtle是python内嵌的绘制线、圆以及其他形状(包括文本)的图形模块。

二、turtle函数的使用

import turtleturtle.pendown() # 放下画笔turtle.penup() # 抬起画笔turtle.pensize(int) # 设置画笔宽度,值为整数型turtle.forward(float) # 讲话比向前移动一定的角度turtle.backward(float) # 将画笔向后移动一定的角度turtle.right(angle) # 将画笔右转一定的角度turtle.left(angle) # #将画笔左转一定的角度turtle.goto(x,y) # 将画笔移动到一个指定的绝对坐标turtle.setx(x) # 设置画笔向x方向移动的距离,值为实数turtle.sety(y) # 设置画笔向y方向移动的距离,值为实数turtle.setheading(angle) # 设定turtle箭头的方向为指定方向,0东 90―北turtle.home() # 将画笔返回到原点turtle.circle(r,ext,steps=int) # 绘制一个设置半径和阶数的圆(设置之后会绘制多边形)turtle.dot(d,color) # 绘制一个指定直径的圆点,颜色为字符串类型turtle.undo() #取消最后一个图操作turtle.speed(s) # 设置画笔速度,为整数类型,且取值在1-10之间turtle.color(‘str') # 设置画笔颜色,为字符串类型turtle.fillcolor(‘str') # 设置填充颜色,为字符串类型turtle.begin_fill() # 结束填充turtle.end_fill() # 开始填充turtle.filling() # 返回填充状态,True表示填充,False表示没有填充turtle.clear() # 清除窗口所有内容turtle.reset() # 清除窗口,将状态和位置复位为初始值turtle.screensize(w,h) # 设置turtle显示的大小,并设置宽度和高度turtle.hideturtle() # 隐藏turtle箭头turtle.showturtle() # 显示turtle窗口turtle.done() # 使turtle窗口不会自动消失turtle.isvisible() # 如果turtle可见,返回turtleturtle.write(‘str',font=(“Arial”,8,“normal”)) # 在turtle位置编写字符串s,字体由字体名、字体大小、字体类型三部分组成turtle.position() # 获取画笔的坐标,返回一个元组,值为浮点型

案例一:基本使用

import turtleimport timeturtle.pensize(3)turtle.showturtle() # 显示箭头turtle.write("吴常文") # 写字符串turtle.forward(300) # 前进100像素turtle.color("red") # 画笔颜色改为redturtle.left(90) # 箭头左转90度turtle.forward(300)turtle.goto(0,50) # 去坐标(0,50)turtle.goto(0,0) # 回到原点turtle.penup() # 抬笔,这样路径向上turtle.goto(0,300)turtle.goto(0,0)turtle.pendown() # 下笔,这样路径向下turtle.goto(0,50)turtle.goto(50,50)turtle.circle(100) # 画圆time.sleep(5) # 睡5秒

效果图1:

在这里插入图片描述

案例二:五角星

import turtleimport timeturtle.pensize(5)turtle.pencolor("yellow")turtle.fillcolor("red")turtle.begin_fill()for _ in range(5): turtle.forward(200) turtle.right(144)turtle.end_fill()time.sleep(2)turtle.penup()turtle.goto(-150, -120)turtle.color("violet")turtle.write("五角星", font=('Arial', 22, 'normal'))turtle.mainloop()

效果图2:

五角星

案例三:奥运五环

#!/user/bin/python3# --*--coding: utf-8 --*--# @Time: 2021/2/10 12:22# @Author:吴常文# @File: 03奥运五环import turtleimport timeturtle.width(10) # 宽度turtle.color("red")turtle.circle(50)turtle.color("blue")turtle.penup()turtle.goto(120,0)turtle.pendown()turtle.circle(50)turtle.color("black")turtle.penup()turtle.goto(240,0)turtle.pendown()turtle.circle(50)turtle.color("yellow")turtle.penup()turtle.goto(60,-50)turtle.pendown()turtle.circle(50)turtle.color("green")turtle.penup()turtle.goto(180,-50)turtle.pendown()turtle.circle(50)time.sleep(3)

效果图3:

奥运五环

案例四:给你一朵玫瑰花

import turtleimport time# 设置初始位置 turtle.penup()turtle.left(90)turtle.fd(200)turtle.pendown()turtle.right(90)# 花蕊 turtle.fillcolor("red")turtle.begin_fill()turtle.circle(10, 180)turtle.circle(25, 110)turtle.left(50)turtle.circle(60, 45)turtle.circle(20, 170)turtle.right(24)turtle.fd(30)turtle.left(10)turtle.circle(30, 110)turtle.fd(20)turtle.left(40)turtle.circle(90, 70)turtle.circle(30, 150)turtle.right(30)turtle.fd(15)turtle.circle(80, 90)turtle.left(15)turtle.fd(45)turtle.right(165)turtle.fd(20)turtle.left(155)turtle.circle(150, 80)turtle.left(50)turtle.circle(150, 90)turtle.end_fill()# 花瓣1turtle.left(150)turtle.circle(-90, 70)turtle.left(20)turtle.circle(75, 105)turtle.setheading(60)turtle.circle(80, 98)turtle.circle(-90, 40)# 花瓣2turtle.left(180)turtle.circle(90, 40)turtle.circle(-80, 98)turtle.setheading(-83)# 叶子1 turtle.fd(30)turtle.left(90)turtle.fd(25)turtle.left(45)turtle.fillcolor("green")turtle.begin_fill()turtle.circle(-80, 90)turtle.right(90)turtle.circle(-80, 90)turtle.end_fill()turtle.right(135)turtle.fd(60)turtle.left(180)turtle.fd(85)turtle.left(90)turtle.fd(80)# 叶子2turtle.right(90)turtle.right(45)turtle.fillcolor("green")turtle.begin_fill()turtle.circle(80, 90)turtle.left(90)turtle.circle(80, 90)turtle.end_fill()turtle.left(135)turtle.fd(60)turtle.left(180)turtle.fd(60)turtle.right(90)turtle.circle(200, 60)turtle.up()turtle.goto(100, -300)turtle.write("Send you a flower, bring you home")time.sleep(5)

效果图4:

玫瑰花

案例五:爱心树

#!/user/bin/python3# --*--coding: utf-8 --*--# @Time: 2021/2/10 21:56# @Author:吴常文# @File: 05 爱心树from turtle import Turtle, mainloopimport turtledef tree(plist, l, a, f): """ plist是笔的列表 l是分支 a的长度是两个分支之间夹角的一半 f是分支之间逐级缩短的系数。""" if l > 5: #  lst = []  for p in plist:   p.forward(    l) # 沿着当前的方向画画按照海龟前进的方向,向前移动指定的距离。   q = p.clone() # 创建并返回具有相同位置、标题和turtle属性的海龟的克隆。   p.left(a) # 以角度单位将海龟向左翻转   q.right(    a) # 以角度单位将海龟右转,nit是默认的角度,但可以通过degrees()和radians()函数设置。   lst.append(p) # 将元素增加到列表的最后   lst.append(q)  tree(lst, l * f, a, f)def main(): p = Turtle() p.color("red") p.pensize(4) # p.setundobuffer(None) p.hideturtle() # 让乌龟隐形。这是一个好主意,当你在做一些复杂的绘图时, # 因为把乌龟藏起来能明显加快绘图速度。 # p.speed(10) # p.getscreen().tracer(1,0)#Returtle.write("You are the secret of my heart") p.speed(4) # 然后可以为该对象调用TurtleScreen方法。 p.left(90) # 方向以角度单位将海龟向左翻转。 调整画笔 p.penup() # 向上拉笔――移动时不绘图。 p.goto(0,   -200) # 移动海龟到一个绝对位置。如果笔放下了,画一条线。不要改变海龟的方向。 p.pendown() # 向下拉笔――移动时绘图 这三条语句是一个组合相当于先把笔收起来再移动到指定位置,再把笔放下开始画 # 否则turtle一移动就会自动的把线画出来 # t = tree([p], 200, 65, 0.6375) t = tree([p], 200, 65, 0.6375) turtle.down() turtle.goto(-80, 70) turtle.write("There's a heart for you") turtle.done()main()

效果图5:

爱心树

案例六:给你一颗爱心

#!/user/bin/python3# --*--coding: utf-8 --*--# @Time: 2021/2/10 22:07# @Author:吴常文# @File: 06 爱心import turtleimport timedef func(): for i in range(200):  turtle.right(1)  turtle.forward(1)turtle.color('red', 'pink')turtle.pensize(2)turtle.speed(10)turtle.goto(0, 0)turtle.begin_fill()turtle.left(140)turtle.forward(112)func()turtle.left(120)func()turtle.forward(112)turtle.end_fill()turtle.pensize(5)turtle.up()turtle.goto(-80, 122.7)turtle.left(70)turtle.down()# turtle.forward(0)turtle.up()turtle.goto(100, -10)turtle.write("There's a heart for you")turtle.done()time.sleep(3)

效果图6:

爱心

案例七:五星红旗

import turtle as t# 位移函数def Skip(t,x,y): t.penup() t.goto(x,y) t.pendown()# 绘制五星红旗def draw(t,x,y,z): t.begin_fill() for i in range(x):  t.forward(y)  t.left(z) t.end_fill()# 画笔基础设置t.screensize(1200,800)t.pensize(5)t.hideturtle()t.speed(5)t.pencolor("red")# 画笔移动Skip(t,0,-200)# 绘制国旗t.fillcolor("red")t.begin_fill()t.forward(300)t.left(90)t.forward(400)t.left(90)t.forward(600)t.left(90)t.forward(400)t.left(90)t.forward(300)t.end_fill()# 画笔移动Skip(t,-250,115)# 绘制大五角星t.pencolor("yellow")t.fillcolor("yellow")t.begin_fill()for i in range(5): t.forward(100) t.right(144)t.end_fill()"""第一颗副星"""# 画笔移动Skip(t,-120,10)# 绘制小五星draw(t,5,30,144)"""第二颗副星"""# 画笔移动Skip(t,-80,50)# 绘制小五星draw(t,5,30,144)"""第三颗副星"""# 画笔移动Skip(t,-80,110)# 绘制小五星draw(t,5,30,144)"""第四颗副星"""# 画笔移动Skip(t,-120,150)# 绘制小五星draw(t,5,30,144)t.done()

效果图7:

五星红旗

总结

到此这篇关于python模块教程之利用turtle画图的文章就介绍到这了,更多相关python模块之turtle画图内容请搜索 以前的文章或继续浏览下面的相关文章希望大家以后多多支持 !

相关文章

发表新评论