首页 > 解决方案 > python中的嵌套三角形与乌龟

问题描述

我的目标是生成一组嵌套三角形的简单图形表示,如图 1 所示。输出应包含 4 个等边三角形(等边,内角为 60 度)。三角形的边长应分别为 20、40、60 和 80。在相邻三角形的底部水平线之间使用 7 的距离。

我在这里看到过一篇关于此的帖子,但答案太复杂了,正如您从我的代码中看到的那样,这是我的第一个程序之一。

from turtle import *
number_of_shapes = 2

for shape in range(1, number_of_shapes + 1):
    # Draw A Triangle
    for sides in range(1, 4):
        forward(10 + shape * 10 )
        left(120)
right(90)
forward(7 + shape)

我的问题是:我如何简单地将我的三角形相互对齐?

标签: pythonpython-3.xturtle-graphics

解决方案


如果没有承诺的插图,我将假设您正在尝试绘制嵌套三角形。从角落开始会变得更加困难,所以我建议你重新排列代码,从三角形底部的中间开始,然后从那里开始绘制。这需要分两步绘制底部,但如果我们从中心开始,调整位置会更容易:

from turtle import *

number_of_shapes = 4

for shape in range(1, number_of_shapes + 1):
    # Draw A Triangle
    forward(shape * 10)
    for _ in range(2):
        left(120)
        forward(shape * 20)
    left(120)
    forward(shape * 10)

    right(90)
    penup()
    forward(7)
    pendown()
    left(90)

done()

在此处输入图像描述

虽然间距并不完美,因为底部应该接近 6px,而不是指定的 7px。但是我们可以完全消除这种计算,并通过使用冲压代替绘图来大大简化代码:

from turtle import *

number_of_shapes = 4

shape('triangle')
fillcolor('white')
right(30)

for size in range(number_of_shapes, 0, -1):
    shapesize(size)
    stamp()

done()

在此处输入图像描述

使用冲压,我们从三角形的中心而不是它的边缘工作。由于默认光标大小为 20,因此调整大小是免费的。


推荐阅读