python中与乌龟嵌套的三角形

时间:2019-04-29 16:51:26

标签: python python-3.x turtle-graphics

我的目标是生成一组嵌套三角形的简单图形表示,如图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)

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

1 个答案:

答案 0 :(得分:1)

没有所承诺的插图,我将假设您正在尝试绘制嵌套的三角形。从拐角处开始会比较困难,因此我建议您重新排列代码,以从三角形底部的中间开始并从那里开始绘制。这需要分两步绘制底部,但是如果我们从中心开始工作,则更容易调整位置:

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()

enter image description here

尽管间距并不理想,因为底部之间的距离应接近6像素,而不是指定的7像素。但是,通过使用 stamping 而不是 drawing

,我们可以完全消除这种计算,并大大简化代码。
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()

enter image description here

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