turtle的setheading函数
setheading( to_angle),功能时设置海龟的朝向为 to_angle。setheading可简写为seth。
to_angle 一个表示角度的数值 (整型或浮点型)。to_angle为正逆时针转向,顺时针旋转为to_angle为负顺时针转向。每次setheading(to_angle) 小海龟以正东(X轴正方向)为基准转向to_angle角度。
例如:
import turtle as t
t.seth(60)
t.fd(100)
t.seth(-30)
t.fd(150)
运行结果参见下图:
特别提示: right(to_angle)或left(to_angle)与setheading(to_angle)的区别
每次setheading(to_angle) 小海龟以正东(X轴正方向)为基准转向to_angle角度。与之不同,每次right(to_angle)或left(to_angle)小海龟以当前方向为基准向right或left转向to_angle角度。
例如:
import turtle as t
t.seth(60)
t.fd(100)
t.seth(-30)
t.fd(150)
t.left(90)
t.fd(50)
运行结果参见下图:
画三角形
import turtle as t
for i in range(3): #range(3)取值范围 [0,1,2]
t.seth(i*120)
t.fd(200)
运行结果参见下图:
画狮子头
先给出效果图:
源码如下:
import turtle as t
def hair(): # 画头发
t.penup()
t.goto(-50, 150)
t.pendown()
t.fillcolor('#a2774d')
t.begin_fill()
for j in range(10): # 重复执行10次
t.setheading(60 - (j * 36)) # 每次调整初始角度
t.circle(-50, 120) # 画120度的弧
t.end_fill()
def face(): # 画脸
t.penup()
t.goto(0, 100)
t.pendown()
t.fillcolor('#f2ae20')
t.begin_fill()
t.setheading(180)
t.circle(85)
t.end_fill()
#下巴
t.circle(85, 120)
t.fillcolor('white')
t.begin_fill()
t.circle(85, 120)
t.setheading(135)
t.circle(100, 95)
t.end_fill()
def ears(dir): # 画眼睛,dir用来设置方向,左右眼对称
t.penup()
t.goto((0-dir)*30, 90)
t.setheading(90)
t.pendown()
t.fillcolor('#f2ae20')
t.begin_fill()
t.circle(dir*30)
t.end_fill()
t.penup()
t.goto((0-dir)*40, 85)
t.setheading(90)
t.pendown()
t.fillcolor('white')
t.begin_fill()
t.circle(dir*17)
t.end_fill()
def nose(): # 画鼻子
t.penup()
t.goto(20, 0)
t.setheading(90)
t.pendown()
t.fillcolor('#a2774d')
t.begin_fill()
t.circle(20)
t.end_fill()
def eye(dir): # 画耳朵,dir用来设置方向,左右耳对称
t.penup()
t.goto((0-dir)*30, 20)
t.setheading(0)
t.pendown()
t.fillcolor('black')
t.begin_fill()
t.circle(10)
t.end_fill()
def mouth(): # 画嘴巴
t.penup()
t.goto(0, 0)
t.setheading(-90)
t.pendown()
t.forward(50)
t.setheading(0)
t.circle(80, 30)
t.penup()
t.goto(0, -50)
t.setheading(180)
t.pendown()
t.circle(-80, 30)
hair()
ears(1)
ears(-1)
face()
eye(1)
eye(-1)
mouth()
nose()
t.done()