我想計算一個圓圈中的所有點。我已經知道我可以使用x = r * cos(theta) + x0
,y = r * sin(theta) + y0
來計算積分 - 但是我想知道是否有一種很好的方式來根據像素畫布的分辨率(或LCD對於我)的分辨率以及半徑圈。計算圓中的點數 - 步長?
這是我的代碼已經有(_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))
簡短而明確的答案。太好了! – Rethunk 2013-02-19 02:20:47
完美,謝謝!這也使我得到一個更好的算法(不涉及三角學,因爲我在微控制器上)繪製線。 – 2013-02-19 05:59:00