繁体   English   中英

如何用python龟绘制一个平铺的三角形

[英]How to draw a tiled triangle with python turtle

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

在此输入图像描述

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

我最初的尝试是笨拙的,因为我还没弄明白如何巧妙地将乌龟从一个三角形移动到另一个三角形。

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

def draw_triangle(this_turtle, size,flip):    
    """Draw a triangle by drawing a line and turning through 120 degrees 3 times"""
    this_turtle.pendown()
    this_turtle.fill(True)
    for _ in range(3):
        if flip:
           this_turtle.left(120)
        this_turtle.forward(size)
        if not flip:
           this_turtle.right(120)
    this_turtle.penup()

myturtle.goto(250,0)
for i in range(4):
   for j in range(4):
      draw_triangle(myturtle, square_size,(j%2 ==0))
      # move to start of next triangle
      myturtle.left(120)
      #myturtle.forward(square_size)

   myturtle.goto(-250,(i+1)*square_size)

必须有一种优雅的方式来做到这一点?

我发现这是一个有趣的问题,如果修改,以便乌龟必须通过移动和没有跳跃来绘制图形。

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

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)

您可以在此处查看模式的外观

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM