def drawCircle(h, k, r):
#(x-h)^2 + (y-k)^2 = r^2
for x in range(screen.Width):
y = (math.sqrt(r**2 - (x-h)**2) + k)
if y % 1 == 0:
screen.Set(x, int(y), "X")
drawCircle(0, 0, 5)
screen是一个简单的控制台渲染器库,我写的是将项放在2D数组中,左上角最左边是(0,0)
答案 0 :(得分:3)
我的猜测是,你sqrt
的parens结果在某些时候最终会变为负数。如果有,当您尝试取该数字的平方根时,将会出现您看到的错误。
要确认这一点,请尝试将r**2 - (x-h)**2
保存到变量并在执行sqrt
之前将其打印出来。