1. # 使用turtle库的turtle.fd()函数和turtle.seth()函数绘制一个边长为100的三角形
import turtle
for i in range(3): #绘制三条边
turtle.seth(i * 120) #底边行进角度为0;右斜边行进角度为120°(按逆时针);左斜边行进角度为240°(按逆时针)
turtle.fd(100) #边长为100像素
'''
等同于:
import turtle
for i in range(3): #绘制三条边
turtle.fd(100) #边长为100像素
turtle.left(120) #每次逆时针移动120°
'''
seth(angle):只改变海龟的行进方向(角度按逆时针),但不行进,angle为绝对度数
fd(distance):向当前画笔方向移动distance像素长度
turtle.left(degree):逆时针移动degree°
2. 使用turtle库的turtle.right()函数和turtle.fd()函数绘制一个五角星,边长为200像素,5个内角度数为144
from turtle import *
for i in range(5): #绘制五条边
fd(200) #边长为200像素
right(144) #每次顺时针移动144°
'''
等同于:
import turtle
for i in range(5): #绘制五条边
turtle.seth(i * 216) #每次逆时针移动216°
turtle.fd(200) #边长为200像素
'''
turtle.right(degree):顺时针移动degree°
3. 使用turtle库的turtle.fd()函数和turtle.seth()函数绘制一个边长为200、画笔为2号笔的正五边形,正五边形5个内角均为108度
import turtle
turtle.pensize(2) # 设置画笔的粗细
d = 72
for i in range(5):
turtle.seth(d)
d += 72
turtle.fd(200)
4. 使用turtle库的turtle.fd()函数和turtle.seth()函数绘制一个正方形,边长为200像素
import turtle
d = 0
for i in range(4):
turtle.fd(200)
d = d + 90
turtle.seth(d)
5. 使用turtle库的turtle.fd()函数和turtle.left()函数绘制一个边长为200的太阳花
import turtle
turtle.color("red","yellow") # 画笔颜色为红色,填充颜色为黄色
turtle.begin_fill()
for i in range(36):
turtle.fd(200)
turtle.left(170)
turtle.end_fill()
turtle.color(color1, color2):同时设置pencolor=color1, fillcolor=color2
turtle.begin_fill():准备开始填充图形
turtle.end_fill():填充完成
6. 使用turtle库的turtle.color()函数和turtle.circle()函数绘制一个黄底黑边的圆形,半径为50
import turtle
turtle.color('black','yellow')
turtle.begin_fill()
turtle.circle(50) # 圆心坐标是(0,50)
turtle.end_fill()
turtle.circle() :画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆
7. 使用turtle库的turtle.fd()函数和turtle.right()函数绘制一个边长为200,黄底黑边的五角星
import turtle
turtle.color("black","yellow")
turtle.begin_fill() # 准备开始填充图形
for i in range(5):
turtle.fd(200)
turtle.right(144)
turtle.end_fill() # 填充完成
8. 使用turtle库的turtle.circle()函数、turtle.seth()函数和turtle.left()函数绘制一个四瓣花图形
import turtle
for i in range(4):
turtle.seth(90 * (i + 1)) # 逆时针
turtle.circle(50,90)
turtle.seth(-90 + i * 90) # 顺时针
turtle.circle(50,90)
turtle.hideturtle()
turtle.hideturtle():隐藏画笔的turtle形状
Python之turtle.circle()函数理解
turtle.circle()函数
定义:turtle.circle(radius, extent=None, steps=None)
作用:根据半径radius绘制extent角度的弧形
参数:
- radius:弧形半径(圆心坐标是(0,radius))
当radius值为正数时,圆心在小海龟左侧。
当radius值为负数时,圆心在小海龟右侧。 - extent:弧形角度。当无该参数或参数为None时,表示绘制整个圆形
当extent值为正数时,顺小海龟当前方向绘制。
当extent值为负数时,逆小海龟当前方向绘制。 - step:起点到终点由steps条线组成
①radius值为正数,extent值为正数
圆心在小海龟左侧,从圆心出发,逆时针绘图。海龟最终停留方向与绘制曲线方向相同。
②radius值为正数,extent值为负数
圆心在小海龟右侧,从圆心出发,顺时针绘图。海龟最终停留方向与绘制曲线方向相反。
③radius值为负数,extent值为正数
圆心在小海龟左侧,从圆心出发,顺时针绘图。海龟最终停留方向与绘制曲线方向相同。
④radius值为负数,extent值为负数
圆心在小海龟右侧,从圆心出发,逆时针绘图。海龟最终停留方向与绘制曲线方向相反。
radius(列)\extent(行) | + | - |
---|---|---|
+ | 圆心在左侧;逆时针;箭头同向 | 圆心在右侧;顺时针;箭头反向 |
- | 圆心在左侧;顺时针;箭头同向 | 圆心在右侧;逆时针;箭头反向 |
9. 使用turtle库中的pencolor()和fillcolor()方法为图形着色,使用setup()方法在桌面屏幕(400,400)位置创建600×600大小的画布窗体
from turtle import *
def curvemove():
for i in range(200):
right(1)
forward(1)
setup(600,600,400,400) # 在桌面屏幕(400,400)位置创建600×600大小的画布窗体
hideturtle() # 隐藏画笔形状
pencolor('black') # 画笔颜色
fillcolor("red") # 填充颜色
pensize(2) # 设置画笔的粗细
# 开始填充
begin_fill()
left(140)
forward(111.65)
curvemove()
left(120)
curvemove()
forward(111.65)
end_fill()
# 填充完成
penup()
goto(-27, 85)
pendown()
done() # 乌龟图形程序中的最后一个语句
turtle.hideturtle():隐藏画笔的turtle形状
turtle.penup():提起笔移动,不绘制图形,用于另起一个地方绘制
turtle.goto(x,y):将画笔移动到坐标为x,y的位置
turtle.pendown():移动时绘制图形,缺省时也为绘制
10. 使用循环输出由星号“*”组成的实心菱形图案
# 前四行输出(第一行输出四个空格)
for i in range(0,4):
for y in range(0,4 - i):
print(" ",end = "")
print('* '*i)
# 后四行输出
for i in range(0,4):
for x in range(0,i):
print(" ",end = "")
print('* '*(4 - i))
总结
turtle库
turtle库是Python语言中一个很流行的绘制图像的函数库。操纵海龟绘图有着许多的命令,这些命令可以划分为3种:一种为运动命令,一种为画笔控制命令,还有一种是全局控制命令,其他的是其他命令。
画笔运动命令:
命令 | 说明 |
---|---|
turtle.forward(distance) | 向当前画笔方向移动distance像素长度 |
turtle.backward(distance) | 向当前画笔相反方向移动distance像素长度 |
turtle.right(degree) | 顺时针移动degree° |
turtle.left(degree) | 逆时针移动degree° |
turtle.pendown() | 移动时绘制图形,缺省时也为绘制 |
turtle.goto(x,y) | 将画笔移动到坐标为x,y的位置 |
turtle.penup() | 提起笔移动,不绘制图形,用于另起一个地方绘制 |
turtle.circle() | 画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆 |
setx( ) | 将当前x轴移动到指定位置 |
sety( ) | 将当前y轴移动到指定位置 |
setheading(angle) | 设置当前朝向为angle角度 |
home() | 设置当前画笔位置为原点,朝向东。 |
dot® | 绘制一个指定直径和颜色的圆点 |
画笔控制命令:
命令 | 说明 |
---|---|
turtle.fillcolor(colorstring) | 绘制图形的填充颜色 |
turtle.color(color1, color2) | 同时设置pencolor=color1, fillcolor=color2 |
turtle.filling() | 返回当前是否在填充状态 |
turtle.begin_fill() | 准备开始填充图形 |
turtle.end_fill() | 填充完成 |
turtle.hideturtle() | 隐藏画笔的turtle形状 |
turtle.showturtle() | 显示画笔的turtle形状 |
全局控制命令:
命令 | 说明 |
---|---|
turtle.clear() | 清空turtle窗口,但是turtle的位置和状态不会改变 |
turtle.reset() | 清空窗口,重置turtle状态为起始状态 |
turtle.undo() | 撤销上一个turtle动作 |
turtle.isvisible() | 返回当前turtle是否可见 |
stamp() | 复制当前图形 |
turtle.write(s [,font=(“font-name”,font_size,“font_type”)]) | 写文本,s为文本内容,font是字体的参数,分别为字体名称,大小和类型;font为可选项,font参数也是可选项 |