Python的turtle库(教师节祝福,用turtle画一只熊猫和一个太阳)

目录

一、基本功能

1. turtle库的官方文档

2. 开始绘制

3. 绘制结果

4. 常用的turtle库的方法


一、基本功能

1. turtle库的官方文档

官方文档

2. 开始绘制

import turtle as t
import math as m
import random as r

t.bgpic(r'D:/桌面/1-210102132145.gif')

def drawX(a, i):
    angle = m.radians(i)
    return a * m.cos(angle)


def drawY(b, i):
    angle = m.radians(i)
    return b * m.sin(angle)


# 设置背景颜色,窗口位置以及大小
# t.bgcolor("#d3dae8")
# t.setup(width=900, height=600, startx=0, starty=0)
t.title("老师,祝您节日快乐!")

t.setup(width=1450, height=1450, startx=0, starty=0)
t.speed(0)
t.rt(-120)
t.up()
t.pensize(6)
t.goto(180, 150)
t.bgcolor('white')
t.down()
t.color('black')
t.circle(190, 100)
t.fd(20)
for i in range(260):
    t.fd(1)
    t.lt(0.5)
for i in range(8):
    t.fd(19)
    t.lt(1)
for i in range(260):
    t.fd(1)
    t.lt(0.5)
t.up()
t.goto(-70, -16)
t.setheading(245)
t.down()
for i in range(35):
    t.fd(1.5)
    t.lt(0.5)
for i in range(5):
    t.fd(1.5)
    t.lt(0.0125)
for i in range(9):
    t.fd(0.75)
    t.lt(1.5)
for i in range(22):
    t.fd(1)
    t.lt(0.3)
for i in range(20):
    t.fd(1)
    t.lt(3)
for i in range(180):
    t.fd(1)
    t.lt(0.20)
for i in range(20):
    t.fd(1)
    t.lt(3)
for i in range(22):
    t.fd(1)
    t.lt(0.3)
for i in range(9):
    t.fd(0.75)
    t.lt(1.5)
for i in range(5):
    t.fd(1.5)
    t.lt(0.0125)
for i in range(25):
    t.fd(1.5)
    t.lt(0.5)
t.up()
t.goto(-65, -119)
t.down()
t.begin_fill()
t.color('black')
t.setheading(280)
t.circle(30, 135)
t.end_fill()
t.up()
t.goto(50, -129)
t.down()
t.begin_fill()
t.color('black')
t.setheading(305)
t.circle(30, 135)
t.end_fill()
t.up()
t.goto(200, 118)
t.down()
t.begin_fill()
t.color('black')
t.setheading(20)
t.circle(50, 210)
t.end_fill()
t.up()
t.goto(-70, 227)
t.down()
t.begin_fill()
t.color('black')
t.setheading(103)
t.circle(50, 230)
t.end_fill()
t.up()
t.goto(117, -40)
t.setheading(25)
t.down()
t.begin_fill()
t.color('black')
for i in range(70):
    t.fd(1)
    t.lt(-0.5)
for i in range(160):
    t.fd(0.25)
    t.lt(-0.9)
for i in range(70):
    t.fd(1)
    t.lt(-0.65)
t.end_fill()
t.up()
t.goto(-75, -25)
t.setheading(155)
t.down()
t.begin_fill()
t.color('black')
for i in range(70):
    t.fd(1)
    t.lt(0.5)
for i in range(160):
    t.fd(0.25)
    t.lt(0.85)
for i in range(70):
    t.fd(1)
    t.lt(0.65)
t.end_fill()
t.up()
t.goto(-45, 80)
t.begin_fill()
t.color('black')
t.down()
t.circle(25.25)
t.end_fill()
t.up()
t.goto(-50.5, 74.5)
t.begin_fill()
t.color('black')
t.down()
t.circle(26.25)
t.end_fill()
t.up()
t.goto(-43, 100)
t.begin_fill()
t.color('white')
t.down()
t.circle(5.5)
t.end_fill()
t.up()
t.goto(100, 67)
t.begin_fill()
t.color('black')
t.down()
t.circle(25.25)
t.end_fill()
t.up()
t.goto(105.5, 63.5)
t.begin_fill()
t.color('black')
t.down()
t.circle(25.25)
t.end_fill()
t.up()
t.goto(96, 92)
t.begin_fill()
t.color('white')
t.down()
t.circle(5.5)
t.end_fill()
t.up()
t.goto(105, 40)
t.begin_fill()
t.color('tomato')
a = 0.45
t.down()
t.setheading(270)
for i in range(120):
    if 0 <= i < 30 or 60 <= i < 90:
        a = a+0.045
        t.lt(3)
        t.fd(a)
    else:
        a = a-0.045
        t.lt(3)
        t.fd(a)
t.end_fill()
t.up()
t.goto(-60, 50)
t.begin_fill()
t.color('tomato')
a = 0.4
t.down()
t.setheading(90)
for i in range(120):
    if 0 <= i < 30 or 60 <= i < 90:
        a = a+0.04
        t.lt(3)
        t.fd(a)
    else:
        a = a-0.04
        t.lt(3)
        t.fd(a)
t.end_fill()
t.up()
t.goto(20, 75)
t.begin_fill()
t.color('black')
t.setheading(125)
t.down()
for i in range(25):
    t.fd(0.75)
    t.lt(-1)
for i in range(20):
    t.fd(0.25)
    t.lt(-4.5)
for i in range(30):
    t.fd(0.75)
    t.lt(-1)
for i in range(20):
    t.fd(0.25)
    t.lt(-4.5)
for i in range(25):
    t.fd(0.75)
    t.lt(-1)
for i in range(20):
    t.fd(0.25)
    t.lt(-4.5)
t.end_fill()
t.up()
t.setheading(260)
t.goto(23, 75)
t.down()
for i in range(45):
    t.fd(1)
    t.lt(3)
t.up()
t.setheading(260)
t.goto(23, 75)
t.down()
for i in range(45):
    t.fd(1)
    t.lt(-3)
t.color('red')
x = -100
t.up()

t.color("red", "yellow")
t.goto(-400, 200)
t.down()
t.begin_fill()
for _ in range(50):
    t.pensize(1)
    t.forward(200)

    t.left(170)
t.end_fill()


# ##随机
color = ["#e28cb9", "#805a8c", "#eaa989", "#6e90b7", "#b8b68f", "#e174b5", "#cf737c", "#7c8782"]
for i in range(80):
    t.pu()
    x = r.randint(-420, 420)
    y = r.randint(-25, 30)
    t.goto(x, y)
    t.pd()
    t.dot(r.randint(2, 5), color[r.randint(0, 7)])
for i in range(40):
    t.pu()
    x = r.randint(-190, 190)
    y = r.randint(-35, 10)
    t.goto(x, y)
    t.pd()
    t.dot(r.randint(2, 5), color[r.randint(0, 7)])

for i in range(40):
    t.pu()
    x = r.randint(-480, 480)
    y = r.randint(60, 90)
    t.goto(x, y)
    t.pd()
    t.dot(r.randint(2, 5), color[r.randint(0, 7)])
for i in range(30):
    t.pu()
    x = r.randint(-450, 450)
    y = r.randint(45, 70)
    t.goto(x, y)
    t.pd()
    t.dot(r.randint(2, 5), color[r.randint(0, 7)])
for i in range(50):
    t.pu()
    x = r.randint(-500, 500)
    y = r.randint(120, 300)
    t.goto(x, y)
    t.pd()
    t.dot(r.randint(3, 5), color[r.randint(0, 7)])
t.seth(90)
t.pu()
t.goto(0, 0)
t.fd(300)
t.left(90)
t.fd(170)
t.pd()
t.write("Happy Teachers' Day", font=("Comic Sans MS", 50))


t.color('purple')
t.penup()
t.goto(-400, -200)
t.pendown()
t.write('致:敬爱的老师们  ', font=('楷体', 32, 'bold'))
t.color('red')
t.penup()
t.goto(-300, -280)
t.pendown()
t.write('祝 您 节 日 快 乐!桃 李 满 天 下!', font=('楷体', 30, 'bold'))
t.color('purple')
t.done()

3. 绘制结果

4. 常用的turtle库的方法

import turtle

#导入turtle功能模块 # 前进 后退 转向 forward backward left right


turtle.bgcolor("black")

#设置画面背景色


turtle.setup(width=200,height=200,startx=0,starty=0)

#设置窗口大小和在屏幕上的坐标


turtle.bgpic("1.gif")

#设置背景图片,只支持gif格式


turtle.onscreenclick(x,y)

#用户点击屏幕时获得笔的坐标,制作app时响应用户的点击操作32


turtle.bye()

#退出turtle,无任何提示信息


turtle.exitonclick()

#点击后退出turtle


turtle.done()

#关闭turtle,一般在使用完turtle后添加,否则会无响应


turtle.Pen()

#启用画笔


turtle.Pen().color("#cc4455")

#画笔颜色设置,颜色可以使用英文单词或常见的#开头十六进制数表示


turtle.Pen().forward(2)

#画笔前进长度,以像素为单位


turtle.Pen().backward(2)

#画笔后退长度


turtle.Pen().home()

#画笔的初始位置


turtle.Pen().left(90)

#画笔向左转


turtle.Pen().right(90)

#画笔向右转


turtle.Pen().width(3)

#设置画笔宽度,以像素为单位


t=turtle.Pen()

#让t代表turtle.Pen(),上面的内容可以简化

#例如turtle.Pen.color("#cc4455")简化为t.color("#cc4455")

#后面内容都用t表示


t.penup()

#抬起笔,停止写


t.pendown()

#放下笔,开始写


t.write("balabala",font=("Arial",23,"bold"))

#写指定内容”balabala“,并设置字体、字号、加粗等


t.circle(4)

#以参数为半径画圆


t.dot(4)

#以参数为直径画点


t.position()

#笔的坐标(x,y)


t.heading()

#笔的朝向


t.setx(position[0])

#设置笔的x坐标为position记录的x坐标,position由position=t.position()获得


t.sety(position[1])

#设置笔的y坐标为position记录的y坐标


t.setheading(30)

#设置笔的朝向,画笔默认朝向为正右方


t.setpos(x,y)

#设置笔的坐标


t.fillcolor("#33de55")

t.begin_fill()

t.circle(5)

t.end_fill()

#设置填充颜色,开始填充,画圆填充,填充结束


t.goto(x,y)

#笔移动到坐标(x,y)


t.speed(0)

#笔的移动速度参数范围0.5——10,范围之外为0,最快,不设置速度为最慢


t.hideturtle()

#隐藏画笔


t.showturtle()

#显示画笔


t.clear()

#删除画的内容,不修改画笔参数

t.reset()

#删除画的内容,还原画笔参数为初始值

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值