我需要使用 matplotlib.animations 库创建移动点,还需要显示椭圆的中心。有人可以编辑我的代码并帮助我完成这个项目吗?
问问题
54 次
1 回答
0
import math
import numpy as np
import matplotlib.pyplot as plt #importing libraries
img=np.ones((200,150,3))
rx=float(input ("radius of x axis : "))
ry=float(input ("radius of y-axis : "))
def DrawEllipse(xc, yc, rx, ry):
xk=0
yk=ry
pk=ry**2-rx**2*ry+1/4*rx**2
img[xc+xk, yc+yk]=0
img[xc-xk, yc+yk]=0
img[xc+xk, yc-yk]=0
img[xc-xk, yc-yk]=0
while ry**2*xk<rx**2*yk:
xk +=1
if pk>0:
yk -=1
pk=pk+2*ry**2*xk+ry**2-2*rx**2*yk
else:
pk=pk+2*ry**2*xk+ry**2
img[xc+xk, yc+yk]=0
img[xc-xk, yc+yk]=0
img[xc+xk, yc-yk]=0
img[xc-xk, yc-yk]=0
pk=ry**2*(xk+1/2)**2+rx**2*(yk-1)**2-(rx**2*ry**2)
img[xc+xk, yc+yk]=0
img[xc-xk, yc+yk]=0
img[xc+xk, yc-yk]=0
img[xc-xk, yc-yk]=0
while yk>0:
yk -=1
if pk>0:
pk=pk-2*rx**2*yk+rx**2
else:
xk += 1
pk=pk-2*rx**2*yk+rx**2+2*ry**2*xk
img[xc+xk, yc+yk]=0
img[xc-xk, yc+yk]=0
img[xc+xk, yc-yk]=0
img[xc-xk, yc-yk]=0
return
DrawEllipse(100, 70, 50, 25) # ellipse coordinates
plt.figure(figsize=(10,8), dpi=100, facecolor='w')
plt.imshow(img) # outputing result
plt.show()
于 2021-01-17T12:00:52.677 回答