基本上我们必须使用函数和for
循环来实现这个(每个多边形之间有20个单位):
但它必须适用于任何边长的任何边多边形。到目前为止,我有:
import turtle
tess = turtle.Turtle()
wn = turtle.Screen()
def draw_poly(t, n, sz):
"""
Makes Turtle t draw an n sided polygon of size sz
"""
for i in range(n):
t.forward(sz)
t.left(360/n)
sz = 20 #Length of sides
n = 4 #Number of sides
PosX = 0
PosY = 0
for i in range(5):
draw_poly(tess, n, sz)
tess.penup()
PosX = PosX - 20
PosY = PosY - 20
tess.goto(PosX,PosY)
sz = sz + 40
tess.pendown()
wn.mainloop()
我的问题是它只适用于正方形,而任何其他数量的边/边长使它偏离中心。我怎样才能解决这个问题?
答案 0 :(得分:0)
你只需要一点三角学。在脚本的顶部,添加行
from math import pi, tan
然后计算新的PosX,PosY为
PosX = PosX - 20
PosY = PosY - 20/tan(pi/n)