前期准备
首先,使用Python
内置的Turtle
绘图库需要在程序前添加以下代码:
import turtle
也可以写成这样:
from turtle import *
我们来讲一讲它们的区别:
使用import
时,需要定义一个变量作为参数控制项,如:
import turtlet=turtle.Pen()
# 画图t.forward(10) # 向右画10像素,详见下表
而使用from
时,可以直接命令程序,不需要多余语句
from turtle import *# 画图forward(10) # 向右画10像素,详见下表
基本函数与用法
函数 | 功能 |
---|---|
forward(x) 简写:fd(x) | 向右 前进x 像素的长度,若为负值,则向反方向绘图。默认前进方向为右 |
backward(x) 简写:bk(x) | 向左 前进x 像素的长度,若为负值,则向反方向(右 )绘图 |
goto(x,y) | 从当前位置到(x,y) 画线 |
circle(r,extent = x) | 绘制半径为r ,角度为x 的弧形 |
left(x) 简写:lt(x) | 向左转x 度 |
right(x) 简写:rt(x) | 向右转x 度 |
pencolor("red") | 设置画笔颜色为红色 (可修改) |
fillcolor("red") | 设置填充颜色 为红色 |
bgcolor(black) | 设置背景色 为黑色 |
down() | 落笔函数,没有参数 |
up() | 抬笔函数,没有参数 |
pensize(x) | 设置画笔粗细为x |
speed(x) | 设置绘画速度为x ,数值越大越快,0 为最快 |
done() | 暂停程序,停止画笔绘制,但绘图窗体不关闭,直到用户关闭Turtle 图形化窗口为止,没有参数 |
绘画图形
一、画一个正方形
import turtlet=turtle.Pen()t.pencolor("orange") # 画笔颜色设置为橙色for i in range(1,5): t.fd(50) # 向右画50像素 t.lt(90) # 转90度,画下一条边
二、画一个三角形
步骤:先画一条边,右转120°
,再画一条边,右转120°
,最后画一条边
import turtlet=turtle.Pen()t.pencolor("orange") # 画笔颜色设置为橙色t.fd(150)t.rt(120)t.fd(150)t.rt(120)t.fd(150)
三、画一个八角星
import turtlet=turtle.Pen()t.pencolor("orange")for x in range(1,9): # 执行8次t.fd(100)t.lt(135)
四、画一个八边形
重点:每画一条边后都旋转45°
import turtlet=turtle.Pen()t.pencolor("orange")for i in range(1,9): #循环8次 t.forward(50) #画线 t.right(45) #转向
我们还能通过Turtle
画一些有趣的图形
五、其他图形
#test 1.1import turtlet=turtle.Pen()t.pencolor("orange")for i in range(1,4): t.fd(50) t.rt(120) t.fd(50) t.rt(120) t.fd(50)
import turtle #导入turtle库t = turtle.Pen()t.pencolor("orange")for i in range(5): t.forward(100) # 向右移动300 t.right(180-180/5) # 180-五角星的内角和/5t.done()
到现在为止,我们画的图形都只有一种颜色,那么,怎样才能画出多种颜色的图案呢?
我们可以先定义一个颜色列表,在每次画的时候随机
取出一种颜色,就可以画出多彩的图案
colors=["red","orange","yellow","green","blue","purple"]
随机取出颜色的代码:
t.pencolor([colors%5])
No.1、多彩的五角星
import turtle #导入turtle库t = turtle.Pen()colors=["red","orange","yellow","green","blue","purple"]for i in range(5): t.pencolor(colors[i%5]) t.forward(100) # 向右移动300 t.right(180-180/5) # 180-五角星的内角和/5t.done()
No.2、多彩的八角星
import turtlet=turtle.Pen()colors=["red","orange","yellow","green","blue","purple"]for i in range(1,9): # 执行8次t.pencolor(colors[i%6])t.fd(100)t.lt(135)
No.3、四圆镶嵌
import turtlet=turtle.Pen()colors=["red","green","yellow","blue"]for i in range(1,100):t.pencolor(colors[i%4])t.circle(i) #画圆t.lt(91)
No.4、彩虹螺旋
import turtlet=turtle.Pen()colors=["red","orange","yellow","green","blue","purple"]turtle.bgcolor("black")for i in range(500000):t.pencolor(colors[i%6])t.fd(i)t.lt(64)t.width(i/10-1)