【问题标题】:How to create an animation, where the point will move along the elliptical line?如何创建动画,点将沿椭圆线移动?
【发布时间】:2021-01-17 12:00:52
【问题描述】:

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

【问题讨论】:

  • 您已经避开了现有代码。您能提供您当前的代码吗?

标签: python python-3.x matplotlib matplotlib-animation


【解决方案1】:
 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()

【讨论】:

  • 这是您要更改的代码吗?如果是这样,请将其发布在您的问题中并删除此“答案”。此外,请描述您要更改的内容、实际行为与预期的不同之处以及完整的错误消息(如果有)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-06-18
  • 2014-05-13
  • 1970-01-01
  • 1970-01-01
  • 2021-10-24
  • 2020-03-27
  • 1970-01-01
相关资源
最近更新 更多