如何用python绘制平铺三角形

如何用python绘制平铺三角形,python,turtle-graphics,tiling,Python,Turtle Graphics,Tiling,我试图画一个平铺的等边三角形,看起来像这样 使用python的海龟。我希望能够有16、25、36、49或64个三角形 我最初的尝试很笨拙,因为我还没有弄清楚如何将海龟从一个三角形整齐地移动到另一个三角形 这是我的(部分正确)代码 一定有一种优雅的方法可以做到这一点吗?我发现这是一个有趣的问题,如果进行了修改,海龟只需移动而不跳跃就可以画出图形 我找到的解决方案很难看,但它可以作为一个起点 def n_tri(t, size, n): for k in range(n):

我试图画一个平铺的等边三角形,看起来像这样

使用python的海龟。我希望能够有16、25、36、49或64个三角形

我最初的尝试很笨拙,因为我还没有弄清楚如何将海龟从一个三角形整齐地移动到另一个三角形

这是我的(部分正确)代码


一定有一种优雅的方法可以做到这一点吗?

我发现这是一个有趣的问题,如果进行了修改,海龟只需移动而不跳跃就可以画出图形

我找到的解决方案很难看,但它可以作为一个起点

def n_tri(t, size, n):
    for k in range(n):
        for i in range(k-1):
            t.left(60)
            t.forward(size)
            t.left(120)
            t.forward(size)
            t.right(180)
        t.left(60)
        t.forward(size)
        t.right(120)
        t.forward(k * size)
        t.left(60)
    t.right(180)
    t.forward(n * size)
    t.right(180)

您可以看到图案的外观

好主意。我没有想过这样做。
def n_tri(t, size, n):
    for k in range(n):
        for i in range(k-1):
            t.left(60)
            t.forward(size)
            t.left(120)
            t.forward(size)
            t.right(180)
        t.left(60)
        t.forward(size)
        t.right(120)
        t.forward(k * size)
        t.left(60)
    t.right(180)
    t.forward(n * size)
    t.right(180)