set polygons to counter-clockwise
[chise/kage.git] / engine / kagedf.js
index b7a826d..3acbe29 100755 (executable)
@@ -25,7 +25,7 @@ function dfDrawFont(kage, polygons, a1, a2, a3, x1, y1, x2, y2, x3, y3, x4, y4){
           ty1 = y2 - kage.kMage * Math.sin(rad) * v;\r
         }\r
         cdDrawLine(kage, polygons, x1, y1, tx1, ty1, a2, 1);\r
-        cdDrawCurve(kage, polygons, tx1, ty1, x2, y2, x2 - kage.kMage, y2, 1, 14);\r
+        cdDrawCurve(kage, polygons, tx1, ty1, x2, y2, x2 - kage.kMage * (((kage.kAdjustTateStep + 4) - Math.floor(a2 / 1000)) / (kage.kAdjustTateStep + 4)), y2, 1 + (a2 - a2 % 1000), 14);\r
       }\r
       else{\r
         cdDrawLine(kage, polygons, x1, y1, x2, y2, a2, a3);\r
@@ -59,7 +59,7 @@ function dfDrawFont(kage, polygons, a1, a2, a3, x1, y1, x2, y2, x3, y3, x4, y4){
       }\r
       break;\r
     case 3:\r
-      if(a3 == 5){\r
+      if(a3 % 1000 == 5){\r
         if(x1 == x2){\r
           if(y1 < y2){ v = 1; } else{ v = -1; }\r
           tx1 = x2;\r
@@ -92,14 +92,14 @@ function dfDrawFont(kage, polygons, a1, a2, a3, x1, y1, x2, y2, x3, y3, x4, y4){
           tx2 = x2 + kage.kMage * Math.cos(rad) * v;\r
           ty2 = y2 + kage.kMage * Math.sin(rad) * v;\r
         }\r
-                               tx3 = x3;\r
+        tx3 = x3;\r
         ty3 = y3;\r
         \r
         cdDrawLine(kage, polygons, x1, y1, tx1, ty1, a2, 1);\r
-        cdDrawCurve(kage, polygons, tx1, ty1, x2, y2, tx2, ty2, 1, 1);\r
-                               if(tx3 - tx2 > 0){ // for closer position\r
-                                       cdDrawLine(kage, polygons, tx2, ty2, tx3, ty3, 6, 5); // bolder by force\r
-                               }\r
+        cdDrawCurve(kage, polygons, tx1, ty1, x2, y2, tx2, ty2, 1 + (a2 - a2 % 1000) * 10, 1 + (a3 - a3 % 1000));\r
+        if((x2 < x3 && tx3 - tx2 > 0) || (x2 > x3 && tx2 - tx3 > 0)){ // for closer position\r
+          cdDrawLine(kage, polygons, tx2, ty2, tx3, ty3, 6 + (a3 - a3 % 1000), 5); // bolder by force\r
+        }\r
       }\r
       else{\r
         if(x1 == x2){\r
@@ -135,8 +135,8 @@ function dfDrawFont(kage, polygons, a1, a2, a3, x1, y1, x2, y2, x3, y3, x4, y4){
           ty2 = y2 + kage.kMage * Math.sin(rad) * v;\r
         }\r
         cdDrawLine(kage, polygons, x1, y1, tx1, ty1, a2, 1);\r
-        cdDrawCurve(kage, polygons, tx1, ty1, x2, y2, tx2, ty2, 1, 1);\r
-        cdDrawLine(kage, polygons, tx2, ty2, x3, y3, 6, a3); // bolder by force\r
+        cdDrawCurve(kage, polygons, tx1, ty1, x2, y2, tx2, ty2, 1 + (a2 - a2 % 1000) * 10, 1 + (a3 - a3 % 1000));\r
+        cdDrawLine(kage, polygons, tx2, ty2, x3, y3, 6 + (a3 - a3 % 1000), a3); // bolder by force\r
       }\r
       break;\r
     case 12:\r
@@ -229,42 +229,34 @@ function dfDrawFont(kage, polygons, a1, a2, a3, x1, y1, x2, y2, x3, y3, x4, y4){
       }\r
       break;\r
     case 6:\r
-      if(a3 == 5){\r
-        /* only implimented for gothic\r
-                               tx1 = x4 - kage.kMage;\r
-                               ty1 = y4;\r
-                               tx2 = x4 + kage.kMage * 0.5;\r
-                               ty2 = y4 - kage.kMage * 2;\r
-                               */\r
+      if(a3 == 4){\r
+        if(x3 == x4){\r
+          tx1 = x4;\r
+          ty1 = y4 - kage.kMage;\r
+        }\r
+        else if(y3 == y4){\r
+          tx1 = x4 - kage.kMage;\r
+          ty1 = y4;\r
+        }\r
+        else{\r
+          rad = Math.atan((y4 - y3) / (x4 - x3));\r
+          if(x3 < x4){ v = 1; } else{ v = -1; }\r
+          tx1 = x4 - kage.kMage * Math.cos(rad) * v;\r
+          ty1 = y4 - kage.kMage * Math.sin(rad) * v;\r
+        }\r
+        cdDrawBezier(kage, polygons, x1, y1, x2, y2, x3, y3, tx1, ty1, a2, 1);\r
+        cdDrawCurve(kage, polygons, tx1, ty1, x4, y4, x4 - kage.kMage, y4, 1, 14);\r
+      }\r
+      else if(a3 == 5){\r
         cdDrawBezier(kage, polygons, x1, y1, x2, y2, x3, y3, x4, y4, a2, 15);\r
-        /*\r
-                               if(a2 == 7 || a3 == 7){\r
-                                       cdDrawCurve(x1, y1, x2, y2, (x2 + x3) / 2, (y2 + y3) / 2, a2, 17);\r
-                                       cdDrawCurve((x2 + x3) / 2, (y2 + y3) / 2, x3, y3, x4, y4, 17, 15);\r
-                               }\r
-                               else{\r
-                                       cdDrawCurve(x1, y1, x2, y2, (x2 + x3) / 2, (y2 + y3) / 2, a2, 8);\r
-                                       cdDrawCurve((x2 + x3) / 2, (y2 + y3) / 2, x3, y3, x4, y4, 1, 15);\r
-                               }\r
-         */\r
       }\r
       else{\r
         cdDrawBezier(kage, polygons, x1, y1, x2, y2, x3, y3, x4, y4, a2, a3);\r
-        /*\r
-                               if(a2 == 7 || a3 == 7){\r
-                                       cdDrawCurve(x1, y1, x2, y2, (x2 + x3) / 2, (y2 + y3) / 2, a2, 17);\r
-                                       cdDrawCurve((x2 + x3) / 2, (y2 + y3) / 2, x3, y3, x4, y4, 17, a3);\r
-                               }\r
-                               else{\r
-                                       cdDrawCurve(x1, y1, x2, y2, (x2 + x3) / 2, (y2 + y3) / 2, a2, 8);\r
-                                       cdDrawCurve((x2 + x3) / 2, (y2 + y3) / 2, x3, y3, x4, y4, 1, a3);\r
-                               }\r
-         */\r
       }\r
       break;\r
     case 7:\r
       cdDrawLine(kage, polygons, x1, y1, x2, y2, a2, 1);\r
-      cdDrawCurve(kage, polygons, x2, y2, x3, y3, x4, y4, 1, a3);\r
+      cdDrawCurve(kage, polygons, x2, y2, x3, y3, x4, y4, 1 + (a2 - a2 % 1000), a3);\r
       break;\r
     case 9: // may not be exist ... no need\r
       //kageCanvas[y1][x1] = 0;\r