我想使用递归绘制一系列嵌套的三角形
我的错误代码如下:
def recursiveTri(x, y, shrink):
tt.penup()
tt.setx(x)
tt.sety(y)
if x > -10:
return
for element in range(3):
tt.pendown()
tt.forward(x)
tt.right(120)
recursiveTri(x + shrink, y - shrink, shrink)
def main():
recursiveTri(-300,300,30)
main()
当前代码生成以下内容:
这里是我所说的嵌套形状的意思,只是我想画三角形而不是正方形:
问题在于
记住你的
x
总是负数,如果你想对称于零,边的长度不是x
,而是-2 * x
。由于三角形是嵌套的,您还可以从x
计算初始y
,因为它是主平分线上方的1/3-sqrt(3) / 3 * x
因此,将三角形中外接圆和内接圆的中心置于0,0事实上,只需固定边的长度,并根据以下公式计算
x
和y
可能更容易:在这种情况下,
shrink
是从每一侧移除的总量。如果您希望它是您前进的数量,请将递归调用更改为recursiveTri(side - 2 * shrink, shrink)
结果(不将
shrink
乘以2)为现在,为了好玩,“通过冲压更好地生活”解决方案:
这是默认方向,您可以在调用
recursiveTri()
之前以任何方式将其旋转冲压是绘图的一种替代方法,它最适合这样简单的几何图案相关问题 更多 >
编程相关推荐