5 void dfDrawFont(int a1, int a2, int a3,
\r
10 int tx1, tx2, tx3, tx4, ty1, ty2, ty3, ty4, v;
\r
13 if(kShotai == kMincho){
\r
20 if(y1 < y2){ v = 1; } else{ v = -1; }
\r
22 ty1 = y2 - kMage * v;
\r
25 if(x1 < x2){ v = 1; } else{ v = -1; }
\r
26 tx1 = x2 - kMage * v;
\r
30 rad = atan((double)(y2 - y1) / (double)(x2 - x1));
\r
31 if(x1 < x2){ v = 1; } else{v = -1; }
\r
32 tx1 = x2 - kMage * cos(rad) * v;
\r
33 ty1 = y2 - kMage * sin(rad) * v;
\r
35 cdDrawLine(x1, y1, tx1, ty1, a2, 1);
\r
36 cdDrawCurve(tx1, ty1, x2, y2, x2 - kMage, y2, 1, 14);
\r
39 cdDrawLine(x1, y1, x2, y2, a2, a3);
\r
54 rad = atan((double)(y3 - y2) / (double)(x3 - x2));
\r
55 if(x2 < x3){ v = 1; } else{ v = -1; }
\r
56 tx1 = x3 - kMage * cos(rad) * v;
\r
57 ty1 = y3 - kMage * sin(rad) * v;
\r
59 cdDrawCurve(x1, y1, x2, y2, tx1, ty1, a2, 1);
\r
60 cdDrawCurve(tx1, ty1, x3, y3, x3 - kMage, y3, 1, 14);
\r
63 cdDrawCurve(x1, y1, x2, y2, x3, y3, a2, 15);
\r
66 cdDrawCurve(x1, y1, x2, y2, x3, y3, a2, a3);
\r
72 if(y1 < y2){ v = 1; } else{ v = -1; }
\r
74 ty1 = y2 - kMage * v;
\r
77 if(x1 < x2){ v = 1; } else{ v = -1; }
\r
78 tx1 = x2 - kMage * v;
\r
82 rad = atan((double)(y2 - y1) / (double)(x2 - x1));
\r
83 if(x1 < x2){ v = 1; } else{ v = -1; }
\r
84 tx1 = x2 - kMage * cos(rad) * v;
\r
85 ty1 = y2 - kMage * sin(rad) * v;
\r
88 if(y2 < y3){ v = 1; } else{ v = -1; }
\r
90 ty2 = y2 + kMage * v;
\r
93 if(x2 < x3){ v = 1; } else { v = -1; }
\r
94 tx2 = x2 + kMage * v;
\r
98 rad = atan((double)(y3 - y2) / (double)(x3 - x2));
\r
99 if(x2 < x3){ v = 1; } else{ v = -1; }
\r
100 tx2 = x2 + kMage * cos(rad) * v;
\r
101 ty2 = y2 + kMage * sin(rad) * v;
\r
105 tx4 = x3 + kMage * 0.5;
\r
106 ty4 = y3 - kMage * 2;
\r
108 cdDrawLine(x1, y1, tx1, ty1, a2, 1);
\r
109 cdDrawCurve(tx1, ty1, x2, y2, tx2, ty2, 1, 1);
\r
110 cdDrawLine(tx2, ty2, tx3, ty3, 6, 5); // bolder by force
\r
114 if(y1 < y2){ v = 1; } else { v = -1; }
\r
116 ty1 = y2 - kMage * v;
\r
119 if(x1 < x2){ v = 1; } else{ v = -1; }
\r
120 tx1 = x2 - kMage * v;
\r
124 rad = atan((double)(y2 - y1) / (double)(x2 - x1));
\r
125 if(x1 < x2){ v = 1; } else{ v = -1; }
\r
126 tx1 = x2 - kMage * cos(rad) * v;
\r
127 ty1 = y2 - kMage * sin(rad) * v;
\r
130 if(y2 < y3){ v = 1; } else{ v = -1; }
\r
132 ty2 = y2 + kMage * v;
\r
135 if(x2 < x3){ v = 1; } else{ v = -1; }
\r
136 tx2 = x2 + kMage * v;
\r
140 rad = atan((double)(y3 - y2) / (double)(x3 - x2));
\r
141 if(x2 < x3){ v = 1; } else{ v = -1; }
\r
142 tx2 = x2 + kMage * cos(rad) * v;
\r
143 ty2 = y2 + kMage * sin(rad) * v;
\r
145 cdDrawLine(x1, y1, tx1, ty1, a2, 1);
\r
146 cdDrawCurve(tx1, ty1, x2, y2, tx2, ty2, 1, 1);
\r
147 cdDrawLine(tx2, ty2, x3, y3, 6, a3); // bolder by force
\r
152 /* only implimented for gothic
\r
155 tx2 = x4 + kMage * 0.5;
\r
156 ty2 = y4 - kMage * 2;
\r
158 cdDrawBezier(x1, y1, x2, y2, x3, y3, x4, y4, a2, 15);
\r
160 if(a2 == 7 || a3 == 7){
\r
161 cdDrawCurve(x1, y1, x2, y2, (x2 + x3) / 2, (y2 + y3) / 2, a2, 17);
\r
162 cdDrawCurve((x2 + x3) / 2, (y2 + y3) / 2, x3, y3, x4, y4, 17, 15);
\r
165 cdDrawCurve(x1, y1, x2, y2, (x2 + x3) / 2, (y2 + y3) / 2, a2, 8);
\r
166 cdDrawCurve((x2 + x3) / 2, (y2 + y3) / 2, x3, y3, x4, y4, 1, 15);
\r
171 cdDrawBezier(x1, y1, x2, y2, x3, y3, x4, y4, a2, a3);
\r
173 if(a2 == 7 || a3 == 7){
\r
174 cdDrawCurve(x1, y1, x2, y2, (x2 + x3) / 2, (y2 + y3) / 2, a2, 17);
\r
175 cdDrawCurve((x2 + x3) / 2, (y2 + y3) / 2, x3, y3, x4, y4, 17, a3);
\r
178 cdDrawCurve(x1, y1, x2, y2, (x2 + x3) / 2, (y2 + y3) / 2, a2, 8);
\r
179 cdDrawCurve((x2 + x3) / 2, (y2 + y3) / 2, x3, y3, x4, y4, 1, a3);
\r
185 cdDrawLine(x1, y1, x2, y2, a2, 1);
\r
186 cdDrawCurve(x2, y2, x3, y3, x4, y4, 1, 7);
\r
188 case 9: // may not be exist
\r
202 if(y1 < y2){ v = 1; } else{ v = -1; }
\r
204 ty1 = y2 - kMage * v;
\r
207 if(x1 < x2){ v = 1; } else{ v = -1; }
\r
208 tx1 = x2 - kMage * v;
\r
212 rad = atan((double)(y2 - y1) / (double)(x2 - x1));
\r
213 if(x1 < x2){ v = 1; } else{ v = -1; }
\r
214 tx1 = x2 - kMage * cos(rad) * v;
\r
215 ty1 = y2 - kMage * sin(rad) * v;
\r
217 cdDrawLine(x1, y1, tx1, ty1, a2, 1);
\r
218 cdDrawCurve(tx1, ty1, x2, y2, x2 - kMage * 2, y2 - kMage * 0.5, 1, 0);
\r
221 cdDrawLine(x1, y1, x2, y2, a2, a3);
\r
236 rad = atan((double)(y3 - y2) / (double)(x3 - x2));
\r
237 if(x2 < x3){ v = 1; } else{ v = -1; }
\r
238 tx1 = x3 - kMage * cos(rad) * v;
\r
239 ty1 = y3 - kMage * sin(rad) * v;
\r
241 cdDrawCurve(x1, y1, x2, y2, tx1, ty1, a2, 1);
\r
242 cdDrawCurve(tx1, ty1, x3, y3, x3 - kMage * 2, y3 - kMage * 0.5, 1, 0);
\r
247 tx2 = tx1 + kMage * 0.5;
\r
248 ty2 = y3 - kMage * 2;
\r
249 cdDrawCurve(x1, y1, x2, y2, x3, y3, a2, 1);
\r
250 cdDrawCurve(x3, y3, tx1, ty1, tx2, ty2, 1, 0);
\r
253 cdDrawCurve(x1, y1, x2, y2, x3, y3, a2, a3);
\r
259 if(y1 < y2){ v = 1; } else{ v = -1; }
\r
261 ty1 = y2 - kMage * v;
\r
264 if(x1 < x2){ v = 1; } else{ v = -1; }
\r
265 tx1 = x2 - kMage * v;
\r
269 rad = atan((double)(y2 - y1) / (double)(x2 - x1));
\r
270 if(x1 < x2){ v = 1; } else{ v = -1; }
\r
271 tx1 = x2 - kMage * cos(rad) * v;
\r
272 ty1 = y2 - kMage * sin(rad) * v;
\r
275 if(y2 < y3){ v = 1; } else{ v = -1; }
\r
277 ty2 = y2 + kMage * v;
\r
280 if(x2 < x3){ v = 1; } else{ v = -1; }
\r
281 tx2 = x2 + kMage * v;
\r
285 rad = atan((double)(y3 - y2) / (double)(x3 - x2));
\r
286 if(x2 < x3){ v = 1; } else{ v = -1; }
\r
287 tx2 = x2 + kMage * cos(rad) * v;
\r
288 ty2 = y2 + kMage * sin(rad) * v;
\r
292 tx4 = x3 + kMage * 0.5;
\r
293 ty4 = y3 - kMage * 2;
\r
295 cdDrawLine(x1, y1, tx1, ty1, a2, 1);
\r
296 cdDrawCurve(tx1, ty1, x2, y2, tx2, ty2, 1, 1);
\r
297 cdDrawLine(tx2, ty2, tx3, ty3, 1, 1);
\r
298 cdDrawCurve(tx3, ty3, x3, y3, tx4, ty4, 1, 0);
\r
302 if(y1 < y2){ v = 1; } else{ v = -1; }
\r
304 ty1 = y2 - kMage * v;
\r
307 if(x1 < x2){ v = 1; } else{ v = -1; }
\r
308 tx1 = x2 - kMage * v;
\r
312 rad = atan((double)(y2 - y1) / (double)(x2 - x1));
\r
313 if(x1 < x2){ v = 1; } else{ v = -1; }
\r
314 tx1 = x2 - kMage * cos(rad) * v;
\r
315 ty1 = y2 - kMage * sin(rad) * v;
\r
318 if(y2 < y3){ v = 1; } else{ v = -1; }
\r
320 ty2 = y2 + kMage * v;
\r
323 if(x2 < x3){ v = 1; } else{ v = -1; }
\r
324 tx2 = x2 + kMage * v;
\r
328 rad = atan((double)(y3 - y2) / (double)(x3 - x2));
\r
329 if(x2 < x3){ v = 1; } else{ v = -1; }
\r
330 tx2 = x2 + kMage * cos(rad) * v;
\r
331 ty2 = y2 + kMage * sin(rad) * v;
\r
334 cdDrawLine(x1, y1, tx1, ty1, a2, 1);
\r
335 cdDrawCurve(tx1, ty1, x2, y2, tx2, ty2, 1, 1);
\r
336 cdDrawLine(tx2, ty2, x3, y3, 1, a3);
\r
343 tx2 = x4 + kMage * 0.5;
\r
344 ty2 = y4 - kMage * 2;
\r
346 cdDrawCurve(x1, y1, x2, y2, (x2 + x3) / 2, (y2 + y3) / 2, a2, 1);
\r
347 cdDrawCurve((x2 + x3) / 2, (y2 + y3) / 2, x3, y3, tx1, ty1, 1, 1);
\r
349 cdDrawBezier(x1, y1, x2, y2, x3, y3, tx1, ty1, a2, 1);
\r
350 cdDrawCurve(tx1, ty1, x4, y4, tx2, ty2, 1, 0);
\r
354 cdDrawCurve(x1, y1, x2, y2, (x2 + x3) / 2, (y2 + y3) / 2, a2, 1);
\r
355 cdDrawCurve((x2 + x3) / 2, (y2 + y3) / 2, x3, y3, x4, y4, 1, a3);
\r
357 cdDrawBezier(x1, y1, x2, y2, x3, y3, x4, y4, a2, a3);
\r
361 cdDrawLine(x1, y1, x2, y2, a2, 1);
\r
362 cdDrawCurve(x2, y2, x3, y3, x4, y4, 1, a3);
\r
364 case 9: // may not be exist
\r