我当前的代码只绘制了一行正方形,但是我想绘制一个完整的正方形网格?我该怎么做?
from turtle import*
bob=Turtle()
def square():
x = 0
y=0
for i in range(4):
bob.forward(50)
bob.left(90)
bob.forward(50)
bob.left(90)
bob.forward(50)
bob.left(90)
bob.forward(50)
bob.left(90)
bob.goto(50+x,0)
x+=50
bob.goto(0,-50)
bob.right(90)
square()
square()
square()
input()
答案 0 :(得分:2)
import turtle
loadWindow = turtle.Screen()
turtle.speed(1)
turtle.colormode(255)
turtle.pensize(1)
STEP = 25
LENGTH = 1000
for i in range(0, LENGTH, STEP):
turtle.penup()
turtle.setpos(-LENGTH/2, LENGTH/2 - i)
turtle.pendown()
turtle.setpos(LENGTH/2, LENGTH/2 - i)
turtle.penup()
turtle.setpos(-LENGTH/2 + i, LENGTH/2)
turtle.pendown()
turtle.setpos(-LENGTH/2 + i, -LENGTH/2)
答案 1 :(得分:0)
你必须四处游戏才能更好地理解功能的概念 - 我们的想法是你得到一个执行一个简单任务的函数,并且做得很好 - 然后编写其他函数来将第一个函数与其他代码的调用结合起来,以执行其他任务。
你的代码看起来就像你从某个地方选择了方形示例,他们只是试图抽出方形函数来同时执行所有操作:这会导致代码质量差,难以理解,甚至无法正确编写
请尝试以下方法:
import turtle
bob = turtle.Turtle()
def square(side):
for i in range(4):
bob.forward(side)
bob.left(90)
def row(n, side):
for i in range(n):
square(side)
bob.forward(side)
bob.penup()
bob.left(180)
bob.forward(n * side)
bob.left(180)
bob.pendown()
def row_of_rows(m, n, side):
for i in range(m):
row(n, side)
bob.penup()
bob.left(90)
bob.forward(side)
bob.right(90)
bob.pendown()
bob.penup()
bob.right(90)
bob.forward(m * side)
bob.left(90)
bob.pendown()
row_of_rows(4,5, 20)
答案 2 :(得分:0)
答案 3 :(得分:0)
我可以看到为什么有些答案在代码的开头而不是在结尾处调用hideturtle()
,以及tracer(0)
,因为这是观看绘图最痛苦的一些我曾见过。我觉得乌龟图形的一部分是观看海龟的乐趣,所以我提供了我的解决方案:
from turtle import Turtle, Screen
UNIT_SIZE, GRID_SIZE = 50, 200
def half_grid(turtle):
speed = turtle.speed()
for brick in range(GRID_SIZE // UNIT_SIZE):
direction = [turtle.right, turtle.left][brick % 2 == 1]
for i in range(0, GRID_SIZE, speed):
turtle.forward(speed)
yield(0)
direction(90)
for i in range(0, UNIT_SIZE, speed):
turtle.forward(speed)
yield(0)
direction(90)
for i in range(0, GRID_SIZE, speed):
turtle.forward(speed)
yield(0)
mickey = Turtle(shape='turtle')
mickey.speed(5)
mickey.up()
mickey.goto(-GRID_SIZE//2, -GRID_SIZE//2)
mickey.down()
mickey.left(90)
donnie = Turtle(shape='turtle')
donnie.speed(5)
donnie.up()
donnie.goto(GRID_SIZE//2, -GRID_SIZE//2)
donnie.down()
donnie.left(180)
generator1, generator2 = half_grid(mickey), half_grid(donnie)
while (next(generator1, 1) + next(generator2, 1) < 2):
pass
mickey.hideturtle()
donnie.hideturtle()
screen = Screen()
screen.exitonclick()
不可否认,您必须谨慎选择UNIT_SIZE
,GRID_SIZE
和turtle.speed()
,才能正常使用。
海龟在工作:
答案 4 :(得分:0)
使用两个for循环来绘制网格
for row in range(x, width_of_screen,width_of_grid_box):
for column in range(y,height_of_screen,height_of_grid_box):
square = pygame.draw.rect(surface, COLOR, (row, column, width_of_grid_box, height_of_grid_box),2)
square_pos.append(square)
答案 5 :(得分:0)
这正在工作:)
(s/defn ->list :- [s/Any]
"Coerce any sequential argument into a List."
[arg :- [s/Any]]
(apply list arg))
如果要立即显示,请更改以下内容:
import turtle
turtle.tracer(1) # Turns off screen updates
grid = turtle.Turtle()
STEP = 20
LENGTH = 200
for i in range(0, LENGTH+STEP, STEP):
grid.penup()
grid.setpos(-LENGTH/2, (LENGTH/2 - i)) # go to start hoz line possition
grid.pendown()
grid.setpos(LENGTH/2, (LENGTH/2 - i)) # draw horizontal line
grid.penup()
grid.setpos((-LENGTH/2 + i), LENGTH/2) # go to start vertical line possition
grid.pendown()
grid.setpos((-LENGTH / 2 + i), -LENGTH / 2)
turtle.update()
turtle.exitonclick()
对此:
turtle.tracer(1) # Turns off screen updates
答案 6 :(得分:0)
import turtle as t
t.tracer(0, 0)
t.speed(0)
grid={
'left':-500,
'right':500,
'top':-500,
'bottom':500,
'interval':10
}
x_positions=range(grid['left'],grid['right'],grid['interval'])
y_positions=range(grid['top'],grid['bottom'],grid['interval'])
for x in x_positions:
t.penup()
t.setpos(x,grid['top'])
t.pendown()
t.setpos(x,grid['bottom'])
for y in y_positions:
t.penup()
t.setpos(grid['left'],y)
t.pendown()
t.setpos(grid['right'],y)
t.update()
答案 7 :(得分:-2)
import turtle
wn = turtle.Screen()
wn.title("title")
wn.bgcolor("white")
wn.setup(width=500, height=500)
grid = turtle.Turtle()
grid.speed(0)
grid.hideturtle()
grid.penup()
grid.goto(-240, 240)
grid.direction = "right"
grid.pendown()
grid.forward(480)
grid.right(90)
grid.forward(480)
grid.right(90)
grid.forward(480)
grid.right(90)
grid.forward(480)
grid.right(90)
grid.forward(20)
grid.right(90)
grid.forward(480)
grid.left(90)
grid.forward(20)
grid.left(90)
grid.forward(480)
grid.right(90)
grid.forward(20)
grid.right(90)
grid.forward(480)
grid.left(90)
grid.forward(20)
grid.left(90)
grid.forward(480)
grid.right(90)
grid.forward(20)
grid.right(90)
grid.forward(480)
grid.left(90)
grid.forward(20)
grid.left(90)
grid.forward(480)
grid.right(90)
grid.forward(20)
grid.right(90)
grid.forward(480)
grid.left(90)
grid.forward(20)
grid.left(90)
grid.forward(480)
grid.right(90)
grid.forward(20)
grid.right(90)
grid.forward(480)
grid.left(90)
grid.forward(20)
grid.left(90)
grid.forward(480)
grid.right(90)
grid.forward(20)
grid.right(90)
grid.forward(480)
grid.left(90)
grid.forward(20)
grid.left(90)
grid.forward(480)
grid.right(90)
grid.forward(20)
grid.right(90)
grid.forward(480)
grid.left(90)
grid.forward(20)
grid.left(90)
grid.forward(480)
grid.right(90)
grid.forward(20)
grid.right(90)
grid.forward(480)
grid.left(90)
grid.forward(20)
grid.left(90)
grid.forward(480)
grid.right(90)
grid.forward(20)
grid.right(90)
grid.forward(480)
grid.left(90)
grid.forward(20)
grid.left(90)
grid.forward(480)
grid.right(90)
grid.forward(20)
grid.right(90)
grid.forward(480)
grid.left(90)
grid.forward(20)
grid.left(90)
grid.forward(480)
grid.right(90)
grid.forward(20)
grid.right(90)
grid.forward(480)
grid.left(90)
grid.forward(20)
grid.left(90)
grid.forward(480)
grid.right(90)
grid.forward(20)
grid.right(90)
grid.forward(480)
grid.left(90)
grid.forward(20)
grid.left(90)
grid.forward(480)
grid.left(180)
grid.forward(20)
grid.right(90)
grid.forward(480)
grid.left(90)
grid.forward(20)
grid.left(90)
grid.forward(480)
grid.right(90)
grid.forward(20)
grid.right(90)
grid.forward(480)
grid.left(90)
grid.forward(20)
grid.left(90)
grid.forward(480)
grid.right(90)
grid.forward(20)
grid.right(90)
grid.forward(480)
grid.left(90)
grid.forward(20)
grid.left(90)
grid.forward(480)
grid.right(90)
grid.forward(20)
grid.right(90)
grid.forward(480)
grid.left(90)
grid.forward(20)
grid.left(90)
grid.forward(480)
grid.right(90)
grid.forward(20)
grid.right(90)
grid.forward(480)
grid.left(90)
grid.forward(20)
grid.left(90)
grid.forward(480)
grid.right(90)
grid.forward(20)
grid.right(90)
grid.forward(480)
grid.left(90)
grid.forward(20)
grid.left(90)
grid.forward(480)
grid.right(90)
grid.forward(20)
grid.right(90)
grid.forward(480)
grid.left(90)
grid.forward(20)
grid.left(90)
grid.forward(480)
grid.right(90)
grid.forward(20)
grid.right(90)
grid.forward(480)
grid.left(90)
grid.forward(20)
grid.left(90)
grid.forward(480)
grid.right(90)
grid.forward(20)
grid.right(90)
grid.forward(480)
grid.left(90)
grid.forward(20)
grid.left(90)
grid.forward(480)
grid.right(90)
grid.forward(20)
grid.right(90)
grid.forward(480)
grid.left(90)
grid.forward(20)
grid.left(90)
grid.forward(480)
grid.right(90)
grid.forward(20)
grid.right(90)
grid.forward(480)
grid.left(90)
grid.forward(20)
grid.left(90)
grid.forward(480)
grid.right(90)
grid.forward(20)
grid.right(90)
grid.forward(480)
grid.left(90)
grid.forward(20)
grid.left(90)
grid.forward(480)
对不起,真的很长