我正在尝试使用龟图形在python中绘制一个9x9网格。我知道我需要使用两个for循环,一个用于垂直线,一个用于水平线。但是,我唯一能得到的是屏幕上的大方块。当我尝试绘制线条时,我收到错误。到目前为止,这是我的计划:
// routes/auth.js
...
app.get('/loggedInUser', function(req, res) {
if (req.user) {
res.status(200).json({
user: req.user
});
} else {
res.status(200).json({
message: 'No user is logged in.'
});
};
});
...
有人可以帮我绘制网格吗?
答案 0 :(得分:0)
import turtle
def main():
x = turtle.Turtle()
x.penup()
x.goto(-150, -150)
x.pendown()
x.left(90)
for i in xrange(2):
for j in xrange(4):
x.right(90)
x.pendown()
x.forward(300)
x.right(180)
x.forward(300)
x.right(90)
x.penup()
x.forward(100)
x.backward(100)
x.right(90)
main()
答案 1 :(得分:0)
使用乌龟绘制N x N网格的问题经常出现,解决方案通常是特定于大小或效率低下的。让我们用一个可处理N x N网格的简单网格绘制例程来解决这两个问题:
from turtle import Screen, Turtle
N = 9 # N by N grid
LENGTH = 30 # each grid element will be LENGTH x LENGTH pixels
def grid(turtle, n, length):
sign = 1
for _ in range(2):
for _ in range(n):
turtle.forward(length * n)
turtle.left(sign * 90)
turtle.forward(length)
turtle.left(sign * 90)
sign = 0 - sign
turtle.forward(length * n)
[turtle.right, turtle.left][n % 2](90)
sign = 0 - sign
screen = Screen()
yertle = Turtle()
yertle.penup()
yertle.goto(-N * LENGTH/2, -N * LENGTH/2) # center our grid (optional)
yertle.pendown()
grid(yertle, N, LENGTH)
screen.exitonclick()
该算法蜿蜒于水平线:
然后旋转90度,并对垂直线执行相同操作:
对线段进行了一些重绘,但将其保持在最低限度。尽管已经发布了一些算法来解决这种问题,但是N * N次循环,但这种算法仅循环2 * N即可绘制网格。