function dfDrawFont(kage, polygons, a1, a2, a3, x1, y1, x2, y2, x3, y3, x4, y4){\r
var tx1, tx2, tx3, tx4, ty1, ty2, ty3, ty4, v;\r
var rad;\r
- \r
+ \r
if(kage.kShotai == kage.kMincho){\r
switch(a1 % 100){ // ... no need to divide\r
case 0:\r
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
tx2 = x2 + kage.kMage * Math.cos(rad) * v;\r
ty2 = y2 + kage.kMage * Math.sin(rad) * v;\r
}\r
- tx3 = x3 - kage.kMage;\r
+ tx3 = x3;\r
ty3 = y3;\r
- tx4 = x3 + kage.kMage * 0.5; // ... not used\r
- ty4 = y3 - kage.kMage * 2; // ... not used\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, tx3, ty3, 6, 5); // bolder by force\r
+ cdDrawCurve(kage, polygons, tx1, ty1, x2, y2, tx2, ty2, 1 + (a2 - a2 % 1000) * 10, 1);\r
+ if((x2 < x3 && tx3 - tx2 > 0) || (x2 > x3 && tx2 - tx3 > 0)){ // for closer position\r
+ cdDrawLine(kage, polygons, tx2, ty2, tx3, ty3, 6, 5); // bolder by force\r
+ }\r
}\r
else{\r
if(x1 == x2){\r
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
+ cdDrawCurve(kage, polygons, tx1, ty1, x2, y2, tx2, ty2, 1 + (a2 - a2 % 1000) * 10, 1);\r
cdDrawLine(kage, polygons, tx2, ty2, x3, y3, 6, a3); // bolder by force\r
}\r
break;\r
cdDrawCurve(kage, polygons, x1, y1, x2, y2, x3, y3, a2, 1);\r
cdDrawLine(kage, polygons, x3, y3, x4, y4, 6, a3);\r
break;\r
- case 13:\r
-rate = 6;\r
+ case 4:\r
+ rate = 6;\r
+ if((x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2) < 14400){ // smaller than 120 x 120\r
+ rate = Math.sqrt((x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2)) / 120 * 6;\r
+ }\r
if(a3 == 5){\r
if(x1 == x2){\r
if(y1 < y2){ v = 1; } else{ v = -1; }\r
tx2 = x2 + kage.kMage * Math.cos(rad) * v * rate;\r
ty2 = y2 + kage.kMage * Math.sin(rad) * v * rate;\r
}\r
- tx3 = x3 - kage.kMage;\r
+ tx3 = x3;\r
ty3 = y3;\r
- tx4 = x3 + kage.kMage * 0.5; // ... not used\r
- ty4 = y3 - kage.kMage * 2; // ... not used\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, tx3, ty3, 6, 5); // bolder by force\r
+ if(tx3 - tx2 > 0){ // for closer position\r
+ cdDrawLine(kage, polygons, tx2, ty2, tx3, ty3, 6, 5); // bolder by force\r
+ }\r
}\r
else{\r
if(x1 == x2){\r
}\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