Midpoint Circle Drawing Algorithm
unknown
python
2 years ago
779 B
19
Indexable
def midpoint_circle(xc, yc, r):
x, y = 0, r
p = 1 - r # Initial decision parameter
x_coords, y_coords = [], []
while x <= y:
# Reflecting the points in all octants
x_coords.extend([xc+x, xc-x, xc+x, xc-x, xc+y, xc-y, xc+y, xc-y])
y_coords.extend([yc+y, yc+y, yc-y, yc-y, yc+x, yc+x, yc-x, yc-x])
x += 1
if p < 0:
p += 2 * x + 1
else:
y -= 1
p += 2 * (x - y) + 1
return x_coords, y_coords
# Example usage
xc, yc, r = 50, 50, 30
x_coords, y_coords = midpoint_circle(xc, yc, r)
plt.scatter(x_coords, y_coords)
plt.title("Midpoint Circle Drawing Algorithm")
plt.xlabel("X axis")
plt.ylabel("Y axis")
plt.grid(True)
plt.gca().set_aspect('equal', adjustable='box')
plt.show()Editor is loading...
Leave a Comment