【发布时间】:2019-01-27 01:48:01
【问题描述】:
这个问题有两个部分:
逻辑 - 构造 Recaman 序列的半圆的酷模式,我的逻辑/代码是否有效?
-
Pygame 特定问题。 运行代码时出现以下错误:
pg.draw.arc(screen, black, [xi,yi,dx,dy], 180,0,1) ValueError: 宽度大于椭圆半径
我不知道宽度最终是如何 > 椭圆的半径......我已经研究了大约两个小时,我真的需要一些外部帮助。谢谢!
我的代码:
def recaman():
sequence = [0]
limit = 10
def genNums(n):
index = 0
for i in range(1,n):
if index-i>0 and index-i not in sequence:
index-=i
sequence.append(index)
else:
index+=i
sequence.append(index)
screen = pg.display.set_mode((display_width,display_height),pg.FULLSCREEN)
tick = 0
genNums(limit)
while tick < 1000000:
zx = display_width//limit
zy = (display_height/2)//limit
xi = 0
yi = 0
xf = 0
yf = 0
curX = 0
curY = 540
dx = xf - xi
dy = yf - yi
for event in pg.event.get():
if event.type == pg.QUIT:
tick = 1000
screen.fill(white)
direction = 'down'
for n in range(0,len(sequence)-1):
yi = 540
if n % 2 == 0:
direction = 'down'
else:
direction = 'up'
if sequence[n+1] > sequence[n]:
curX += n * zx
xf = curX
xi = curX - (n * zx)
else:
curX -= n * zx
xf = curX
xi = curX + (n*zx)
if direction == 'up':
yf = curY - (n*zy)
if direction == 'down':
yf = curY + (n*zy)
p1 = (xi,yi)
p2 = (xf,yf)
pg.draw.arc(screen, black, [xi,yi,dx,dy], 180,0,1)
pg.display.update()
tick += 1
recaman()
【问题讨论】: