第五章 Turtle库
前言:python的基础绘图库
一、窗体和画布
1、引入Turtle库
①import turtle
import turtle
turtle.pensize(5)
turtle.pencolor(“yellow”)
turtle.fillcolor("red
turtle.begin_fill()
for i in range(5):
turtle.forward(200)
turtle.right(144)
turtle.end_fill()
②from turtle import *
from turtle import *
pensize(5)
pencolor(“yellow”)
fillcolor("red
begin_fill()
for i in range(5):
forward(200)
right(144)
end_fill()
2、创建画布:
turtle.screensize(width, height, bg)
宽(width),高(height),背景颜色(bg)
例如:
运行结果:
3、窗体设置
定义绘图窗口大小和初始位置:
turtle.setup(width,height, startx, starty)
参数分别为窗口的宽,高,距幕左侧距离,距屏幕上边距离。
注意:窗口大于画布,画布充满窗口。画布大于窗口,窗口显示滚动条。
二、坐标、角度、颜色
1、坐标
绘图窗体中心为坐标原点,向右为x轴,向上为y轴
直接跳转到相应的坐标点(x,y)
turtle.goto(x,y)
2、角度
以海龟的角度来看,有前、后、前进方向左侧、前进方向右侧四个方向
改变行进方向
turtle.seth(angle)
3、颜色
RGB色彩模式:
turtle.colormode(mode)
mode=1,则为小数
mode=255,则为整数
turtle.pencolor(‘color’)
color=“red”,“blue”
color=(255,0,0)
color=(0.63,0.13,0.93)
常见颜色:
例题:绘制正方形(边长颜色不一样)
代码如下:
from turtle import *
screensize(200,200)
pencolor("red")
forward(100)
seth(90)
pencolor("blue")
forward(100)
seth(180)
pencolor("yellow")
forward(100)
seth(270)
pencolor("green")
forward(100)
运行结果:
三、画笔和填充
1、画笔
画笔设置命令:
大小: pensize(size)
颜色: pencolor(color)
方向: seth(angle)
速度: speed(speed)
抬起画笔: penup()
落下画笔: pendown()
隐藏海龟: hideturtle()
显示海龟: showturtle()
画笔运动命令:
前进: forward(distance)
后退: backward(distance)
左转: left(angle)
右转: right(angle)
画圆: circle(r, angle)
半径为正(负),表示圆心在画笔的左边(右边)画圆
画点: dot(r, color)
文本: write(s , [font=(“font-name”,font_size,“font_type”)])
画笔填充命令:
fillcolor(colorstring):绘制图形的填充颜色。
color(color1, color2):同时设置pencolor=color1, fillcolor=color2。
2、填充
图形填充命令:
开始填充:begin_fill()
结束填充:end_fill()
例题:绘制五角星
代码如下:
from turtle import *
pensize(5)
pencolor("yellow")
fillcolor("red")
begin_fill()
for i in range(5):
forward(200)
right(144)
end_fill()
运行结果:
四、绘图示例
示例一:绘制太极图
如图:
代码如下:
from turtle import *
screensize(200,200,"sky blue")
fillcolor("white")
begin_fill() #阳鱼
circle(50,180)
circle(-50,180)
circle(-100,180)
end_fill()
fillcolor("black")
begin_fill() #阴鱼
circle(-100,180)
left(180)
circle(50,180)
circle(-50,180)
end_fill()
penup() #画点
goto(0,50)
pendown()
dot(15,"white")
penup() #画点
goto(0,150)
pendown()
dot(15,"black")
penup() #写字
goto(-50,-50)
pendown()
pencolor("red")
pensize(3)
write('太 极 图',font=('隶书',20,'normal'))
运行结果:
示例二:绘制国际象棋盘
如图:
代码如下:
from turtle import *
for t in range(8):
for j in range(8):
if (t+j)%2==0:
fillcolor("white")
else:
fillcolor("black")
begin_fill()
for i in range(4):
forward(30)
left(90)
end_fill()
forward(30)
penup()
goto(0,30*t+30)
pendown()
运行结果: