diff options
Diffstat (limited to 'figs/diamonds.fig/diamonds.py')
-rw-r--r-- | figs/diamonds.fig/diamonds.py | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/figs/diamonds.fig/diamonds.py b/figs/diamonds.fig/diamonds.py new file mode 100644 index 0000000..2bc4d9c --- /dev/null +++ b/figs/diamonds.fig/diamonds.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python3 + +from math import * +import random + +# size of space (must be int) +L=30 +# number of particles +N=int(L*L/2*0.97) + +# check whether two diamonds overlap +def check_overlap(x1,x2): + if(sqrt((x1[0]-x2[0])**2+(x1[1]-x2[1])**2)<=1): + return(True) + return(False) + +# configuration +config=[] + +# put particles on odd lattice manually +for i in range(4): + for j in range(4): + if (i!=2 or j!=1): + config.append([2*int(L/2/2)+1+i+j,2*int(L/2/2)+i-j]) + +# add particles +while len(config)<N: + # random position + # even sublattice + if(random.random()<0.5): + x=[2*random.randint(0,int(L/2)), 2*random.randint(0,int(L/2))] + else: + x=[2*random.randint(0,int(L/2))+1, 2*random.randint(0,int(L/2))+1] + # check it does not interfere with other particles + fine=True + for part in config: + if(check_overlap(part,x)): + fine=False + break + if fine: + config.append(x) + +print(r'''\documentclass{standalone} +\usepackage{tikz} +\usepackage{shapes} + +\begin{document} +\begin{tikzpicture} +\grid{'''+str(L+3)+'}{'+str(L+3)+'''}{(-1,-1)} +''') + +for i in range(len(config)): + part=config[i] + # different colors for even and odd + if i<15: + # replace %1% later + print(r'\diamond{%1%}{('+str(part[0])+','+str(part[1])+')}') + else: + # replace %2% later + print(r'\diamond{%2%}{('+str(part[0])+','+str(part[1])+')}') + +print(r''' +\end{tikzpicture} +\end{document} +''') |