Python成品:运用turtle模块绘画

本文详细介绍了Python的Turtle模块,包括基本的画笔移动和控制函数,如前进、旋转、抬笔、落笔等。通过示例展示了如何绘制爱心、哆啦A梦、皮卡丘和捂脸表情,深入浅出地解释了如何利用Turtle库创建复杂的图形和动画。此外,还提供了完整的代码实现,帮助读者掌握Turtle模块的使用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Turtle模块的函数

1.画笔移动函数

函数 功能
forward(n) 向画笔的当前方向移动n像素的距离
backward(n) 向画笔当前方向的相反方向移动n像素的距离
left(n) 让画笔逆时针旋转n度
right(n) 让画笔顺时针旋转n度
pendown() 落下画笔
penup() 抬起画笔
speed(s) 设置画笔的移动速度,int(s=0~10)
goto(x,y) 将画笔移动到坐标为(x,y)的位置
circle(r,n) 绘制半径为r,角度为n的圆弧,省略n则画圆

2.画笔控制函数

函数 功能
pensize(n) 设置画笔的粗细
pencolor(color) 设置画笔的颜色
fillcolor(color) 设置图形的填充颜色
color(color1,color2) 设置画笔的颜色和图形的填充颜色
begin_fill() 准备开始填充图形
end_fill() 填充上次调用begin_fill()之后绘制的图形
hideturtle() 隐藏画笔
showturtle() 显示画笔

3.全局控制函数

函数 功能
clear() 清空画布,不改变画笔位置与状态
reset() 重置画布,让画笔回到初始状态
undo() 撤销上一个画笔动作
stamp() 复制当前图形
write(a[,m=(“m-name”, m-size, “m-type”)]) 在画布上书写文本,a为文本内容

爱心

from turtle import * # 导入turtle模块
color("red","red")   # 设置画笔颜色和图形填充颜色
pensize(2)           # 设置画笔粗细
penup()              # 抬起画笔
goto(0,-100)         # 将画笔移动到坐标为(0,-100)的位置
pendown()            # 落下画笔
begin_fill()         # 准备开始填充颜色
left(45)             # 让画笔逆时针旋转45度
forward(200)         # 向画笔的当前方向移动200像素的距离
circle(100,180)      # 绘制半径为100、角度为180的圆弧
right(90)            # 让画笔顺时针旋转90度
circle(100,180)      # 绘制半径为100、角度为180的圆弧
forward(200)         # 向画笔的当前方向移动200像素的距离
end_fill()           # 填充上次调用begin_fill()之后绘制的图形
hideturtle()         # 隐藏画笔

在这里插入图片描述

哆啦A梦

from turtle import *

# 无轨迹跳跃
def my_goto(x, y):
    penup()
    goto(x, y)
    pendown()


# 眼睛
def eyes():
    fillcolor("#ffffff")
    begin_fill()

    tracer(False)
    a = 2.5
    for i in range(120):
        if 0 <= i < 30 or 60 <= i < 90:
            a -= 0.05
            lt(3)
            fd(a)
        else:
            a += 0.05
            lt(3)
            fd(a)
    tracer(True)
    end_fill()


# 胡须
def beard():
    my_goto(-32, 135)
    seth(165)
    fd(60)

    my_goto(-32, 125)
    seth(180)
    fd(60)

    my_goto(-32, 115)
    seth(193)
    fd(60)

    my_goto(37, 135)
    seth(15)
    fd(60)

    my_goto(37, 125)
    seth(0)
    fd(60)

    my_goto(37, 115)
    seth(-13)
    fd(60)


# 嘴巴
def mouth():
    my_goto(5, 148)
    seth(270)
    fd(100)
    seth(0)
    circle(120, 50)
    seth(230)
    circle(-120, 100)


# 围巾
def scarf():
    fillcolor('#e70010')
    begin_fill()
    seth(0)
    fd(200)
    circle(-5, 90)
    fd(10)
    circle(-5, 90)
    fd(207)
    circle(-5, 90)
    fd(10)
    circle(-5, 90)
    end_fill()


# 鼻子
def nose():
    my_goto(-10, 158)
    seth(315)
    fillcolor('#e70010')
    begin_fill()
    circle(20)
    end_fill()


# 黑眼睛
def black_eyes():
    seth(0)
    my_goto(-20, 195)
    fillcolor('#000000')
    begin_fill()
    circle(13)
    end_fill()

    pensize(6)
    my_goto(20, 205)
    seth(75)
    circle(-10, 150)
    pensize(3)

    my_goto(-17, 200)
    seth(0)
    fillcolor('#ffffff')
    begin_fill()
    circle(5)
    end_fill()
    my_goto(0, 0)


# 脸
def face():
    fd(183)
    lt(45)
    fillcolor('#ffffff')
    begin_fill()
    circle(120, 100)
    seth(180)
    # print(pos())
    fd(121)
    pendown()
    seth(215)
    circle(120, 100)
    end_fill()
    my_goto(63.56, 218.24)
    seth(90)
    eyes()
    seth(180)
    penup()
    fd(60)
    pendown()
    seth(90)
    eyes()
    penup()
    seth(180)
    fd(64)


# 头型
def head():
    penup()
    circle(150, 40)
    pendown()
    fillcolor('#00a0de')
    begin_fill()
    circle(150, 280)
    end_fill()


# 画哆啦A梦
def Doraemon():
    # 头部
    head()

    # 围脖
    scarf()

    # 脸
    face()

    # 红鼻子
    nose()

    # 嘴巴
    mouth()

    # 胡须
    beard()

    # 身体
    my_goto(0, 0)
    seth(0)
    penup()
    circle(150, 50)
    pendown()
    seth(30)
    fd(40)
    seth(70)
    circle(-30, 270)

    fillcolor('#00a0de')
    begin_fill()

    seth(230)
    fd(80)
    seth(90)
    circle(1000, 1)
    seth(-89)
    circle(-1000, 10)

    # print(pos())

    seth(180)
    fd(70)
    seth(90)
    circle(30, 180)
    seth(180)
    fd(70)

    # print(pos())
    seth(100)
    circle(-1000, 9)

    seth(-86)
    circle(1000, 2)
    seth(230)
    fd(40)

    # print(pos())

    circle(-30, 230)
    seth(45)
    fd(81)
    seth(0)
    fd(203)
    circle(5, 90)
    fd(10)
    circle(5, 90)
    fd(7)
    seth(40)
    circle(150, 10)
    seth(30)
    fd(40)
    end_fill()

    # 左手
    seth(70)
    fillcolor('#ffffff')
    begin_fill()
    circle(-30)
    end_fill()

    # 脚
    my_goto(103.74, -182.59)
    seth(0)
    fillcolor('#ffffff')
    begin_fill()
    fd(15)
    circle(-15, 180)
    fd(90)
    circle(-15, 180)
    fd(10)
    end_fill()

    my_goto(-96.26, -182.59)
    seth(180)
    fillcolor('#ffffff')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值