import graphics
def main():
window = graphics.GraphWin("x", 600, 400)
cntr = graphics.Point(300,200)
size = 200
wrapdiamond(size, window,cntr)
window.getMouse()
def wrapdiamond(size, window,cntr):
count = 0
if count == 4:
return
if count < 4:
diamond(size,window,"black", cntr)
x= cntr.getX()+-0.5*size
y = cntr.getY()+-0.5*size
cntr= graphics.Point(x,y)
size = size*0.33
count +=1
diamond(size,window,"black", cntr)
def diamond(size,window,color,cntr):
p1 = cntr.clone()
p1.move(0,-0.5*size)
x1 = p1.getY()
newcntr = graphics.Point(300,x1)
p2 = cntr.clone()
p2.move(-0.5*size,0)
p3 = cntr.clone()
p3.move(0,0.5*size)
p4 = cntr.clone()
p4.move(0.5*size,0)
diamond= graphics.Polygon(p1, p2, p3, p4)
diamond.setFill("black")
diamond.draw(window)
だから上の写真が私の目標です。これを再帰的に (同じ関数を呼び出して) 行う必要があり、中心点、サイズ、色をシフトします。私の現在の方法では、これの多くをハードコーディングする可能性が非常に高いと感じています。これを再帰的に実装するにはどうすればよいですか?