gpt4 book ai didi

蟒 turtle : Is it possible to use layers in fill command

转载 作者:太空宇宙 更新时间:2023-11-04 02:07:18 25 4
gpt4 key购买 nike

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

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()

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

enter image description here

关于蟒 turtle : Is it possible to use layers in fill command,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54386752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com