Index: /trunk/FACT++/www/index.js
===================================================================
--- /trunk/FACT++/www/index.js	(revision 13564)
+++ /trunk/FACT++/www/index.js	(revision 13565)
@@ -759,7 +759,22 @@
 }
 
+function position(s, ring, i)
+{
+    switch (s)
+    {
+    case 0: this.x =  ring     - i*0.5;  this.y =       + i; break;
+    case 1: this.x =  ring*0.5 - i;      this.y =  ring    ; break;
+    case 2: this.x = -ring*0.5 - i*0.5;  this.y =  ring - i; break;
+    case 3: this.x = -ring     + i*0.5;  this.y =       - i; break;
+    case 4: this.x = -ring*0.5 + i;      this.y = -ring    ; break;
+    case 5: this.x =  ring*0.5 + i*0.5;  this.y = -ring + i; break;
+    }
+
+    this.d = function() { return this.x*this.x + this.y*this.y*3/4; }
+}
+
 function drawFullCam(data)
 {
-    var ctx = beginDrawCam(80);
+    var ctx = beginDrawCam(80.5);
     ctx.rotate(Math.PI/2);
     ctx.scale(1, Math.sqrt(3)/2);
@@ -774,19 +789,9 @@
             for (var i=1; i<=ring; i++)
             {
-                var x=0.;
-                var y=0.;
-
-                switch (s)
-                {
-                case 0: x =  ring     - i*0.5;  y =       + i; break;
-                case 1: x =  ring*0.5 - i;      y =  ring    ; break;
-                case 2: x = -ring*0.5 - i*0.5;  y =  ring - i; break;
-                case 3: x = -ring     + i*0.5;  y =       - i; break;
-                case 4: x = -ring*0.5 + i;      y = -ring    ; break;
-                case 5: x =  ring*0.5 + i*0.5;  y = -ring + i; break;
-                }
-
-                if (x*x + y*y*3/4 - x < 395.75)
-                    drawHex(ctx, x-0.5, -y, data.charCodeAt(cnt++));
+                var pos = new position(s, ring, i);
+                if (pos.d() - pos.x > 395.75)
+                    continue;
+
+                drawHex(ctx, pos.x-0.5, -pos.y, data.charCodeAt(cnt++));
             }
         }
@@ -814,30 +819,17 @@
             for (var i=1; i<=ring; i++)
             {
-                var x=0.;
-                var y=0.;
-
-                switch (s)
+                var pos = new position(s, ring, i);
+                if (pos.d() > 44)
+                    continue;
+
+                if (ring==7)
                 {
-                case 0: x =  ring     - i*0.5;  y =       + i; break;
-                case 1: x =  ring*0.5 - i;      y =  ring    ; break;
-                case 2: x = -ring*0.5 - i*0.5;  y =  ring - i; break;
-                case 3: x = -ring     + i*0.5;  y =       - i; break;
-                case 4: x = -ring*0.5 + i;      y = -ring    ; break;
-                case 5: x =  ring*0.5 + i*0.5;  y = -ring + i; break;
+                    if (i==6 && (s==0 || s==3))
+                        continue;
+                    if (i==1 && (s==1 || s==4))
+                        continue;
                 }
 
-                if (x*x + y*y*3/4 > 44)
-                    continue;
-
-                if (ring==7 && i==6 && s==0)
-                    continue;
-                if (ring==7 && i==1 && s==1)
-                    continue;
-                if (ring==7 && i==6 && s==3)
-                    continue;
-                if (ring==7 && i==1 && s==4)
-                    continue;
-
-                drawHex(ctx, x, y, data.charCodeAt(cnt++));
+                drawHex(ctx, pos.x, pos.y, data.charCodeAt(cnt++));
             }
         }
