Guest User

Untitled

a guest
Sep 24th, 2020
275
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     import numpy as np
  2.     import matplotlib.pyplot as plt
  3.  
  4.     def dots(nmax, a=None, rot=None):
  5.         r3o2, to_rads = np.sqrt(3)/2., np.pi/180.
  6.         if a == None: a = 1.0
  7.         if rot == None: rot=0.0
  8.         i = np.arange(-nmax, nmax+1)
  9.         I, J = np.meshgrid(i, i)
  10.         keep = np.abs(I+J) <= nmax
  11.         I, J = [thing[keep].flatten() for thing in (I, J)]
  12.         x, y = a*(I + 0.5*J), a*r3o2*J
  13.         c, s = [f(to_rads*rot) for f in (np.cos, np.sin)]
  14.         return x*c - y*s, y*c + x*s
  15.        
  16.     rat = np.sqrt(13./7)
  17.  
  18.     A = dots(12)
  19.     B, C = dots(10, rat, 5.209), dots(10, rat, 11.218)
  20.  
  21.     plt.figure(figsize=[11, 7])
  22.     plt.subplot(1, 2, 1)
  23.     plt.scatter([0], [0], s=200, c='black', edgecolor='none')
  24.     plt.scatter(A[0], A[1], s=100, c='none', edgecolor='black')
  25.     plt.scatter(B[0], B[1], s=30, c='black', edgecolor='none')
  26.     # plt.arrow(9.2, 9.5, -1, -1, color='red', width=0.15)
  27.     plt.xlim(-0.5, 14)
  28.     plt.ylim(-0.5, 14)
  29.     plt.gca().set_aspect('equal')
  30.     plt.title('(6, 5) <-> (5, 3) (5.209 deg)', fontsize=12)
  31.  
  32.     plt.subplot(1, 2, 2)
  33.     plt.scatter([0], [0], s=200, c='black', edgecolor='none')
  34.     plt.scatter(A[0], A[1], s=100, c='none', edgecolor='black')
  35.     plt.scatter(C[0], C[1], s=30, c='black', edgecolor='none')
  36.     # plt.arrow(9.85, 7.0, -1, -1, color='red', width=0.15)
  37.     plt.xlim(-0.5, 14)
  38.     plt.ylim(-0.5, 14)
  39.     plt.gca().set_aspect('equal')
  40.     plt.title('(5, 6) <-> (5, 3) (11.218 deg)', fontsize=12)
  41.  
  42.     plt.show()
  43.  
RAW Paste Data