Turtle库使用(bgpic,circle,hideturtle)

你还在用循环画多边形吗?

你还的海归窗口还是纯色吗?

......

简介:

     Python的turtle库的易操作,对初学者十分友好。对于初学者来说,刚学编程没多久可以写出许多有趣的可视化东西,这是对学习编程极大的鼓舞,可以树立对编程学习的信心。当然turtle本身也十分有趣,可以用它画出很多奇妙的图案。

Turtle基本函数使用:

forward() | fd() 前进

backward() | bk() | back() 后退

right() | rt() 右转

left() | lt() 左转

goto() | setpos() | setposition() 前往/定位

circle() 画圆画 多边形

dot() 画点

pendown() | pd() | down() 画笔落下

penup() | pu() | up() 画笔抬起

pensize() | width() 画笔粗细

pen() 画笔

isdown() 画笔是否落下

color() 颜色

pencolor() 画笔颜色

fillcolor() 填充颜色

filling() 是否填充

begin_fill() 开始填充

end_fill() 结束填充

write() 书写

showturtle() | st() 显示海龟

hideturtle() | ht() 隐藏海龟

turtle 官方学习网站:

turtle --- 海龟绘图 — Python 3.12.4 文档源码: Lib/turtle.py 概述: 海龟绘图是对 最早在 Logo 中引入的受欢迎的几何绘图工具 的实现,它由 Wally Feurzeig, Seymour Papert 和 Cynthia Solomon 在 1967 年开发。 Turtle star: 使用海龟绘图可以编写重复执行简单动作的程序画出精细复杂的形状。 在 Python 中,海龟绘图提供了一个实体“海龟”形象(带有...icon-default.png?t=N7T8https://docs.python.org/zh-cn/3/library/turtle.html#using-screen-events

bgpic(picname)

作用:来设置背景图片

参数:picname是一个字符串,代表图片的文件名(包括路径,如果图片不在当前工作目录下的话)

支持的图片格式:turtle.bgpic()函数支持多种常见的图片格式,如.gif、.png、.jpeg等

图片自适应:使用turtle.bgpic()设置的背景图片能够自动适应绘图窗口的大小

动态背景:除了静态图片外,turtle.bgpic()还支持动态图片(如GIF动画)

circle(radius,extent=None,steps=None)

作用:在turtle模块中用于绘制圆形或弧形

参数:radius(必需):圆的半径,以像素为单位。当值为正数时,半径在小海龟的左侧;当值为负数时,半径在小海龟的右侧。
        extent(可选):绘制弧形的角度。默认值为None,表示绘制整个圆形(360度)。如果给出了一个角度值(例如180),则会绘制一个扇形或弧形。角度可以是正数或负数,其中1度等于π/180弧度。
        steps(可选):绘制圆或弧形时使用的边数。当指定了这个参数后,circle指令绘制的将是一个由steps条线段连接起来的多边形,而不是一个平滑的弧形。默认值为None,表示自动选择一个合适的值来绘制平滑的圆或弧形。

hideturtle()

作用:隐藏绘图窗口中的海龟(turtle)图标

注意:hideturtle() 方法只影响调用它的海龟对象。如果你有多个海龟对象,并且想要隐藏它们中的某一个,你需要对该对象调用 hideturtle() 方法。如果你想要隐藏所有的海龟对象,你需要对每个对象都调用 hideturtle() 方法。

满天星.py
"""
主题:
时间:{2024/6/20}
作者:香蕉不熟
"""
import random as rd
import turtle as t

def wjx(r):
    num = 1
    t.begin_fill()
    while num<= 5:
        t.forward(r)
        t.left(144)
        num += 1
    t.begin_fill()

def main():
    t.speed(0)
    t.pensize(1)
    t.bgcolor('black')
    t.color('gold')
    t.penup()
    t.goto(-80,-15)
    t.write('你的眼里满天星光', font=('宋体',16,'bold'))
    t.pendown()
    for i in range(50):
        # 随机星星边长
        r = rd.uniform(8, 16)
        # 随机坐标
        x = rd.uniform(-300, 300)
        y = rd.uniform(-300, 300)
        # 随机角度
        s = rd.uniform(0, 360)
        t.penup()
        t.left(s)
        t.goto(x,y)
        t.pendown()
        wjx(r)
        i += 1
    t.hideturtle()
    t.done()

if __name__ == '__main__':
    main()
小红花.py
"""
主题:turtle库练习
时间:{2024/5/29}
作者:香蕉不熟
"""
#导入海归库
import turtle as t
def main():
    #设置颜色
    t.color('red')
    #设置速度
    t.speed(1)
    #设置窗口
    num = t.numinput('小红花','有几朵花瓣',6)
    #花瓣循环
    for i in range(int(num)):
        t.forward(16)
        t.circle(30)
        t.right(360/num)
    #停留窗口
    t.done()
if __name__ == '__main__':
    main()
奥运五环.py
"""
主题:
时间:{2024/6/20}
作者:香蕉不熟
"""
import turtle as t

def main():
    t.speed(0)
    t.pensize(5)
    #创建两个列表储存颜色
    color1 = ['blue','black','red']
    color2 = ['yellow','green']
    #循环变量初始值
    num1 = 1
    num2 = 1
    #索引变量初始值
    i1 = 0
    i2 = 0
    #横坐标初始值
    x1 = -100
    x2 = -50

    while num1 < 4:
        t.penup()
        t.goto(x1,50)
        t.pendown()
        t.pencolor(color1[i1])
        t.circle(50)
        i1 += 1
        num1 += 1
        x1 += 110

    while num2 < 3:
        t.penup()
        t.goto(x2,-10)
        t.pendown()
        t.pencolor(color2[i2])
        t.circle(50)
        i2 += 1
        num2 += 1
        x2 += 115

    t.hideturtle()
    t.done()

if __name__ == '__main__':
    main()
折叠的五个五角星.py
"""
主题:
时间:{2024/6/20}
作者:香蕉不熟
"""
import turtle as t
def d5s(r):
    num = 1
    while num <6:
        t.forward(r)
        t.lt(144)
        num += 1
    r += 10
    t.hideturtle()
    if r <= 100:
        d5s(r)
def main():
    t.speed(0)
    t.pensize(2)
    t.pencolor('red')
    r = 50
    t.penup()
    t.backward(100)
    t.pendown()
    d5s(r)
    t.done()
if __name__ == '__main__':
    main()
几何图形.py
"""
主题:
时间:{2024/6/20}
作者:香蕉不熟
"""
import turtle as t
t.speed(0)
t.pensize(3)
def wenzi():
    t.pencolor('green')
    t.penup()
    t.goto(-100,50)
    t.pendown()
    t.write('Coll Colorful Shapes',font=('Times',18,'bold'))
def sjx():
    t.penup()
    t.goto(-200,-50)
    t.pendown()
    t.color('red')
    t.begin_fill()
    t.circle(40,steps=3)
    t.end_fill()
def sbx():
    t.penup()
    t.goto(-100,-50)
    t.pendown()
    t.color('blue')
    t.begin_fill()
    t.circle(40,steps=4)
    t.end_fill()
def wbx():
    t.penup()
    t.goto(0,-50)
    t.pendown()
    t.color('yellow')
    t.begin_fill()
    t.circle(40,steps=5)
    t.end_fill()
def lbx():
    t.penup()
    t.goto(100,-50)
    t.pendown()
    t.color('seashell')
    t.begin_fill()
    t.circle(40,steps=6)
    t.end_fill()
def yx():
    t.penup()
    t.goto(200,-50)
    t.pendown()
    t.color('purple')
    t.begin_fill()
    t.circle(40)
    t.end_fill()

def main():
    wenzi()
    sjx()
    sbx()
    wbx()
    lbx()
    yx()
    t.hideturtle()
    t.done()

if __name__ == '__main__':
    main()
风车.py
"""
主题:
时间:{2024/6/20}
作者:香蕉不熟
"""
import turtle as t

def main():
    t.speed(0)
    t.pensize(3)
    colors = ['red','orange','blue','green']
    i = 0
    num = 1

    while num < 5:
        t.begin_fill()
        t.color(colors[i])
        t.circle(40,steps=3)
        t.end_fill()
        t.penup()
        t.left(90)
        t.pendown()
        i += 1
        num += 1

    t.hideturtle()
    t.done()

if __name__ == '__main__':
    main()

画画课堂.py

'''
主题:我的画画课堂
时间:2024/3/29
作者:香蕉不熟
'''
import turtle as t
import 满天星
import 小红花
import 奥运五环
import 折叠的五个五角星
import 几何图形
import 风车

def main():
    t.bgpic('pika_3.gif')
    t.penup()
    t.goto(-80,100)
    t.pendown()
    t.write('欢迎来到画画课堂',font=('宋体',26,'bold'))
    t.hideturtle()
    while True:
        x = t.textinput('画画课堂','请输入你想画的图形如满天星、奥运五环')
        t.clearscreen()
        t.speed(0.005)
        if x == '结束':
            break
        elif x == '满天星':
            满天星.main()
        elif x== '奥运五环':
            奥运五环.main()
        elif x == '小红花':
            小红花.main()
        elif x =='折叠的五个五角星':
            折叠的五个五角星.main()
        elif x == '几何图形':
            几何图形.main()
        elif x == '风车':
            风车.main()
        else:
            t.penup()
            t.goto(-200,100)
            t.pendown()
            t.write('你输入的画笔不合格,重新输入',font=('宋体',26,'bold'))
            t.hideturtle()
    t.done()

if __name__=='__main__':
    main()

运行结果:

  • 32
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值