在二维矩阵上绘制圆形,仅用于循环和列表索引



仅使用循环和列表索引规则,如何绘制此图像:

[image]1

它基本上是2D矩阵上的四个四分之一圆。我只能在左上角画出第一个四分之一圆,但我正在努力想办法画出其他三个四分之二圆。

n = 500
r = n/2
matrix = numpy.zeros((n,n))
for i in range(n):
for j in range(n):
if i**2 + j**2 <= r**2:
matrix[i,j] = 1

plt.imshow(matrix)

您可以同时绘制所有角落:

for i in range(n):
for j in range(n):
if i**2 + j**2 <= r**2:  #equation of a circle is x^2 + y^2 = r^2
matrix[i,j] = 1
matrix[500-i,j] = 1
matrix[i,500-j] = 1
matrix[500-i,500-j] = 1

这样做:

for i in range(n):
for j in range(n):
if i**2 + j**2 <= r**2 
or i**2 + (n-j)**2 <= r**2 
or (n-i)**2 + j**2 <= r**2 
or (n-i)**2 + (n-j)**2 <= r**2:
matrix[i,j] = 1

基本上只需添加以(n, 0)(0, n)(n, n)为中心的三个附加圆的条件。

最新更新