1 : |
ktanaka |
1.1 |
(defun hrev (prim) |
2 : |
|
|
(do ((l (car prim)(cdr l))(newpoints)) |
3 : |
|
|
((atom l) |
4 : |
|
|
(do ((ll (cadr prim)(cdr ll))(newelements)) |
5 : |
|
|
((atom ll) |
6 : |
|
|
`(,(nreverse newpoints),(nreverse newelements) .,(cddr prim))) |
7 : |
|
|
(cond ((eq 'outline (caar ll)) |
8 : |
|
|
(lets ((points (cadar ll)) |
9 : |
|
|
(len (length points)) |
10 : |
|
|
(curve (assq 'curve (cddar ll))) |
11 : |
|
|
(curve (cond (curve (cdr curve))))) |
12 : |
|
|
(push `(outline ,(reverse points) |
13 : |
|
|
(curve .,(reverse (mapcar curve |
14 : |
|
|
#'(lambda (x) (- len 1 x)))))) |
15 : |
|
|
newelements))) |
16 : |
|
|
(t (push (car ll) newelements))))) |
17 : |
|
|
(push `(,(difference 400 (caar l)).,(cdar l)) newpoints))) |
18 : |
|
|
(defun vrev (prim) |
19 : |
|
|
(do ((l (car prim)(cdr l))(newpoints)) |
20 : |
|
|
((atom l) |
21 : |
|
|
(do ((ll (cadr prim)(cdr ll))(newelements)) |
22 : |
|
|
((atom ll) |
23 : |
|
|
`(,(nreverse newpoints),(nreverse newelements) .,(cddr prim))) |
24 : |
|
|
(cond ((eq 'outline (caar ll)) |
25 : |
|
|
(lets ((points (cadar ll)) |
26 : |
|
|
(len (length points)) |
27 : |
|
|
(curve (assq 'curve (cddar ll))) |
28 : |
|
|
(curve (cond (curve (cdr curve))))) |
29 : |
|
|
(push `(outline ,(reverse points) |
30 : |
|
|
(curve .,(reverse (mapcar curve |
31 : |
|
|
#'(lambda (x) (- len 1 x)))))) |
32 : |
|
|
newelements))) |
33 : |
|
|
(t (push (car ll) newelements))))) |
34 : |
|
|
(push `(,(caar l) ,(difference 400 (cadar l)).,(cddar l)) newpoints))) |