6 void dfDrawFont(int a1, int a2, int a3,
11 int tx1, tx2, tx3, tx4, ty1, ty2, ty3, ty4, v;
14 if(kShotai == kMincho){
21 if(y1 < y2){ v = 1; } else{ v = -1; }
26 if(x1 < x2){ v = 1; } else{ v = -1; }
31 rad = atan((double)(y2 - y1) / (double)(x2 - x1));
32 if(x1 < x2){ v = 1; } else{v = -1; }
33 tx1 = x2 - kMage * cos(rad) * v;
34 ty1 = y2 - kMage * sin(rad) * v;
36 cdDrawLine(x1, y1, tx1, ty1, a2, 1);
37 cdDrawCurve(tx1, ty1, x2, y2, x2 - kMage, y2, 1, 14);
40 cdDrawLine(x1, y1, x2, y2, a2, a3);
55 rad = atan((double)(y3 - y2) / (double)(x3 - x2));
56 if(x2 < x3){ v = 1; } else{ v = -1; }
57 tx1 = x3 - kMage * cos(rad) * v;
58 ty1 = y3 - kMage * sin(rad) * v;
60 cdDrawCurve(x1, y1, x2, y2, tx1, ty1, a2, 1);
61 cdDrawCurve(tx1, ty1, x3, y3, x3 - kMage, y3, 1, 14);
64 cdDrawCurve(x1, y1, x2, y2, x3, y3, a2, 15);
67 cdDrawCurve(x1, y1, x2, y2, x3, y3, a2, a3);
73 if(y1 < y2){ v = 1; } else{ v = -1; }
78 if(x1 < x2){ v = 1; } else{ v = -1; }
83 rad = atan((double)(y2 - y1) / (double)(x2 - x1));
84 if(x1 < x2){ v = 1; } else{ v = -1; }
85 tx1 = x2 - kMage * cos(rad) * v;
86 ty1 = y2 - kMage * sin(rad) * v;
89 if(y2 < y3){ v = 1; } else{ v = -1; }
94 if(x2 < x3){ v = 1; } else { v = -1; }
99 rad = atan((double)(y3 - y2) / (double)(x3 - x2));
100 if(x2 < x3){ v = 1; } else{ v = -1; }
101 tx2 = x2 + kMage * cos(rad) * v;
102 ty2 = y2 + kMage * sin(rad) * v;
106 tx4 = x3 + kMage * 0.5;
107 ty4 = y3 - kMage * 2;
109 cdDrawLine(x1, y1, tx1, ty1, a2, 1);
110 cdDrawCurve(tx1, ty1, x2, y2, tx2, ty2, 1, 1);
111 cdDrawLine(tx2, ty2, tx3, ty3, 6, 5); // bolder by force
115 if(y1 < y2){ v = 1; } else { v = -1; }
117 ty1 = y2 - kMage * v;
120 if(x1 < x2){ v = 1; } else{ v = -1; }
121 tx1 = x2 - kMage * v;
125 rad = atan((double)(y2 - y1) / (double)(x2 - x1));
126 if(x1 < x2){ v = 1; } else{ v = -1; }
127 tx1 = x2 - kMage * cos(rad) * v;
128 ty1 = y2 - kMage * sin(rad) * v;
131 if(y2 < y3){ v = 1; } else{ v = -1; }
133 ty2 = y2 + kMage * v;
136 if(x2 < x3){ v = 1; } else{ v = -1; }
137 tx2 = x2 + kMage * v;
141 rad = atan((double)(y3 - y2) / (double)(x3 - x2));
142 if(x2 < x3){ v = 1; } else{ v = -1; }
143 tx2 = x2 + kMage * cos(rad) * v;
144 ty2 = y2 + kMage * sin(rad) * v;
146 cdDrawLine(x1, y1, tx1, ty1, a2, 1);
147 cdDrawCurve(tx1, ty1, x2, y2, tx2, ty2, 1, 1);
148 cdDrawLine(tx2, ty2, x3, y3, 6, a3); // bolder by force
153 /* only implimented for gothic
156 tx2 = x4 + kMage * 0.5;
157 ty2 = y4 - kMage * 2;
159 cdDrawBezier(x1, y1, x2, y2, x3, y3, x4, y4, a2, 15);
162 cdDrawBezier(x1, y1, x2, y2, x3, y3, x4, y4, a2, a3);
166 cdDrawLine(x1, y1, x2, y2, a2, 1);
167 cdDrawCurve(x2, y2, x3, y3, x4, y4, 1, 7);
170 icBox(x1, y1, x2, y2);
172 case 9: // may not be exist
188 if(y1 < y2){ v = 1; } else{ v = -1; }
190 ty1 = y2 - kMage * v;
193 if(x1 < x2){ v = 1; } else{ v = -1; }
194 tx1 = x2 - kMage * v;
198 rad = atan((double)(y2 - y1) / (double)(x2 - x1));
199 if(x1 < x2){ v = 1; } else{ v = -1; }
200 tx1 = x2 - kMage * cos(rad) * v;
201 ty1 = y2 - kMage * sin(rad) * v;
203 cdDrawLine(x1, y1, tx1, ty1, a2, 1);
204 cdDrawCurve(tx1, ty1, x2, y2, x2 - kMage * 2, y2 - kMage * 0.5, 1, 0);
207 cdDrawLine(x1, y1, x2, y2, a2, a3);
222 rad = atan((double)(y3 - y2) / (double)(x3 - x2));
223 if(x2 < x3){ v = 1; } else{ v = -1; }
224 tx1 = x3 - kMage * cos(rad) * v;
225 ty1 = y3 - kMage * sin(rad) * v;
227 cdDrawCurve(x1, y1, x2, y2, tx1, ty1, a2, 1);
228 cdDrawCurve(tx1, ty1, x3, y3, x3 - kMage * 2, y3 - kMage * 0.5, 1, 0);
233 tx2 = tx1 + kMage * 0.5;
234 ty2 = y3 - kMage * 2;
235 cdDrawCurve(x1, y1, x2, y2, x3, y3, a2, 1);
236 cdDrawCurve(x3, y3, tx1, ty1, tx2, ty2, 1, 0);
239 cdDrawCurve(x1, y1, x2, y2, x3, y3, a2, a3);
245 if(y1 < y2){ v = 1; } else{ v = -1; }
247 ty1 = y2 - kMage * v;
250 if(x1 < x2){ v = 1; } else{ v = -1; }
251 tx1 = x2 - kMage * v;
255 rad = atan((double)(y2 - y1) / (double)(x2 - x1));
256 if(x1 < x2){ v = 1; } else{ v = -1; }
257 tx1 = x2 - kMage * cos(rad) * v;
258 ty1 = y2 - kMage * sin(rad) * v;
261 if(y2 < y3){ v = 1; } else{ v = -1; }
263 ty2 = y2 + kMage * v;
266 if(x2 < x3){ v = 1; } else{ v = -1; }
267 tx2 = x2 + kMage * v;
271 rad = atan((double)(y3 - y2) / (double)(x3 - x2));
272 if(x2 < x3){ v = 1; } else{ v = -1; }
273 tx2 = x2 + kMage * cos(rad) * v;
274 ty2 = y2 + kMage * sin(rad) * v;
278 tx4 = x3 + kMage * 0.5;
279 ty4 = y3 - kMage * 2;
281 cdDrawLine(x1, y1, tx1, ty1, a2, 1);
282 cdDrawCurve(tx1, ty1, x2, y2, tx2, ty2, 1, 1);
283 cdDrawLine(tx2, ty2, tx3, ty3, 1, 1);
284 cdDrawCurve(tx3, ty3, x3, y3, tx4, ty4, 1, 0);
288 if(y1 < y2){ v = 1; } else{ v = -1; }
290 ty1 = y2 - kMage * v;
293 if(x1 < x2){ v = 1; } else{ v = -1; }
294 tx1 = x2 - kMage * v;
298 rad = atan((double)(y2 - y1) / (double)(x2 - x1));
299 if(x1 < x2){ v = 1; } else{ v = -1; }
300 tx1 = x2 - kMage * cos(rad) * v;
301 ty1 = y2 - kMage * sin(rad) * v;
304 if(y2 < y3){ v = 1; } else{ v = -1; }
306 ty2 = y2 + kMage * v;
309 if(x2 < x3){ v = 1; } else{ v = -1; }
310 tx2 = x2 + kMage * v;
314 rad = atan((double)(y3 - y2) / (double)(x3 - x2));
315 if(x2 < x3){ v = 1; } else{ v = -1; }
316 tx2 = x2 + kMage * cos(rad) * v;
317 ty2 = y2 + kMage * sin(rad) * v;
320 cdDrawLine(x1, y1, tx1, ty1, a2, 1);
321 cdDrawCurve(tx1, ty1, x2, y2, tx2, ty2, 1, 1);
322 cdDrawLine(tx2, ty2, x3, y3, 1, a3);
329 tx2 = x4 + kMage * 0.5;
330 ty2 = y4 - kMage * 2;
331 cdDrawBezier(x1, y1, x2, y2, x3, y3, tx1, ty1, a2, 1);
332 cdDrawCurve(tx1, ty1, x4, y4, tx2, ty2, 1, 0);
335 cdDrawBezier(x1, y1, x2, y2, x3, y3, x4, y4, a2, a3);
339 cdDrawLine(x1, y1, x2, y2, a2, 1);
340 cdDrawCurve(x2, y2, x3, y3, x4, y4, 1, a3);
343 icBox(x1, y1, x2, y2);
345 case 9: // may not be exist