python-仅使用圆形网格绘制三角形

时间:2019-09-11 21:15:51

标签: python turtle-graphics hexagonal-tiles

我必须对此特定代码进行更改,从而生成一个正方形的圆形网格,我必须更改代码以创建一个三角形的圆形网格。

import turtle
window = turtle.Screen()
my_boi = turtle.Turtle()
my_boi.speed(0)
for y in range(-200,200,50):
    for x in range(-200,200,50):
       my_boi.penup()
       my_boi.setposition(x,y)
       my_boi.pendown()
       my_boi.circle(20)
window.exitonclick()

2 个答案:

答案 0 :(得分:2)

我敢肯定有一种更聪明的方法,但这是做到这一点的一种方法:

import turtle
window = turtle.Screen()
my_boi = turtle.Turtle()
my_boi.speed(0)

for (i,y) in enumerate(range(-200,200,50)):
    for x in range(-200+(25*i),200-(25*i),50):
       my_boi.penup()
       my_boi.setposition(x,y)
       my_boi.pendown()
       my_boi.circle(20)

window.exitonclick()

turtle.done()

在第二个for循环中,该范围迭代地减小了每侧圆直径的1/2。

答案 1 :(得分:0)

我会简化一些事情:

from turtle import Screen, Turtle

window = Screen()

my_boi = Turtle()
my_boi.speed('fastest')
my_boi.penup()

for y in range(1, 9):
    my_boi.setposition(-25 * y + 25, 50 * y - 250)

    for x in range(y):
        my_boi.pendown()
        my_boi.circle(20)
        my_boi.penup()
        my_boi.forward(50)

my_boi.hideturtle()
window.exitonclick()

仅需通过setposition()计算并放置每行的起始位置。列位置可以是一个简单的forward()语句。

相关问题