【发布时间】:2015-10-22 15:25:43
【问题描述】:
所以我正在尝试使用正方形制作谢尔宾斯基。我想递归地做这样的事情
我想改变乌龟的位置,让它在正方形的边上形成更多的正方形
我似乎无法改变海龟的位置,使它变成这个形状。海龟刚刚开始在我制作的 4 个方格之外制作方格
我的代码是
from math import sqrt
import turtle
window=turtle.Screen
t=turtle.Turtle()
t.color("black")
s=100
def Draw_sirepinski_square(t,s):
for i in range (1,5):
t.forward(s)
t.left(90)
t.left(45)
t.forward(sqrt((s**2)+(s**2)))
t.right(45)
t.backward(s)
t.right(45)
t.forward(sqrt((s**2)+(s**2)))
t.left(45)
t.backward(s)
def sierpinski(n):
if n ==1:
Draw_sirepinski_square(t,s)
else:
sierpinski(n-1)
curPos = t.pos()
t.penup()
t.setpos(curPos[0]-s/(2*(n-1)), curPos[1]+s)
t.pendown()
Draw_sirepinski_square(t, s/(2*(n-1)))
t.penup()
t.setpos(curPos)
t.setpos(curPos[0]+s, curPos[1]+s)
t.pendown()
Draw_sirepinski_square(t, s/(2*(n-1)))
t.penup()
t.setpos(curPos)
t.setpos(curPos[0]+s, curPos[1]-s/(2*(n-1)))
t.pendown()
print(curPos)
Draw_sirepinski_square(t, s/(2*(n-1)))
t.penup()
t.setpos(curPos)
t.setpos(curPos[0]+s, curPos[1]+s)
t.pendown()
print(curPos)
sierpinski(3)
【问题讨论】:
-
那么...你有什么问题?
-
我似乎无法改变海龟的位置以使其形成这种形状。海龟刚刚开始在我制作的 4 个方格内制作方格
-
请提供minimal reproducible example 并明确说明问题。
-
完成(y)我希望这样做
标签: python recursion turtle-graphics