如上所示,这样一幅图,可以清晰地看出整个图形由两个规则图形组成,即矩形和等腰三角形。
使用turtle进行绘制的时候,可按如下顺序进行:
代码如下:
首先导入库包
import turtle as t
import math as m
进行基础设置
t.setup(600,600) # 窗口大小及位置的设置
t.hideturtle() # 隐藏代表乌龟的箭头图标
t.speed(0) # 绘图速度设置为最快
绘制代表树叶的等腰三角形
t.penup() # 抬笔
t.goto(-50,-100) # 让乌龟移动到坐标为(-50,-100)的位置
t.setheading(0) # 设置乌龟的朝向
t.pendown() # 落笔
t.begin_fill() # 开始填充。想要对图形进行填充,就必须在这个图形刚开始画前写上此函数
t.fillcolor('dark green') # 设置填充颜色
t.pencolor('dark green') # 设置笔迹的颜色,即图形边线的颜色
t.forward(100) # 前进
t.setheading(105) # 改变朝向
t.forward(50 / m.sin(15 / 180 * m.pi)) # 前进
t.setheading(255) # 改变朝向
t.forward(50 / m.sin(15 / 180 * m.pi)) # 前进
t.end_fill() # 结束填充。开始填充和结束填充成对出现
此处需要使用到math库的sin函数,需要注意的是它的参数是弧度制的,不是角度制。
绘制代表树干的矩形
t.penup()
t.goto(-20,-100)
t.pendown()
t.setheading(0)
t.pencolor('brown')
t.begin_fill()
t.fillcolor('brown')
for i in range(2):
t.forward(40)
t.right(90)
t.forward(60)
t.right(90)
t.end_fill()
这边主要用到一个循环结构,for语句,矩形的绘制可以按一长一宽的顺序分为两部分,也就是循环两次。
整体代码:
import turtle as t
import math as m
t.setup(600,600)
t.hideturtle()
t.speed(0)
t.penup()
t.goto(-50,-100)
t.setheading(0)
t.pendown()
t.begin_fill()
t.fillcolor('dark green')
t.pencolor('dark green')
t.forward(100)
t.setheading(105)
t.forward(50 / m.sin(15 / 180 * m.pi))
t.setheading(255)
t.forward(50 / m.sin(15 / 180 * m.pi))
t.end_fill()
t.penup()
t.goto(-20,-100)
t.pendown()
t.setheading(0)
t.pencolor('brown')
t.begin_fill()
t.fillcolor('brown')
for i in range(2):
t.forward(40)
t.right(90)
t.forward(60)
t.right(90)
t.end_fill()
t.done()
这个图案比上面的图更为简单一些,只需绘制两个交叠的等边三角形即可,整体代码如下:
import turtle as t
t.setup(600,600)
t.hideturtle()
t.speed(0)
t.penup()
t.goto(-100,0)
t.pendown()
t.setheading(0)
t.pencolor('dark green')
t.begin_fill()
t.fillcolor('dark green')
for i in range(3):
t.forward(100)
t.left(120)
t.end_fill()
t.penup()
t.goto(-30,0)
t.pendown()
t.setheading(0)
t.pencolor('dark green')
t.begin_fill()
t.fillcolor('dark green')
for i in range(3):
t.forward(80)
t.left(120)
t.end_fill()
t.done()
由于是正三角形,十分规则,每条边的长度和每个角的角度都是相等的,又可利用循环结构来简化绘制。
这张图用到一个不同的图形——圆,可以使用circle()函数来实现;另一个需要注意的就是,这是圆与矩形的重叠,且两者的颜色不一样,这就需要我们思考一下绘制的顺序。
只有先绘制出填充为红色的圆,而后再绘制白色填充的矩形,方能达到此效果;若是先绘制矩形,再绘制圆,则圆在矩形的上层,将矩形覆盖住,便只能看见填充为红色的圆。
整体代码:
import turtle as t
t.setup(600,600)
t.hideturtle()
t.speed(0)
t.penup()
t.goto(0,-100)
t.pendown()
t.setheading(0)
t.pencolor('red')
t.begin_fill()
t.fillcolor('red')
t.circle(100)
t.end_fill()
t.penup()
t.goto(-80,-10)
t.pendown()
t.pencolor('white')
t.setheading(0)
t.begin_fill()
t.fillcolor('white')
for i in range(2):
t.forward(160)
t.left(90)
t.forward(20)
t.left(90)
t.end_fill()
t.done()