import  matplotlib
import  matplotlib. pyplot as  plt
import  moviepy. editor as  mpy
matplotlib. rcParams[ 'font.family' ]  =  'SimHei' 
positions =  [ 
    ( 0 ,  0 ) ,  ( 1  /  4 ,  1  /  4 ) ,  ( 1  /  3 ,  1  /  4 ) ,  ( 1  /  2 ,  1  /  4 ) ,  ( 2  /  3 ,  1  /  4 ) , 
    ( 3  /  4 ,  1  /  4 ) ,  ( 1 ,  1  /  4 ) ,  ( 5  /  4 ,  1  /  4 ) ,  ( 4  /  3 ,  1  /  4 ) ,  ( 3  /  2 ,  1  /  4 ) ,  ( 2 ,  0 ) 
] 
radius =  1 
text =  "人有悲欢离合\n月有阴晴圆缺\n此事古难全\n但愿人长久\n千里共婵娟" 
for  index,  position in  enumerate ( positions) : 
    fig,  ax =  plt. subplots( ) 
    
    circle2 =  plt. Circle( ( 2  *  radius,  0 ) ,  radius,  color= '#E1E19A' ,  fill= True ) 
    ax. add_artist( circle2) 
    
    circle1 =  plt. Circle( position,  radius,  color= 'white' ,  fill= True ) 
    ax. add_artist( circle1) 
    
    ax. set_xlim( - 1 ,  3 ) 
    ax. set_ylim( - 1 ,  1 ) 
    ax. set_aspect( 'equal' )   
    ax. axis( 'off' )   
    
    ax. text( - 0.8 ,  0.5 ,  text,  fontsize= 12 ,  ha= 'left' ,  va= 'center' ,  color= 'black' ,  wrap= True ) 
    
    plt. savefig( f'frame_ { index: 03d } .png' ,  bbox_inches= 'tight' ,  pad_inches= 0 ) 
    plt. close( fig)   
clips =  [ ] 
for  i in  range ( len ( positions) ) : 
    clip =  mpy. ImageClip( f'frame_ { i: 03d } .png' ) . set_duration( 0.1 )   
    clips. append( clip) 
video =  mpy. concatenate_videoclips( clips,  method= 'compose' ) 
video. write_gif( "circle_animation1.gif" ,  fps= 10 ) 
video. write_videofile( "circle_animation_with_text1.mp4" ,  fps= 10 )