【问题标题】:How to draw a tiled triangle with python turtle如何用 python turtle 绘制一个平铺三角形
【发布时间】:2016-08-09 15:06:09
【问题描述】:

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

使用 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)

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

【问题讨论】:

    标签: python turtle-graphics tiling


    【解决方案1】:

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

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

    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)
    

    你可以看到图案看起来如何here

    【讨论】:

    • 好主意。我没有想过这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-03
    • 2019-08-08
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 2017-06-06
    相关资源
    最近更新 更多