【发布时间】:2020-10-18 13:15:20
【问题描述】:
我正在尝试在正方形内绘制点图案。我已经设法绘制了图案,但是正方形中间有一个间隙(由于 x 坐标的反转引起)。我该如何纠正这个错误?我试图反转范围(而不是 x 坐标),但 python 不接受这种格式。
import turtle
T = turtle.Turtle()
turtle.tracer(0,0)
T.speed(10)
T.pensize(3)
zoom = 40
def verticalSaddle2(T,n,k):
for j in range(((n+1)//2),n+1):
for i in range(1,(n+1)//2):
if k <= 1 :
return()
else:
T.penup()
T.setpos((j)* zoom, (i) * zoom)
T.pendown()
T.dot(k)
k=k-2
for i in range(((n+1)//2),n+1):
if k <= 1 :
return()
else:
T.penup()
T.setpos((j)* zoom, (i) * zoom)
T.pendown()
T.dot(k)
k=k+2
k=10
n=7
verticalSaddle2(T,n,k)
def verticalSaddle3(T,n,k):
for j in range(1,((n+1)//2)):
for i in range(1,(n+1)//2):
if k <= 1 :
return()
else:
T.penup()
T.setpos((-j)* zoom, (i) * zoom)
T.pendown()
T.dot(k)
k=k-2
for i in range(((n+1)//2),n+1):
if k <= 1 :
return()
else:
T.penup()
T.setpos((-j)* zoom, (i) * zoom)
T.pendown()
T.dot(k)
k=k+2
k=12
n=7
verticalSaddle3(T, n, k)
turtle.update()
turtle.done()
【问题讨论】:
-
this fixed code 怎么样?仅修复了两个鞍形函数中
j循环的范围。结果图像here. -
基本上你的
j循环应该是从0到(n+1)//2的相同范围。一个函数绘制正值x,另一个绘制负值x,范围相同。 -
好的,如果它解决了您的任务,我将发布此代码作为答案!
-
要具有递减范围,您必须指定负增量。例如尝试
range(10, 0, -1)并查看documentation onrange。 -
@Grace500 我还在my answer 中发布了simplified version of code,它只有一个绘图功能,范围从
j从-(n+1)//2到(n+1)//2。