Python之Turtle
2019-01-18 本文已影响14人
Dalvik_
![](https://img.haomeiwen.com/i5434085/0c4b55fd8d8e306b.jpeg)
画笔控制相关
- 向当前画笔方向移动distance像素长度
turtle.forward(distance)
- 向当前画笔相反方向移动distance像素长度
turtle.backward(distance)
- 顺时针移动degree°
turtle.right(degree)
- 逆时针移动degree°
turtle.left(degree)
- 移动时绘制图形,缺省时也为绘制
turtle.pendown()
- 将画笔移动到坐标为x,y的位置
turtle.goto(x,y)
- 提起笔移动,不绘制图形,用于另起一个地方绘制
turtle.penup()
- 画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆
turtle.circle()
- 将当前x轴移动到指定位置
turtle.setx( )
- 将当前y轴移动到指定位置
turtle.sety( )
- 设置当前朝向为angle角度
turtle.setheading(angle)
- 设置当前画笔位置为原点,朝向东。
turtle.home()
- 绘制一个指定直径和颜色的圆点
turtle.dot()
画笔控制相关
- 绘制图形的填充颜色
turtle.fillcolor(colorstring)
- 同时设置pencolor=color1, fillcolor=color2
turtle.color(color1, color2)
- 返回当前是否在填充状态
turtle.filling()
- 准备开始填充图形
turtle.begin_fill()
5.填充完成
turtle.end_fill()
- 隐藏画笔的turtle形状
turtle.hideturtle()
- 显示画笔的turtle形状
turtle.showturtle()
全局控制相关
- 清空turtle窗口,但是turtle的位置和状态不会改变
turtle.clear()
- 清空窗口,重置turtle状态为起始状态
turtle.reset()
- 撤销上一个turtle动作
turtle.undo()
- 返回当前turtle是否可见
turtle.isvisible()
- 复制当前图形
turtle.stamp()
- 写文本,s为文本内容,font是字体的参数,分别为字体名称,大小和类型;font为可选项,font参数也是可选项
turtle.write(s [,font=("font-name",font_size,"font_type")])
其他
- 启动事件循环 -调用Tkinter的mainloop函数。必须是乌龟图形程序中的最后一个语句。
turtle.mainloop()或turtle.done()
- 设置乌龟模式(“standard”,“logo”或“world”)并执行重置。如果没有给出模式,则返回当前模式。
turtle.mode(mode=None)
#standard 向右(东) 逆时针
#logo 向上(北) 顺时针
- 设置或返回以毫秒为单位的绘图延迟。
turtle.delay(delay=None)
- 开始记录多边形的顶点。当前的乌龟位置是多边形的第一个顶点。
turtle.begin_poly()
- 停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点。将与第一个顶点相连。
turtle.end_poly()
- 返回最后记录的多边形。
turtle.get_poly()
绘制五角星
def draw_pentagram():
"""绘制五角星"""
turtle.pencolor("red")
turtle.fillcolor('red')
turtle.begin_fill()
for i in range(5):
turtle.forward(100)
turtle.right(144)
turtle.end_fill()
递归方式绘制分形树
import turtle
def draw_branch(length, pensize):
if length > 10:
if length < 20:
turtle.pencolor('#228B22')
elif length < 40:
turtle.pencolor('#D2B48C')
else:
turtle.pencolor('#CD853F')
turtle.pensize(pensize)
turtle.forward(length)
turtle.right(20)
draw_branch(int(length * 3 / 4), int(pensize * 11 / 12))
turtle.left(40)
draw_branch(int(length * 3 / 4), int(pensize * 11 / 12))
turtle.right(20)
turtle.penup()
turtle.backward(length)
turtle.pendown()
if __name__ == '__main__':
turtle.left(90)
turtle.speed(0)
turtle.penup()
turtle.backward(200)
turtle.pendown()
draw_branch(100, 5)
turtle.hideturtle()
turtle.exitonclick()
![](https://img.haomeiwen.com/i5434085/ca79dc850003c4b0.png)