0001 function mobius(g,nverts)
0002
0003
0004
0005
0006
0007 if (mod(nverts,2)==1)
0008 error('Number of vertices must be even')
0009 end
0010 if (nverts < 6)
0011 error('Number of vertices must be at least 6')
0012 end
0013
0014 n = nverts/2;
0015 cycle(g,nverts)
0016 more_edges = zeros(n,2);
0017 for v=1:n
0018 more_edges(v,:) = [v, v+n];
0019 end
0020
0021 add(g,more_edges);
0022
0023
0024 rmxy(g);
0025
0026
0027 t = (0:n-1)*2*pi/n;
0028 x = n * cos(t)/6;
0029 y = n * sin(t)/6;
0030 xy1 = [x',y'];
0031
0032
0033 x = (n+6)*cos(t)/6;
0034 y = (n+6)*sin(t)/6;
0035 xy2 = [x',y'];
0036
0037 xy = [xy1;xy2];
0038
0039
0040 theta = pi/n;
0041 ct = cos(theta);
0042 st = sin(theta);
0043 rot = [ct,st; -st, ct];
0044 xy = xy*rot;
0045
0046 embed(g,xy);