Advertisement
Guest User

Untitled

a guest
Jul 15th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.53 KB | None | 0 0
  1. n=11 #comment out if having user input
  2. num_of_infs = 0
  3. 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]]]
  4.  
  5. # n = int(input("What is the size of Z_n? "))
  6. # num_of_infs = int(input("What is the size of I_r? "))
  7. # edge_set_lst = input("Please copy your edge set(s) below:\n")
  8. # print(edge_set_lst)
  9.  
  10. def latex_output(n,num_of_infs,edge_set_lst):
  11.     if n % 2 == 1:
  12.         print(  '\\begin{tikzpicture}[scale=0.5]\n'+
  13.             '   \pgfmathsetmacro{\\NumVert}{'+str(n)+')}\n'+
  14.             '   \pgfmathsetmacro{\\NumVertLessOne}{'+str(n-1)+')}\n'+
  15.             '   \pgfmathsetmacro{\Angle}{360/\\NumVert}\n'+
  16.             '   \pgfmathsetmacro{\Radius}{3.5}\n'+
  17.             '   \\foreach \i in {0,...,\\NumVertLessOne}{\n'+
  18.                 '       \coordinate (vertex_\i) at (90-\i*\Angle:\Radius);\n'+
  19.             '   }\n'
  20.             )
  21.         if num_of_infs==1:
  22.  
  23.             print('   \coordinate (vertex_'+str(n+1)+') at (0:0);\n'
  24.                   '   \\node [vertex, label=above:$\infty$] at (vertex_'+str(n+1)+'){};)')
  25.         if num_of_infs==2:
  26.             print('   \coordinate (vertex_'+str(n+1)+') at (180:1);\n'
  27.                   '   \coordinate (vertex_'+str(n+2)+') at (0:1);\n'
  28.                   '   \\node [vertex, label=above:$\infty_1$] at (vertex_'+str(n+1)+'){};)\n'+
  29.                   '   \\node [vertex, label=above:$\infty_2$] at (vertex_'+str(n+2)+'){};)')
  30.         print(  '   \\node [vertex, label=above:$0$] at (vertex_0) {};\n'+
  31.             '   \\foreach \i in {1,...,'+str(int((n-1)/2))+'}{\n'+
  32.                 '       \\node [vertex, label=right:$\i$] at (vertex_\i) {};\n'+
  33.             '   }\n'+
  34.             '   \\foreach \i in {'+str(int((n+1)/2))+',...,'+str(n-1)+'}{\n'+
  35.                 '       \\node [vertex, label=left:$\i$] at (vertex_\i) {};\n'+
  36.             '   }\n'
  37.         )
  38.     else:
  39.         print('\\begin{tikzpicture}[scale=0.5]\n' +
  40.               '   \pgfmathsetmacro{\\NumVert}{' + str(n) + ')}\n' +
  41.               '   \pgfmathsetmacro{\\NumVertLessOne}{' + str(n - 1) + ')}\n' +
  42.               '   \pgfmathsetmacro{\Angle}{360/\\NumVert}\n' +
  43.               '   \pgfmathsetmacro{\Radius}{3.5}\n' +
  44.               '   \\foreach \i in {0,...,\\NumVertLessOne}{\n' +
  45.               '       \coordinate (vertex_\i) at (90-\i*\Angle:\Radius);\n'
  46.               '   }\n'
  47.               )
  48.         if num_of_infs==1:
  49.  
  50.             print('   \coordinate (vertex_'+str(n+1)+') at (0:0);\n'
  51.                   '   \\node [vertex, label=above:$\infty$] at (vertex_'+str(n+1)+'){};)')
  52.         if num_of_infs==2:
  53.             print('   \coordinate (vertex_'+str(n+1)+') at (180:1);\n'
  54.                   '   \coordinate (vertex_'+str(n+2)+') at (0:1);\n'
  55.                   '   \\node [vertex, label=above:$\infty_1$] at (vertex_'+str(n+1)+'){};)\n'+
  56.                   '   \\node [vertex, label=above:$\infty_2$] at (vertex_'+str(n+2)+'){};)')
  57.         print('   \\foreach \i in {0,...,' + str(int(n/2)) + '}{\n' +
  58.               '       \\node [vertex, label=right:$\i$] at (vertex_\i) {};\n' +
  59.               '   }\n' +
  60.               '   \\foreach \i in {' + str(int(n/2+1)) + ',...,' + str(n - 1) + '}{\n' +
  61.               '       \\node [vertex, label=left:$\i$] at (vertex_\i) {};\n' +
  62.               '   }\n'
  63.               )
  64.  
  65.     for edge in edge_set_lst:
  66.         print('   \hyperedge{vertex_'+str(edge[0])+'}{vertex_'+str(edge[1])+'}{vertex_'+str(edge[2])+'};')
  67.     print('\n\end{tikzpicture}')
  68.  
  69. for i in edge_set_lst:
  70.     latex_output(n,num_of_infs,i)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement