光标移动脱线龟
Cursor moving off line Turtle
我目前正在 Python 使用 Turtle 模块完成编程任务,我有以下代码:
from turtle import *
number_of_shapes = 4
for shape in range(1, number_of_shapes + 1):
size = shape * 20
for sides in range(4):
forward(size + 10)
right(90)
penup()
forward(size + 10)
left(90)
forward(size + 30)
right(90)
pendown()
这会产生以下输出:
不过,我想让乌龟停在这里:
我试过更改所有数字,但似乎找不到与乌龟相关的值,有人可以帮忙吗?
你刚刚搞砸了最后一部分是怎么做的:
from turtle import *
number_of_shapes = 4
a=5
for shape in range(1, number_of_shapes+1):
size = shape * 20
for sides in range(a):
forward(size + 10)
right(90)
right(180)
a=6
如果你需要什么就问:)
让我们尝试不同的方法来找点乐子。这将绘制相同的图形并将海龟留在您想要的位置。但是,它会最小化海龟运动(不会在同一条线上重绘),代价是代码略多,并且在绘图时永远不会将笔从纸上移开:
from turtle import *
NUMBER_OF_SHAPES = 4
angle = 90
magnitude = -1
shape = NUMBER_OF_SHAPES
for _ in range(2):
right(angle)
forward(shape * 20 + 10)
for _ in range(NUMBER_OF_SHAPES - 1):
right(angle)
forward((2 * shape + magnitude + 1) * 20)
shape += magnitude
angle = -angle
magnitude = -magnitude
right(angle)
forward(shape * 20 + 10)
done()
我们的想法是 viewing/implementing 它不是作为一组多个正方形,而是 view/implement 它是两条不同大小的锯齿形线,在它们的末端相遇。
Is it possible to produce the same output with one loop?
一种方法是放弃绘图并切换到冲压,方法是将乌龟本身变成正方形。这将消除用于绘制正方形的循环,只需要一个循环来调整大小、标记和移动正方形:
from turtle import *
NUMBER_OF_SHAPES = 4
CURSOR_SIZE = 20
shape('square')
fillcolor('white')
penup()
for n in range(1, NUMBER_OF_SHAPES + 1):
size = n * 20 + 10
goto(xcor() + size/2, ycor() + size/2)
shapesize(size / CURSOR_SIZE)
stamp()
goto(xcor() + size/2, ycor() + size/2)
shapesize(1)
shape('classic')
fillcolor('black')
done()
这会产生相同的可见结果,但通过具有自己的规则和限制的完全不同的方式:
我目前正在 Python 使用 Turtle 模块完成编程任务,我有以下代码:
from turtle import *
number_of_shapes = 4
for shape in range(1, number_of_shapes + 1):
size = shape * 20
for sides in range(4):
forward(size + 10)
right(90)
penup()
forward(size + 10)
left(90)
forward(size + 30)
right(90)
pendown()
这会产生以下输出:
不过,我想让乌龟停在这里:
我试过更改所有数字,但似乎找不到与乌龟相关的值,有人可以帮忙吗?
你刚刚搞砸了最后一部分是怎么做的:
from turtle import *
number_of_shapes = 4
a=5
for shape in range(1, number_of_shapes+1):
size = shape * 20
for sides in range(a):
forward(size + 10)
right(90)
right(180)
a=6
如果你需要什么就问:)
让我们尝试不同的方法来找点乐子。这将绘制相同的图形并将海龟留在您想要的位置。但是,它会最小化海龟运动(不会在同一条线上重绘),代价是代码略多,并且在绘图时永远不会将笔从纸上移开:
from turtle import *
NUMBER_OF_SHAPES = 4
angle = 90
magnitude = -1
shape = NUMBER_OF_SHAPES
for _ in range(2):
right(angle)
forward(shape * 20 + 10)
for _ in range(NUMBER_OF_SHAPES - 1):
right(angle)
forward((2 * shape + magnitude + 1) * 20)
shape += magnitude
angle = -angle
magnitude = -magnitude
right(angle)
forward(shape * 20 + 10)
done()
我们的想法是 viewing/implementing 它不是作为一组多个正方形,而是 view/implement 它是两条不同大小的锯齿形线,在它们的末端相遇。
Is it possible to produce the same output with one loop?
一种方法是放弃绘图并切换到冲压,方法是将乌龟本身变成正方形。这将消除用于绘制正方形的循环,只需要一个循环来调整大小、标记和移动正方形:
from turtle import *
NUMBER_OF_SHAPES = 4
CURSOR_SIZE = 20
shape('square')
fillcolor('white')
penup()
for n in range(1, NUMBER_OF_SHAPES + 1):
size = n * 20 + 10
goto(xcor() + size/2, ycor() + size/2)
shapesize(size / CURSOR_SIZE)
stamp()
goto(xcor() + size/2, ycor() + size/2)
shapesize(1)
shape('classic')
fillcolor('black')
done()
这会产生相同的可见结果,但通过具有自己的规则和限制的完全不同的方式: