6 void dfDrawFont(int a1, int a2, int a3,
\r
11 int tx1, tx2, tx3, tx4, ty1, ty2, ty3, ty4, v;
\r
14 if(kShotai == kMincho){
\r
21 if(y1 < y2){ v = 1; } else{ v = -1; }
\r
23 ty1 = y2 - kMage * v;
\r
26 if(x1 < x2){ v = 1; } else{ v = -1; }
\r
27 tx1 = x2 - kMage * v;
\r
31 rad = atan((double)(y2 - y1) / (double)(x2 - x1));
\r
32 if(x1 < x2){ v = 1; } else{v = -1; }
\r
33 tx1 = x2 - kMage * cos(rad) * v;
\r
34 ty1 = y2 - kMage * sin(rad) * v;
\r
36 cdDrawLine(x1, y1, tx1, ty1, a2, 1);
\r
37 cdDrawCurve(tx1, ty1, x2, y2, x2 - kMage, y2, 1, 14);
\r
40 cdDrawLine(x1, y1, x2, y2, a2, a3);
\r
55 rad = atan((double)(y3 - y2) / (double)(x3 - x2));
\r
56 if(x2 < x3){ v = 1; } else{ v = -1; }
\r
57 tx1 = x3 - kMage * cos(rad) * v;
\r
58 ty1 = y3 - kMage * sin(rad) * v;
\r
60 cdDrawCurve(x1, y1, x2, y2, tx1, ty1, a2, 1);
\r
61 cdDrawCurve(tx1, ty1, x3, y3, x3 - kMage, y3, 1, 14);
\r
64 cdDrawCurve(x1, y1, x2, y2, x3, y3, a2, 15);
\r
67 cdDrawCurve(x1, y1, x2, y2, x3, y3, a2, a3);
\r
73 if(y1 < y2){ v = 1; } else{ v = -1; }
\r
75 ty1 = y2 - kMage * v;
\r
78 if(x1 < x2){ v = 1; } else{ v = -1; }
\r
79 tx1 = x2 - kMage * v;
\r
83 rad = atan((double)(y2 - y1) / (double)(x2 - x1));
\r
84 if(x1 < x2){ v = 1; } else{ v = -1; }
\r
85 tx1 = x2 - kMage * cos(rad) * v;
\r
86 ty1 = y2 - kMage * sin(rad) * v;
\r
89 if(y2 < y3){ v = 1; } else{ v = -1; }
\r
91 ty2 = y2 + kMage * v;
\r
94 if(x2 < x3){ v = 1; } else { v = -1; }
\r
95 tx2 = x2 + kMage * v;
\r
99 rad = atan((double)(y3 - y2) / (double)(x3 - x2));
\r
100 if(x2 < x3){ v = 1; } else{ v = -1; }
\r
101 tx2 = x2 + kMage * cos(rad) * v;
\r
102 ty2 = y2 + kMage * sin(rad) * v;
\r
106 tx4 = x3 + kMage * 0.5;
\r
107 ty4 = y3 - kMage * 2;
\r
109 cdDrawLine(x1, y1, tx1, ty1, a2, 1);
\r
110 cdDrawCurve(tx1, ty1, x2, y2, tx2, ty2, 1, 1);
\r
111 cdDrawLine(tx2, ty2, tx3, ty3, 6, 5); // bolder by force
\r
115 if(y1 < y2){ v = 1; } else { v = -1; }
\r
117 ty1 = y2 - kMage * v;
\r
120 if(x1 < x2){ v = 1; } else{ v = -1; }
\r
121 tx1 = x2 - kMage * v;
\r
125 rad = atan((double)(y2 - y1) / (double)(x2 - x1));
\r
126 if(x1 < x2){ v = 1; } else{ v = -1; }
\r
127 tx1 = x2 - kMage * cos(rad) * v;
\r
128 ty1 = y2 - kMage * sin(rad) * v;
\r
131 if(y2 < y3){ v = 1; } else{ v = -1; }
\r
133 ty2 = y2 + kMage * v;
\r
136 if(x2 < x3){ v = 1; } else{ v = -1; }
\r
137 tx2 = x2 + kMage * v;
\r
141 rad = atan((double)(y3 - y2) / (double)(x3 - x2));
\r
142 if(x2 < x3){ v = 1; } else{ v = -1; }
\r
143 tx2 = x2 + kMage * cos(rad) * v;
\r
144 ty2 = y2 + kMage * sin(rad) * v;
\r
146 cdDrawLine(x1, y1, tx1, ty1, a2, 1);
\r
147 cdDrawCurve(tx1, ty1, x2, y2, tx2, ty2, 1, 1);
\r
148 cdDrawLine(tx2, ty2, x3, y3, 6, a3); // bolder by force
\r
153 /* only implimented for gothic
\r
156 tx2 = x4 + kMage * 0.5;
\r
157 ty2 = y4 - kMage * 2;
\r
159 cdDrawBezier(x1, y1, x2, y2, x3, y3, x4, y4, a2, 15);
\r
161 if(a2 == 7 || a3 == 7){
\r
162 cdDrawCurve(x1, y1, x2, y2, (x2 + x3) / 2, (y2 + y3) / 2, a2, 17);
\r
163 cdDrawCurve((x2 + x3) / 2, (y2 + y3) / 2, x3, y3, x4, y4, 17, 15);
\r
166 cdDrawCurve(x1, y1, x2, y2, (x2 + x3) / 2, (y2 + y3) / 2, a2, 8);
\r
167 cdDrawCurve((x2 + x3) / 2, (y2 + y3) / 2, x3, y3, x4, y4, 1, 15);
\r
172 cdDrawBezier(x1, y1, x2, y2, x3, y3, x4, y4, a2, a3);
\r
174 if(a2 == 7 || a3 == 7){
\r
175 cdDrawCurve(x1, y1, x2, y2, (x2 + x3) / 2, (y2 + y3) / 2, a2, 17);
\r
176 cdDrawCurve((x2 + x3) / 2, (y2 + y3) / 2, x3, y3, x4, y4, 17, a3);
\r
179 cdDrawCurve(x1, y1, x2, y2, (x2 + x3) / 2, (y2 + y3) / 2, a2, 8);
\r
180 cdDrawCurve((x2 + x3) / 2, (y2 + y3) / 2, x3, y3, x4, y4, 1, a3);
\r
186 cdDrawLine(x1, y1, x2, y2, a2, 1);
\r
187 cdDrawCurve(x2, y2, x3, y3, x4, y4, 1, 7);
\r
189 case 9: // may not be exist
\r
190 kageCanvas[y1][x1] = 0;
\r
191 kageCanvas[y2][x2] = 0;
\r
205 if(y1 < y2){ v = 1; } else{ v = -1; }
\r
207 ty1 = y2 - kMage * v;
\r
210 if(x1 < x2){ v = 1; } else{ v = -1; }
\r
211 tx1 = x2 - kMage * v;
\r
215 rad = atan((double)(y2 - y1) / (double)(x2 - x1));
\r
216 if(x1 < x2){ v = 1; } else{ v = -1; }
\r
217 tx1 = x2 - kMage * cos(rad) * v;
\r
218 ty1 = y2 - kMage * sin(rad) * v;
\r
220 cdDrawLine(x1, y1, tx1, ty1, a2, 1);
\r
221 cdDrawCurve(tx1, ty1, x2, y2, x2 - kMage * 2, y2 - kMage * 0.5, 1, 0);
\r
224 cdDrawLine(x1, y1, x2, y2, a2, a3);
\r
239 rad = atan((double)(y3 - y2) / (double)(x3 - x2));
\r
240 if(x2 < x3){ v = 1; } else{ v = -1; }
\r
241 tx1 = x3 - kMage * cos(rad) * v;
\r
242 ty1 = y3 - kMage * sin(rad) * v;
\r
244 cdDrawCurve(x1, y1, x2, y2, tx1, ty1, a2, 1);
\r
245 cdDrawCurve(tx1, ty1, x3, y3, x3 - kMage * 2, y3 - kMage * 0.5, 1, 0);
\r
250 tx2 = tx1 + kMage * 0.5;
\r
251 ty2 = y3 - kMage * 2;
\r
252 cdDrawCurve(x1, y1, x2, y2, x3, y3, a2, 1);
\r
253 cdDrawCurve(x3, y3, tx1, ty1, tx2, ty2, 1, 0);
\r
256 cdDrawCurve(x1, y1, x2, y2, x3, y3, a2, a3);
\r
262 if(y1 < y2){ v = 1; } else{ v = -1; }
\r
264 ty1 = y2 - kMage * v;
\r
267 if(x1 < x2){ v = 1; } else{ v = -1; }
\r
268 tx1 = x2 - kMage * v;
\r
272 rad = atan((double)(y2 - y1) / (double)(x2 - x1));
\r
273 if(x1 < x2){ v = 1; } else{ v = -1; }
\r
274 tx1 = x2 - kMage * cos(rad) * v;
\r
275 ty1 = y2 - kMage * sin(rad) * v;
\r
278 if(y2 < y3){ v = 1; } else{ v = -1; }
\r
280 ty2 = y2 + kMage * v;
\r
283 if(x2 < x3){ v = 1; } else{ v = -1; }
\r
284 tx2 = x2 + kMage * v;
\r
288 rad = atan((double)(y3 - y2) / (double)(x3 - x2));
\r
289 if(x2 < x3){ v = 1; } else{ v = -1; }
\r
290 tx2 = x2 + kMage * cos(rad) * v;
\r
291 ty2 = y2 + kMage * sin(rad) * v;
\r
295 tx4 = x3 + kMage * 0.5;
\r
296 ty4 = y3 - kMage * 2;
\r
298 cdDrawLine(x1, y1, tx1, ty1, a2, 1);
\r
299 cdDrawCurve(tx1, ty1, x2, y2, tx2, ty2, 1, 1);
\r
300 cdDrawLine(tx2, ty2, tx3, ty3, 1, 1);
\r
301 cdDrawCurve(tx3, ty3, x3, y3, tx4, ty4, 1, 0);
\r
305 if(y1 < y2){ v = 1; } else{ v = -1; }
\r
307 ty1 = y2 - kMage * v;
\r
310 if(x1 < x2){ v = 1; } else{ v = -1; }
\r
311 tx1 = x2 - kMage * v;
\r
315 rad = atan((double)(y2 - y1) / (double)(x2 - x1));
\r
316 if(x1 < x2){ v = 1; } else{ v = -1; }
\r
317 tx1 = x2 - kMage * cos(rad) * v;
\r
318 ty1 = y2 - kMage * sin(rad) * v;
\r
321 if(y2 < y3){ v = 1; } else{ v = -1; }
\r
323 ty2 = y2 + kMage * v;
\r
326 if(x2 < x3){ v = 1; } else{ v = -1; }
\r
327 tx2 = x2 + kMage * v;
\r
331 rad = atan((double)(y3 - y2) / (double)(x3 - x2));
\r
332 if(x2 < x3){ v = 1; } else{ v = -1; }
\r
333 tx2 = x2 + kMage * cos(rad) * v;
\r
334 ty2 = y2 + kMage * sin(rad) * v;
\r
337 cdDrawLine(x1, y1, tx1, ty1, a2, 1);
\r
338 cdDrawCurve(tx1, ty1, x2, y2, tx2, ty2, 1, 1);
\r
339 cdDrawLine(tx2, ty2, x3, y3, 1, a3);
\r
346 tx2 = x4 + kMage * 0.5;
\r
347 ty2 = y4 - kMage * 2;
\r
349 cdDrawCurve(x1, y1, x2, y2, (x2 + x3) / 2, (y2 + y3) / 2, a2, 1);
\r
350 cdDrawCurve((x2 + x3) / 2, (y2 + y3) / 2, x3, y3, tx1, ty1, 1, 1);
\r
352 cdDrawBezier(x1, y1, x2, y2, x3, y3, tx1, ty1, a2, 1);
\r
353 cdDrawCurve(tx1, ty1, x4, y4, tx2, ty2, 1, 0);
\r
357 cdDrawCurve(x1, y1, x2, y2, (x2 + x3) / 2, (y2 + y3) / 2, a2, 1);
\r
358 cdDrawCurve((x2 + x3) / 2, (y2 + y3) / 2, x3, y3, x4, y4, 1, a3);
\r
360 cdDrawBezier(x1, y1, x2, y2, x3, y3, x4, y4, a2, a3);
\r
364 cdDrawLine(x1, y1, x2, y2, a2, 1);
\r
365 cdDrawCurve(x2, y2, x3, y3, x4, y4, 1, a3);
\r
367 case 9: // may not be exist
\r
368 kageCanvas[y1][x1] = 0;
\r
369 kageCanvas[y2][x2] = 0;
\r