円内のすべての点を計算したいと思います。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))