turtle的setheading函数详解

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)

运行结果参见下图:

turtle的setheading函数详解_第1张图片

特别提示: 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)

运行结果参见下图:

turtle的setheading函数详解_第2张图片

画三角形

import turtle as t

for i in range(3):  #range(3)取值范围 [0,1,2]

    t.seth(i*120)

    t.fd(200)

运行结果参见下图:

turtle的setheading函数详解_第3张图片

画狮子头

先给出效果图:

turtle的setheading函数详解_第4张图片

源码如下:

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()

附录:

turtle --- 海龟绘图 — Python 3.9.7 文档

你可能感兴趣的:(Python学习,python)