Python Turtle:是否可以在填充命令中使用图层

Python Turtle: Is it possible to use layers in fill command

我最近在开发一款软件,用于创建分形图像。但我意识到要填充形状,需要分层完成,否则会覆盖部分。这是我当前的代码:

import turtle
def CreatePolygon (turt, Side, Size):
    if Size <= 1:
        return
    else:
        #This will create a polygon of a certain size.
        #And iterate smaller polygons inside each polygon thus creating a fractal.
        for i in range (0, Side):
            turt.forward(Size)
            turt.left(360/Side)
            CreatePolygon(turt, Side, Size/(Side-1))

Size = 250
t = turtle.Turtle()
t.hideturtle()
t.speed(0)
#Calling The Function
CreatePolygon (t, 5, Size)

我的主要目的是用不同的颜色填充多边形,我知道该怎么做。问题在于填充的多边形在其内部的较大多边形被填充后被覆盖。我不确定如何解决这个问题,因为要求是:

我们在 Python turtle 中没有图层,但我们仍然可以通过一些代码的复制和重新排列来实现您想要的效果:

from turtle import Screen, Turtle

COLORS = ['red', 'green', 'blue', 'magenta', 'yellow', 'cyan']

def CreatePolygon(turt, sides, size, color=0):
    if size <= 1:
        return

    # This will create a polygon of a certain size.
    turt.fillcolor(COLORS[color])

    turt.begin_fill()
    for _ in range(sides):
        turt.forward(size)
        turt.left(360 / sides)
    turt.end_fill()

    # And iterate smaller polygons inside each polygon thus creating a fractal.
    for _ in range(sides):
        turt.forward(size)
        turt.left(360 / sides)
        CreatePolygon(turt, sides, size / (sides - 1), color + 1)

screen = Screen()
turtle = Turtle(visible=False)

# Calling The Function
screen.tracer(False)
CreatePolygon(turtle, 5, 250)
screen.tracer(True)

screen.exitonclick()

我们必须先绘制较大的多边形,填充它,然后递归绘制较小的多边形。