用Python的turtle模块封装画层叠的正方形、五角星和旋涡的函数

一、效果图

二、代码

turtle_module.py

'''
这是自己写的一个小模块,里面全是封装好的用于画图的函数
'''

import turtle


def make_window(bgcolor,title):
    '''
    这是一个返回自定义花布的函数

    :参数 bgcolor:花布的背景颜色
    :参数 title:花布的标题
    '''
    window=turtle.Screen()
    window.bgcolor(bgcolor)
    window.title(title)
    return window

def get_animal(shape,pensize,color,speed):
    '''
    这是一个返回自定义的画笔(Turtle实例)的函数

    :参数 shape:画笔的形状
    :参数 pensize:画笔的粗细
    :参数 color:画笔的颜色
    :参数 speed:画笔的绘制速度
    '''
    animal=turtle.Turtle()
    animal.shape(shape)
    animal.pensize(pensize)
    animal.color(color)
    animal.speed(speed)
    return animal
    

def draw_multiple_squares(animal,size):
    '''
    这是画层叠的正方向的函数

    :参数 animal:画笔,也就是Turtle类的实例
    :参数 size:正方形的边长
    '''
    for i in range(20):
        for _ in range(4):
            animal.forward(size)
            animal.left(90)
        animal.left(18)
    animal.hideturtle()
    
def draw_spiral(animal,num,start_size,turn):
    '''
    这是画螺旋的函数

    :参数 animal:画笔,也就是Turtle类的实例
    :参数 num:层数,决定绘制多少层的螺旋
    :参数 start_size:这是螺旋的起始尺寸,建议小一点,这样比较好看
    :参数 turn:每次旋转的角度,改变这个角度,绘制的图形就会不一样
    '''
    for _ in range(num):
        animal.forward(start_size)
        animal.right(turn)
        start_size+=3
    animal.hideturtle()

def draw_star(animal):
    '''
    这是绘制五个围成一圈的五角星的方法

    :参数 animal:画笔,也就是Turtle类的实例
    '''
    for i in range(5):
        for _ in range(5):
            animal.forward(100)
            animal.right(144)
        animal.penup()
        animal.forward(350)
        animal.right(144)
        animal.pendown()
    animal.hideturtle()

draw.py

from turtle_module import make_window,get_animal,draw_spiral


window=make_window('white','Draw a spiral')
#alex是我实例化的一个画笔
alex=get_animal('turtle',2,'blue',1)
#用alex画旋涡
draw_spiral(alex,60,1,89)
window.mainloop()

上面只展示了draw_spiral这个函数的调用,另外两个函数的调用方法一样,只是需要的参数不同,按照要求传递就好。

 

如果这篇博文帮到了你,就请给我点个吧(#^.^#)

有疑问也欢迎留言~博主可nice啦,在线秒回ヾ(◍°∇°◍)ノ゙

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值