学习目标
python具有很多方便的工具库
一旦拥有,轻松出效果
本节内容目标:
- 体验模块的用法
- 自定义绘图
- 直接使用代码一键出效果图
了解turtle模块
-
翻译turtle
-
turtle神龟
乌龟绘图坐标系
导入模块
import 模块名
模块即工具包
在当前的文件中使用了导入模块的语句
相当于把工具包拿到了身边
然后需要什么功能,直接使用工具包中的相关工具即可
使用工具
语法
模块名.工具名(参数)
注:有的工具需要参数,有的工具不需要参数
turtle模块中的’工具’简览
接下来是绘图的时间
使用工具包中的一些工具来完成
相关工具功能如下:
导入turtle库
?
import turtle
移动到坐标100,100
?
turtle.goto(100,100)
画一个半径为30的圆形
?
turtle.circle(30)
!
默认是逆时针画
画一个半径为30的圆形,只画一半
?
turtle.circle(30,180)
!
参数二是角度
向前100
?
turtle.fd(100)
turtle.forward(100)
向后100
?
turtle.bk(100)
turtle.backward(100)
向左转45度
?
turtle.left(45)
向右转90度
?
turtle.right(90)
绘制一个填充色为蓝色的圆形
?
turtle.fillcolor("blue")
turtle.begin_fill()
turtle.circle(20)
turtle.end_fill()
画笔提起,让乌龟飞起来
?
turtle.penup()
画笔放下,让乌龟落地
?
turtle.pendown()
让画布停住
?
turtle.done()
更详细的turtle相关的使用方法,可参看:
https://www.cnblogs.com/Archer-Xin/p/12215490.html
练习:自定义绘图
- 绘一个圆形
- 绘一个三角形
- 绘一个长方形
大中型绘图
五角星
import turtle
import time
turtle.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("Done", font=('Arial', 40, 'normal'))
turtle.mainloop()
圆形图堆叠
#coding=utf-8
import turtle
spiral=turtle.Turtle()
ninja=turtle.Turtle()
ninja.speed(10)
for i in range(100):
ninja.forward(100)
ninja.right(30)
ninja.forward(20)
ninja.left(60)
ninja.forward(50)
ninja.penup()
ninja.setposition(0,0)
ninja.pendown()
ninja.right(2)
玫瑰花
import turtle
#渐大
def increases(a,z,f):
#a:画笔起始大小;z:画笔终止大小;f:渐变拉伸距离
for i in range(a,z):
p.pensize(i)
p.forward(f)
#渐小
def smaller(a,z,f):
for i in range(a,z,-1):
p.pensize(i)
p.forward(f)
#花蕊
def flower():
#右下
p.up()
p.home()
p.goto(0,0)
p.pencolor('red')
p.left(15)
p.down()
increases(1,7,5)
p.circle(50,70)
p.forward(60)
p.circle(-100,15)
smaller(7,1,5)
#左下
p.up()
p.home()
p.goto(-20,0)
p.left(180)
p.down()
increases(1,7,5)
p.circle(-60,85)
p.forward(60)
p.circle(100,15)
smaller(7,1,5)
#右边
p.up()
p.home()
p.goto(80,250)
p.left(10)
p.down()
increases(1,5,5)
p.circle(-20,120)
p.circle(-130,20)
p.forward(50)
p.circle(100,15)
smaller(5,1,6)
#左边
p.up()
p.home()
p.goto(-110,240)
p.left(180)
p.down()
increases(1,5,5)
p.circle(30,130)
p.circle(130,15)
p.forward(20)
p.circle(-100,35)
smaller(5,1,7)
#左上
p.up