谢尔宾斯基地毯,和谢尔宾斯基三角形相似,下图就是谢尔宾斯基地毯
一,起始代码
p.width(3)
p.speed(10)
import turtle
n=int(input())
base=int(200/(3 ** n))
length=base * (3 ** n)
p.pensize(0.1)
turtle.tracer(False)
p.pencolor('blue')
p.fillcolor('blue')
p.begin_fill()
for i in range(1, 5):p.forward(length)p.left(90)
p.hide()
p.end_fill()
调笔粗细速度,并绘制一个大蓝正方形
二,定义函数
def carpet(N):def check(n , x , y):if n <= base:return Truen2 = n // 3if n2 <= x < n2 * 2 and n2 <= y < n2 * 2:return Falsereturn check(n2 , x % n2 , y % n2)for y in range(0 , N , base):for x in range(0 , N , base):continueelse:p.penup()p.setx(x)p.sety(y)p.pendown()p.pensize(0.1)p.pencolor('white')p.fillcolor('white')p.begin_fill()for i in range(1,5):p.forward(base)p.left(90)p.end_fill()p.penup()
在定义函数carpet时,又定义了函数check(简称套娃)
定义函数check的内容:画白色正方形并不断调用自己,再将被调用的自己的变量的值减少,直到n小于等于base才停止调用。
三,调用函数
carpet(length)
字面意思,调用刚刚定义的函数
四,结束代码
p.draw()
就是开始绘画
代码结束