我的目标是生成一组嵌套三角形的简单图形表示,如图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)
我的问题是:如何简单地将三角形相互对齐?
答案 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()
尽管间距并不理想,因为底部之间的距离应接近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()
使用冲压,我们从三角形的中心而不是边缘开始工作。由于默认光标大小为20,因此调整大小是免费的。