[wadalabfont-kit] / primdata / prim-test.l  

Annotation of /primdata/prim-test.l

Parent Directory | Revision Log

Revision: 1.1 - (view) (download)

1 : ktanaka 1.1 (setq mu '(((91 49)
2 :     (138 62)
3 :     (138 75)
4 :     (135 248)
5 :     (113 272)
6 :     (67 275)
7 :     (56 235)
8 :     (113 178)
9 :     (138 234)
10 :     (135 327)
11 :     (333 316)
12 :     (327 282)
13 :     (321 230)
14 :     (25 122)
15 :     (81 140)
16 :     (210 123)
17 :     (229 123)
18 :     (280 80)
19 :     (314 103)
20 :     (337 140)
21 :     (342 149))
22 :     ((hira-long
23 :     (0 1 2 3 4 5 6 7 8 9 10 11 12)
24 :     (hirawidth 3 23 17 18 16 18 12 8 18 23 23 8 3))
25 :     (hira-long (13 14 15 16) (hirawidth 5 19 25 14))
26 :     (hira-long (17 18 19 20) (hirawidth 5 13 18 12)))))
27 :     (macro diff (x) `(difference .,x))
28 :     (defelement mincho hira-long
29 :     (lets ((npoints (length points))
30 :     (array (vector (* npoints npoints) 0.0))
31 :     (ti
32 :     (vector (1- npoints)
33 :     (do ((l points (cdr l))
34 :     (ret))
35 :     ((atom (cdr l))(nreverse ret))
36 :     (push (exp (times 0.6666
37 :     (log (metric2 (car l)(cadr l))))) ret))))
38 :     (titi (vector (1- npoints)))
39 :     (pi
40 :     (vector npoints
41 :     (do ((l points (cdr l))
42 :     (ret))
43 :     ((atom l)(nreverse ret))
44 :     (push (car l) ret))))
45 :     (bix (vector (1- (* npoints 2))))(biy (vector (1- (* npoints 2))))
46 :     (dpi (vector (1- (* npoints 2))))
47 :     (ddpi (vector (1- (* npoints 2))))
48 :     (dpir (vector (1- (* npoints 2))))
49 :     (ddpir (vector (1- (* npoints 2))))
50 :     (dpix (vector (1- (* npoints 2))))(dpiy (vector (1- (* npoints 2))))
51 :     (bi (vector (1- (* npoints 2))))
52 :     (hwlist (assq 'hirawidth alist))
53 :     (wi (cond (hwlist
54 :     (vector npoints
55 :     (do ((l (cdr hwlist)(cdr l))
56 :     (ret))
57 :     ((atom l)(nreverse ret))
58 :     (push (times (car l) hirawidth) ret))))
59 :     (t
60 :     (vector npoints *default-hirawidth*))))
61 :     (bwi (vector (1- (* npoints 2))))
62 :     (dwi (vector (1- (* npoints 2))))
63 :     (dxi1 (vector (1- (* npoints 2))))
64 :     (dxi2 (vector (1- (* npoints 2))))
65 :     (dlen (vector (1- (* npoints 2))))
66 :     (dlen2 (vector (1- (* npoints 2))))
67 :     (s0)(s00)(s01)(s1)(s10)(s11)
68 :     )
69 :     (do ((i 0 (1+ i)))((>= i (1- npoints)))
70 :     (vset titi i (times (vref ti i)(vref ti i))))
71 :     (vset array 0 (quotient 2.0 (vref ti 0)))
72 :     (vset array 1 (quotient 1.0 (vref ti 0)))
73 :     (vset bi 0 (times2 (quotient 3.0 (vref titi 0))
74 :     (diff2 (vref pi 1)(vref pi 0))))
75 :     (vset bwi 0 (times (quotient 3.0 (vref titi 0))
76 :     (difference (vref wi 1)(vref wi 0))))
77 :     (do ((i 0 (1+ i))
78 :     (j npoints (+ j npoints)))
79 :     ((>= i (- npoints 2)))
80 :     (vset array (+ j i) (quotient 1.0 (vref ti i)))
81 :     (vset array (+ j i 1)(plus (quotient 2.0 (vref ti i))
82 :     (quotient 2.0 (vref ti (1+ i)))))
83 :     (vset array (+ j i 2) (quotient 1.0 (vref ti (1+ i))))
84 :     (vset bi (1+ i )
85 :     (plus2
86 :     (times2 (quotient -3.0 (vref titi i))(vref pi i))
87 :     (times2 (difference (quotient 3.0 (vref titi i))
88 :     (quotient 3.0 (vref titi (1+ i))))(vref pi (1+ i)))
89 :     (times2 (quotient 3.0 (vref titi (1+ i)))(vref pi (+ i 2)))))
90 :     (vset bwi (1+ i)
91 :     (plus (times (quotient -3.0 (vref titi i))(vref wi i))
92 :     (times (difference (quotient 3.0 (vref titi i))
93 :     (quotient 3.0 (vref titi (1+ i))))
94 :     (vref wi (1+ i)))
95 :     (times (quotient 3.0 (vref titi (1+ i)))
96 :     (vref wi (+ i 2))))))
97 :     (vset array (- (* npoints npoints) 2)
98 :     (quotient 1.0 (vref ti (- npoints 2))))
99 :     (vset array (1- (* npoints npoints))
100 :     (quotient 2.0 (vref ti (- npoints 2))))
101 :     (vset bi (1- npoints)
102 :     (times2 (quotient 3.0 (vref titi (- npoints 2)))
103 :     (diff2 (vref pi (1- npoints))(vref pi (- npoints 2)))))
104 :     (vset bwi (1- npoints)
105 :     (times (quotient 3.0 (vref titi (- npoints 2)))
106 :     (difference (vref wi (1- npoints))(vref wi (- npoints 2)))))
107 :     (do ((i 0 (1+ i)))((>= i npoints))
108 :     (vset bix i (car (vref bi i)))
109 :     (vset biy i (cadr (vref bi i)))
110 :     (vset dpix i 0.0)
111 :     (vset dpiy i 0.0)
112 :     (vset dwi i 0.0)
113 :     )
114 :     (gs npoints array dpix bix)
115 :     (gs npoints array dpiy biy)
116 :     (gs npoints array dwi bwi)
117 :     (do ((i 0 (1+ i)))((>= i npoints))
118 :     (vset dpi i `(,(vref dpix i) ,(vref dpiy i))))
119 :     (do ((i 0 (1+ i)))((>= i npoints))
120 :     (vset dwi i (times 0.2 (vref dwi i))))
121 :     ; (print dwi)
122 :     ; (vset ddpi 0 '(0.0 0.0))
123 :    
124 :     (do ((i 0 (1+ i)))
125 :     ((>= i (1- npoints)))
126 :     (setq len (metric2 (vref pi i)(vref pi (1+ i))))
127 :     (setq n (fix (quotient (plus len 10) 20)))
128 :     (setq p1 (vref pi i) dp1 (vref dpi i) w1 (vref wi i) dw1 (vref dwi i))
129 :     (setq p2 (vref pi (1+ i)) dp2 (vref dpi (1+ i))
130 :     w2 (vref wi (1+ i)) dw2 (vref dwi (1+ i)))
131 :     (setq t1 (vref ti i))
132 :     (setq t2 (times t1 t1) t3 (times t1 t1 t1))
133 :     (do ((j 0 (1+ j)))
134 :     ((> j n))
135 :     (setq tt (times j (quotient (vref ti i) n)))
136 :     (setq tt1 tt)
137 :     (setq tt2 (times tt tt) tt3 (times tt tt tt))
138 :     (setq p
139 :     (plus2
140 :     (times2 (quotient (times 2 tt3) t3)
141 :     (diff2 p1 p2))
142 :     (times2 (quotient tt3 t2)
143 :     (plus2 dp1 dp2))
144 :     (times2 (quotient (times 3 tt2) t2)
145 :     (diff2 p2 p1))
146 :     (times2 (times -1.0 (quotient tt2 t1))
147 :     (plus2 dp1 dp1 dp2))
148 :     (times2 tt1 dp1)
149 :     p1))
150 :     (setq dp
151 :     (plus2
152 :     (times2 (quotient (times 6 tt2) t3)
153 :     (diff2 p1 p2))
154 :     (times2 (quotient (times 3 tt2) t2)
155 :     (plus2 dp1 dp2))
156 :     (times2 (quotient (times 6 tt1) t2)
157 :     (diff2 p2 p1))
158 :     (times2 (times -2.0 (quotient tt1 t1))
159 :     (plus2 dp1 dp1 dp2))
160 :     dp1))
161 :     (setq w
162 :     (plus
163 :     (times (quotient (times 2 tt3) t3)
164 :     (diff w1 w2))
165 :     (times (quotient tt3 t2)
166 :     (plus dw1 dw2))
167 :     (times (quotient (times 3 tt2) t2)
168 :     (diff w2 w1))
169 :     (times (times -1.0 (quotient tt2 t1))
170 :     (plus dw1 dw1 dw2))
171 :     (times tt1 dw1)
172 :     w1))
173 :     (setq dw
174 :     (plus
175 :     (times (quotient (times 6 tt2) t3)
176 :     (diff w1 w2))
177 :     (times (quotient (times 3 tt2) t2)
178 :     (plus dw1 dw2))
179 :     (times (quotient (times 6 tt1) t2)
180 :     (diff w1 w2))
181 :     (times (times -2.0 (quotient tt1 t1))
182 :     (plus dw1 dw1 dw2))
183 :     dw1))
184 :     (format "/c /c /c /c daen/n" (fix (car p))(- 400 (fix (cadr p)))
185 :     (fix (times 360 (quotient (theta dp '(1.0 0.0)) 6.2832))) (fix w))))
186 :     (setq p (vref pi (1- npoints)) dp (vref dpi (1- npoints))
187 :     w (vref wi (1- npoints)))
188 :     (format "/c /c /c /c daen/n" (fix (car p))(- 400 (fix (cadr p)))
189 :     (fix (times 360 (quotient (theta dp '(1.0 0.0)) 6.2832))) (fix w))
190 :    
191 :     (vset ddpi (1- npoints) '(0.0 0.0))
192 :     (do ((i 0 (1+ i)))
193 :     ((>= i (1- npoints)))
194 :     (vset ddpi i
195 :     (plus2
196 :     (times2
197 :     (quotient 6.0 (vref titi i))
198 :     (diff2 (vref pi (1+ i))(vref pi i)))
199 :     (times2
200 :     (quotient -4.0 (vref ti i))
201 :     (vref dpi i))
202 :     (times2
203 :     (quotient -2.0 (vref ti i))
204 :     (vref dpi (1+ i)))
205 :     )))
206 :     (do ((i 0 (1+ i))(tmp))((>= i npoints))
207 :     (vset dlen i (setq tmp (quotient 1.0 (length2 (vref dpi i)))))
208 :     (vset dlen2 i (times tmp tmp)))
209 :     (do ((i 0 (1+ i))(x)(y))((>= i npoints))
210 :     (setq x (times (vref dlen i)(car (vref dpi i)))
211 :     y (times (vref dlen i)(cadr (vref dpi i))))
212 :     (vset dpir i
213 :     (vector 6 `(,x ,y ,y ,(minus x) 0 0)))
214 :     (setq x (times (vref dlen i)(car (vref ddpi i)))
215 :     y (times (vref dlen i)(cadr (vref ddpi i))))
216 :     (vset ddpir i
217 :     (vector 6 `(,x ,y ,y ,(minus x) 0 0))))
218 :     ; (break)
219 :     (do ((i 0 (1+ i)))((>= i npoints))
220 :     (vset dxi1 i
221 :     (plus2 (vref dpi i)
222 :     (affine `(0 ,(minus (vref dwi i)))(vref dpir i))
223 :     (affine `(0 ,(minus (vref wi i)))(vref ddpir i))
224 :     (times2 (times -1.0 (mul2 (vref dpi i)(vref ddpi i))
225 :     (vref dlen2 i))
226 :     (affine `(0 ,(minus (vref wi i)))(vref dpir i)))
227 :     ))
228 :     (vset dxi2 i
229 :     (plus2 (vref dpi i)
230 :     (affine `(0 ,(vref dwi i))
231 :     (vref dpir i))
232 :     (affine `(0 ,(vref wi i))(vref ddpir i))
233 :     (times2 (times -1.0 (mul2 (vref dpi i)(vref ddpi i))
234 :     (vref dlen2 i))
235 :     (affine `(0 ,(vref wi i))
236 :     (vref dpir i)))
237 :     )
238 :     ))
239 :     ; (break)
240 :     (setq d0 (normlen2 (times -0.8 (vref wi 0))(vref dpi 0)))
241 :     (setq l0 (length2 d0))
242 :     (setq l0 (times l0 l0))
243 :     (setq s0 (plus2 (vref pi 0) d0))
244 :     (cond
245 :     ((plusp (vref wi 0))
246 :     (setq p00 (plus2 (vref pi 0)
247 :     (affine `(0 ,(minus (vref wi 0)))(vref dpir 0))))
248 :     (setq p01 (plus2 (vref pi 0)(affine `(0 ,(vref wi 0))(vref dpir 0))))
249 :     (setq s00 (plus2 p00 (times2 (quotient l0
250 :     (mul2 (vref dxi1 0) d0))
251 :     (vref dxi1 0))))
252 :     (setq s01 (plus2 p01 (times2 (quotient l0
253 :     (mul2 (vref dxi2 0)d0))
254 :     (vref dxi2 0))))))
255 :     (setq d1 (normlen2 (times 0.8 (vref wi (1- npoints)))
256 :     (vref dpi (1- npoints))))
257 :     (setq l1 (length2 d1))
258 :     (setq l1 (times l1 l1))
259 :     (setq s1 (plus2 (vref pi (1- npoints)) d1))
260 :     (cond
261 :     ((plusp (vref wi (1- npoints)))
262 :     (setq p10 (plus2 (vref pi (1- npoints))
263 :     (affine `(0 ,(minus (vref wi (1- npoints))))
264 :     (vref dpir (1- npoints)))))
265 :     (setq p11 (plus2 (vref pi (1- npoints))
266 :     (affine `(0 ,(vref wi (1- npoints)))
267 :     (vref dpir (1- npoints)))))
268 :     (setq s10 (plus2 p10 (times2 (quotient l1
269 :     (mul2 (vref dxi1 (1- npoints))
270 :     d1))
271 :     (vref dxi1 (1- npoints)))))
272 :     (setq s11 (plus2 p11 (times2 (quotient l1
273 :     (mul2 (vref dxi2 (1- npoints))
274 :     d1))
275 :     (vref dxi2 (1- npoints)))))))
276 :     (setq test 'bezier)
277 :     (do ((i 0 (1+ i))
278 :     (ret1 (and (plusp (vref wi 0))
279 :     `((,test .,(inter2 p00 s00 circle-ratio))
280 :     (,test .,(inter2 s0 s00 circle-ratio))
281 :     (angle .,s0))))
282 :     (ret2 (and (plusp (vref wi 0))
283 :     `((,test .,(inter2 p01 s01 circle-ratio))
284 :     (,test .,(inter2 s0 s01 circle-ratio))
285 :     (angle .,s0))))
286 :     (p0)(p1))
287 :     ((>= i (1- npoints))
288 :     (cond ((plusp (vref wi (1- npoints)))
289 :     (push `(angle .,p10) ret1)
290 :     (push `(,test .,(inter2 p10 s10 circle-ratio)) ret1)
291 :     (push `(,test .,(inter2 s1 s10 circle-ratio)) ret1)))
292 :     (push `(angle .,s1) ret1)
293 :     (cond ((plusp (vref wi (1- npoints)))
294 :     (push `(angle .,p11) ret2)
295 :     (push `(,test .,(inter2 p11 s11 circle-ratio)) ret2)
296 :     (push `(,test .,(inter2 s1 s11 circle-ratio)) ret2)))
297 :     (push `(angle .,s1) ret2)
298 :     `(,(reverse ret1) ,(reverse ret2)))
299 :     (setq p1 (plus2 (vref pi i)(affine `(0 ,(vref wi i))(vref dpir i))))
300 :     (setq p2 (plus2 (vref pi (1+ i))
301 :     (affine `(0 ,(vref wi (1+ i)))(vref dpir (1+ i)))))
302 :     (push `(angle .,p1) ret2)
303 :     (push `(,test .,(plus2 p1
304 :     (times2 (quotient (vref ti i) 3.0)
305 :     (vref dxi2 i)))) ret2)
306 :     (push `(,test .,(diff2 p2
307 :     (times2 (quotient (vref ti i) 3.0)
308 :     (vref dxi2 (1+ i))))) ret2)
309 :     (setq p1 (plus2 (vref pi i)(affine `(0 ,(minus (vref wi i)))
310 :     (vref dpir i))))
311 :     (setq p2 (plus2 (vref pi (1+ i))
312 :     (affine `(0 ,(minus (vref wi (1+ i))))
313 :     (vref dpir (1+ i)))))
314 :     (push `(angle .,p1) ret1)
315 :     (push `(,test .,(plus2 p1
316 :     (times2 (quotient (vref ti i) 3.0)
317 :     (vref dxi1 i)))) ret1)
318 :     (push `(,test .,(diff2 p2
319 :     (times2 (quotient (vref ti i) 3.0)
320 :     (vref dxi1 (1+ i))))) ret1))))

ktanaka

Powered by ViewCVS 1.0-dev

ViewCVS and CVS Help