- 论坛徽章:
- 0
|
终于把那个邪恶的 wave 画出来了。我可是拿尺子按书上的图一个点一个点量的,苦。
- (define (list->segment xs)
- (define (f r x xs)
- (if (null? xs) r
- (f (cons (make-segment x (car xs)) r) (car xs) (cdr xs))))
- (f '() (car xs) (cdr xs)))
复制代码
- (define wave
- (let ((v1 (list (make-vect 0 26)
- (make-vect 6 17)
- (make-vect 12 25)
- (make-vect 14 21)
- (make-vect 10 0)))
- (v2 (list (make-vect 16 0)
- (make-vect 21 13)
- (make-vect 25 0)))
- (v3 (list (make-vect 31 0)
- (make-vect 25 19)
- (make-vect 41 6)))
- (v4 (list (make-vect 41 15)
- (make-vect 31 27)
- (make-vect 25 27)
- (make-vect 27 35)
- (make-vect 25 41)))
- (v5 (list (make-vect 16 41)
- (make-vect 14 35)
- (make-vect 16 27)
- (make-vect 12 27)
- (make-vect 6 25)
- (make-vect 0 35))))
- (let ((segments (map (lambda (z) (list->segment
- (map (lambda (x) (map (lambda (y) (/ y 41.0)) x)) z)))
- (list v1 v2 v3 v4 v5))))
- (segments->painter (foldr append '() segments)))))
复制代码
wave:
flip, beside:
squash:
[ 本帖最后由 win_hate 于 2008-10-6 21:19 编辑 ] |
|