仅使用循环和列表索引规则,如何绘制此图像:
[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)
为中心的三个附加圆的条件。