我正试图在乌龟中嵌套4个大小分别为20、40、60和8的等边三角形,其等距间隔为7。
代码:
from turtle import *
number_of_shapes = 4
side = 3
for spacing in range(1, number_of_shapes+1):
for sides in range(1, side+1):
forward(20*spacing)
left(360/side)
penup()
goto(-10*spacing, -7*spacing)
pendown()
我必须在goto中使用-10 *间距(-10 *间距,-7 *间距),以使嵌套的等边三角形之间的间距几乎相等。我想知道是否有一种方法可以仅使用数字7来实现相等的间距。
答案 0 :(得分:0)
连接角落,您将看到天使30deg
。它创建带有边10
和7
的矩形三角形。仅45deg
创建边为10
和10
的矩形三角形。
但是值(10, 7)
不正确。正确的值是(10, 5.8)
-但是它们可能会在仅使用整数值显示元素的监视器上创建看起来不像(10, 7)
的空格。
a = 10
b = 10 * tangens(30deg) = 5.8
我使用这些值在三角形之间创建空间,然后我以30度角绘制直线-理想地连接角。如果您使用b = 7
,则会得到三角形,而这条线将不会连接角线
from turtle import *
import math
number_of_shapes = 4
side = 3
a = 10
b = math.tan(math.radians(30)) * a
# b = 7
for spacing in range(1,number_of_shapes +1):
for sides in range(1,side+1):
forward(20*spacing)
left(360/side)
penup()
goto(-a * spacing, -b * spacing)
pendown()
left(30)
forward(100)
(10, 7)
给出:
(10, 5.8)
给出:
(10, 5.8)
将三角形放置在正确的位置,但监视器并不理想(它们只能为x,y
使用整数值),因此三角形之间的间隔看起来可能不如您的版本好。
答案 1 :(得分:0)
答案 2 :(得分:0)
如果OP正确阅读了他的作业问题,则仅三角形的底边需要有7的间距:)