为什么是数学.sqrt(r**2(xh)**2)+k返回值错误:数学域

2024-04-27 02:56:18 发布

您现在位置:Python中文网/ 问答频道 /正文

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)


Tags: 项目inforifdefrangemathsqrt
1条回答
网友
1楼 · 发布于 2024-04-27 02:56:18

我猜想,在某些情况下,你正在sqrting的parens中的结果最终是负数。如果是这样的话,当你试着取这个数的平方根时,你看到的错误就会增加。你知道吗

要确认这一点,请尝试将r**2 - (x-h)**2保存到一个变量,并在获取sqrt之前打印它。你知道吗

相关问题 更多 >