Guest User

Untitled

a guest
Jan 22nd, 2021
14,937
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.64 KB | None | 0 0
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. from IPython import display
  4. import time
  5. %matplotlib inline
  6.  
  7. !rm -r images
  8. !mkdir images
  9.  
  10. t = np.linspace(0,10,num=601)
  11. headerx = np.cos(2*np.pi*t)
  12. headery = np.sin(2*np.pi*t)
  13. count=0
  14.  
  15. A = 1
  16. B = 1
  17.  
  18. a = [1,2,3,5]
  19. b = [1,2,3,5]
  20. d = 0.5
  21. D = -0
  22.  
  23. oldx = np.zeros((1,16))
  24. oldy = np.zeros((1,16))
  25.  
  26. for i in t:
  27. count+=1
  28. tempx = []
  29. tempy = []
  30.  
  31. f,axs = plt.subplots(nrows=5, ncols=5);
  32. f.set_size_inches(10, 10.5);
  33.  
  34. for rows in range(4):
  35. for cols in range(4):
  36. x = np.exp(D*i)*np.sin(2*np.pi*a[cols]*i/10 + d*np.pi)
  37. y = np.exp(D*i)*np.sin(2*np.pi*b[rows]*i/10)
  38.  
  39. scattery = -np.cos(2*np.pi*a[cols]*i/10 + d*np.pi)
  40. scatterx = np.cos(2*np.pi*b[rows]*i/10)
  41.  
  42. tempx.append(x)
  43. tempy.append(y)
  44.  
  45. linex = [-1,1]
  46. liney = [-1,1]
  47.  
  48. if rows==0:
  49. axs[rows,cols+1].plot(headerx,headery,'k-',lw=1);
  50. axs[rows,cols+1].plot([x,x],[scattery,-1],'r-',alpha=0.5);
  51. axs[rows,cols+1].scatter(x,scattery,c='red',s=50);
  52. axs[rows,cols+1].set_xticks([])
  53. axs[rows,cols+1].set_yticks([])
  54. axs[rows,cols+1].spines['top'].set_visible(False)
  55. axs[rows,cols+1].spines['right'].set_visible(False)
  56. axs[rows,cols+1].spines['bottom'].set_visible(False)
  57. axs[rows,cols+1].spines['left'].set_visible(False)
  58. axs[rows,cols+1].annotate('$%d$' %a[cols],xy=(0,0),
  59. ha='center',va='center',fontsize=15)
  60.  
  61. if cols==0:
  62. axs[rows+1,cols].plot(headerx,headery,'k-',lw=1);
  63. axs[rows+1,cols].plot([scatterx,1],[y,y],'r-',alpha=0.5);
  64. axs[rows+1,cols].scatter(scatterx,y,c='red',s=50);
  65. axs[rows+1,cols].set_xticks([])
  66. axs[rows+1,cols].set_yticks([])
  67. axs[rows+1,cols].spines['top'].set_visible(False)
  68. axs[rows+1,cols].spines['right'].set_visible(False)
  69. axs[rows+1,cols].spines['bottom'].set_visible(False)
  70. axs[rows+1,cols].spines['left'].set_visible(False)
  71. axs[rows+1,cols].annotate('$%d$' %b[rows],xy=(0,0),
  72. ha='center',va='center',rotation='vertical',
  73. fontsize=15)
  74.  
  75. if rows==0 and cols==0:
  76. axs[rows,cols].axis('off')
  77. axs[rows,cols].set_xlim([-1,1])
  78. axs[rows,cols].set_ylim([-1,1])
  79. axs[rows,cols].annotate('x0.1 Hz',xy=(0,0),
  80. ha='center',va='center',fontsize=15)
  81.  
  82. if count>1:
  83. axs[rows+1,cols+1].plot(oldx[:,rows*4+cols],oldy[:,rows*4+cols],'b-');
  84.  
  85. axs[rows+1,cols+1].plot(linex,[y,y],'r-',alpha=0.5)
  86. axs[rows+1,cols+1].plot([x,x],liney,'r-',alpha=0.5)
  87. axs[rows+1,cols+1].scatter(x,y,c='red',s=50);
  88. axs[rows+1,cols+1].set_xlim((-1.1,1.1));
  89. axs[rows+1,cols+1].set_ylim((-1.1,1.1));
  90. axs[rows+1,cols+1].set_xticks([]);
  91. axs[rows+1,cols+1].set_yticks([]);
  92.  
  93. # plt.suptitle('$ t = %.3f $s' %i)
  94. plt.tight_layout()
  95. plt.subplots_adjust(top=0.92)
  96. plt.show()
  97.  
  98. oldx = np.vstack((oldx,tempx))
  99. oldy = np.vstack((oldy,tempy))
  100.  
  101. if count==1:
  102. oldx = np.delete(oldx, (0), axis=0)
  103. oldy = np.delete(oldy, (0), axis=0)
  104.  
  105. filename = 'images/' + str(count).zfill(4) + '.png'
  106. print(filename)
  107.  
  108. f.savefig(filename,bbox_inches='tight',dpi = 150)
  109. display.clear_output(wait=True);
  110. display.display(f);
  111. time.sleep(0.01)
  112.  
  113. i = 1
  114. x = 1
  115. y = 0
  116. count = 601
  117.  
  118. linex = [-1,1]
  119. liney = [-1,1]
  120.  
  121. for j in range(180):
  122.  
  123. count+=1
  124.  
  125. f,axs = plt.subplots(nrows=5, ncols=5);
  126. f.set_size_inches(10, 10.5);
  127.  
  128. for rows in range(4):
  129. for cols in range(4):
  130.  
  131. if j>90:
  132. alpha=0
  133. else:
  134. alpha = 1-j/90
  135.  
  136. if rows==0:
  137. axs[rows,cols+1].plot(headerx,headery,'k-',lw=1);
  138. axs[rows,cols+1].plot([x,x],[y,-1],'r-',alpha=0.5*alpha);
  139. axs[rows,cols+1].scatter(x,y,c='red',s=50,alpha=alpha);
  140. axs[rows,cols+1].set_xticks([])
  141. axs[rows,cols+1].set_yticks([])
  142. axs[rows,cols+1].spines['top'].set_visible(False)
  143. axs[rows,cols+1].spines['right'].set_visible(False)
  144. axs[rows,cols+1].spines['bottom'].set_visible(False)
  145. axs[rows,cols+1].spines['left'].set_visible(False)
  146. axs[rows,cols+1].annotate('$%d$' %a[cols],xy=(0,0),
  147. ha='center',va='center',fontsize=15)
  148.  
  149. if cols==0:
  150. axs[rows+1,cols].plot(headerx,headery,'k-',lw=1);
  151. axs[rows+1,cols].plot([x,1],[y,y],'r-',alpha=0.5*alpha);
  152. axs[rows+1,cols].scatter(x,y,c='red',s=50,alpha=alpha);
  153. axs[rows+1,cols].set_xticks([])
  154. axs[rows+1,cols].set_yticks([])
  155. axs[rows+1,cols].spines['top'].set_visible(False)
  156. axs[rows+1,cols].spines['right'].set_visible(False)
  157. axs[rows+1,cols].spines['bottom'].set_visible(False)
  158. axs[rows+1,cols].spines['left'].set_visible(False)
  159. axs[rows+1,cols].annotate('$%d$' %b[rows],xy=(0,0),
  160. ha='center',va='center',rotation='vertical',
  161. fontsize=15)
  162.  
  163. if rows==0 and cols==0:
  164. axs[rows,cols].axis('off')
  165. axs[rows,cols].set_xlim([-1,1])
  166. axs[rows,cols].set_ylim([-1,1])
  167. axs[rows,cols].annotate('x0.1 Hz',xy=(0,0),
  168. ha='center',va='center',fontsize=15)
  169.  
  170. if count>1:
  171. axs[rows+1,cols+1].plot(oldx[:,rows*4+cols],oldy[:,rows*4+cols],'b-');
  172.  
  173. axs[rows+1,cols+1].plot(linex,[y,y],'r-',alpha=0.5*alpha)
  174. axs[rows+1,cols+1].plot([x,x],liney,'r-',alpha=0.5*alpha)
  175. axs[rows+1,cols+1].scatter(x,y,c='red',s=50,alpha=alpha);
  176. axs[rows+1,cols+1].set_xlim((-1.1,1.1));
  177. axs[rows+1,cols+1].set_ylim((-1.1,1.1));
  178. axs[rows+1,cols+1].set_xticks([]);
  179. axs[rows+1,cols+1].set_yticks([]);
  180.  
  181. # plt.suptitle('$ t = %.3f $s' %i)
  182. plt.tight_layout()
  183. plt.subplots_adjust(top=0.92)
  184. plt.show()
  185. filename = 'images/' + str(count).zfill(4) + '.png'
  186. print(filename)
  187.  
  188. f.savefig(filename,bbox_inches='tight',dpi = 150)
  189. display.clear_output(wait=True);
  190. display.display(f);
  191. time.sleep(0.01)
  192.  
  193. import cv2
  194. import numpy as np
  195. import glob
  196. from moviepy.editor import *
  197.  
  198. img_array = []
  199. for i in range(781):
  200. filename = 'images/' + str(i+1).zfill(4) + '.png'
  201. img = cv2.imread(filename)
  202. height, width, layers = img.shape
  203. size = (width,height)
  204. img_array.append(img)
  205.  
  206. out = cv2.VideoWriter('project.mp4',cv2.VideoWriter_fourcc(*'DIVX'), 60, size)
  207.  
  208. for i in range(len(img_array)):
  209. out.write(img_array[i])
  210. out.release()
Advertisement
Add Comment
Please, Sign In to add comment