Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- n=11 #comment out if having user input
- num_of_infs = 0
- edge_set_lst = [[[0,1,3],[1,2,4],[4,6,7],[6,7,13]],[[0,1,2],[2,3,4],[4,5,6],[6,7,13]],[[0,1,4],[1,2,3],[4,5,13],[6,7,13]]]
- # n = int(input("What is the size of Z_n? "))
- # num_of_infs = int(input("What is the size of I_r? "))
- # edge_set_lst = input("Please copy your edge set(s) below:\n")
- # print(edge_set_lst)
- def latex_output(n,num_of_infs,edge_set_lst):
- if n % 2 == 1:
- print( '\\begin{tikzpicture}[scale=0.5]\n'+
- ' \pgfmathsetmacro{\\NumVert}{'+str(n)+')}\n'+
- ' \pgfmathsetmacro{\\NumVertLessOne}{'+str(n-1)+')}\n'+
- ' \pgfmathsetmacro{\Angle}{360/\\NumVert}\n'+
- ' \pgfmathsetmacro{\Radius}{3.5}\n'+
- ' \\foreach \i in {0,...,\\NumVertLessOne}{\n'+
- ' \coordinate (vertex_\i) at (90-\i*\Angle:\Radius);\n'+
- ' }\n'
- )
- if num_of_infs==1:
- print(' \coordinate (vertex_'+str(n+1)+') at (0:0);\n'
- ' \\node [vertex, label=above:$\infty$] at (vertex_'+str(n+1)+'){};)')
- if num_of_infs==2:
- print(' \coordinate (vertex_'+str(n+1)+') at (180:1);\n'
- ' \coordinate (vertex_'+str(n+2)+') at (0:1);\n'
- ' \\node [vertex, label=above:$\infty_1$] at (vertex_'+str(n+1)+'){};)\n'+
- ' \\node [vertex, label=above:$\infty_2$] at (vertex_'+str(n+2)+'){};)')
- print( ' \\node [vertex, label=above:$0$] at (vertex_0) {};\n'+
- ' \\foreach \i in {1,...,'+str(int((n-1)/2))+'}{\n'+
- ' \\node [vertex, label=right:$\i$] at (vertex_\i) {};\n'+
- ' }\n'+
- ' \\foreach \i in {'+str(int((n+1)/2))+',...,'+str(n-1)+'}{\n'+
- ' \\node [vertex, label=left:$\i$] at (vertex_\i) {};\n'+
- ' }\n'
- )
- else:
- print('\\begin{tikzpicture}[scale=0.5]\n' +
- ' \pgfmathsetmacro{\\NumVert}{' + str(n) + ')}\n' +
- ' \pgfmathsetmacro{\\NumVertLessOne}{' + str(n - 1) + ')}\n' +
- ' \pgfmathsetmacro{\Angle}{360/\\NumVert}\n' +
- ' \pgfmathsetmacro{\Radius}{3.5}\n' +
- ' \\foreach \i in {0,...,\\NumVertLessOne}{\n' +
- ' \coordinate (vertex_\i) at (90-\i*\Angle:\Radius);\n'
- ' }\n'
- )
- if num_of_infs==1:
- print(' \coordinate (vertex_'+str(n+1)+') at (0:0);\n'
- ' \\node [vertex, label=above:$\infty$] at (vertex_'+str(n+1)+'){};)')
- if num_of_infs==2:
- print(' \coordinate (vertex_'+str(n+1)+') at (180:1);\n'
- ' \coordinate (vertex_'+str(n+2)+') at (0:1);\n'
- ' \\node [vertex, label=above:$\infty_1$] at (vertex_'+str(n+1)+'){};)\n'+
- ' \\node [vertex, label=above:$\infty_2$] at (vertex_'+str(n+2)+'){};)')
- print(' \\foreach \i in {0,...,' + str(int(n/2)) + '}{\n' +
- ' \\node [vertex, label=right:$\i$] at (vertex_\i) {};\n' +
- ' }\n' +
- ' \\foreach \i in {' + str(int(n/2+1)) + ',...,' + str(n - 1) + '}{\n' +
- ' \\node [vertex, label=left:$\i$] at (vertex_\i) {};\n' +
- ' }\n'
- )
- for edge in edge_set_lst:
- print(' \hyperedge{vertex_'+str(edge[0])+'}{vertex_'+str(edge[1])+'}{vertex_'+str(edge[2])+'};')
- print('\n\end{tikzpicture}')
- for i in edge_set_lst:
- latex_output(n,num_of_infs,i)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement