0

我需要使用 matplotlib.animations 库创建移动点,还需要显示椭圆的中心。有人可以编辑我的代码并帮助我完成这个项目吗? 在此处输入图像描述

4

1 回答 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 回答