我想计算一个圆圈中的所有点。我已经知道我可以使用x = r * cos(theta) + x0
, y = r * sin(theta) + y0
- 但是我想知道是否有一种很好的方法可以根据我的像素画布(或我的 LCD)的分辨率和圆的半径来找到合适的 theta 步长。
这是我已经拥有的代码(_arange()
就像range()
但也需要一个浮点值step
):
def circle(x0, y0, r):
step = 2 * math.pi / 1000
for theta in _arange(0, 2 * math.pi, step):
x = x0 + r * math.cos(theta)
y = y0 + r * math.sin(theta)
set(round(x), round(y))