(use graphics.gd) (use util.list) (use srfi-1) (define (file->data p x path) (let1 ls (call-with-input-file path (^p (port-map identity (^ _ (read p))))) (let1 ls (map (^e (x->integer (floor (+ p (* e x))))) ls) (let1 ls (slices ls 2) (map (^ (e1 e2) (append e1 e2)) ls (cdr ls)))))) (define (data->img w h data) (let1 im (gd-image-create-true-color w h) (gd-image-fill im 0 0 (gd-true-color 255 255 255)) (for-each (^e (line! im (first e) (second e) (third e) (fourth e) (gd-true-color 0 0 0))) data) im)) (define d (file->data 150 400 "/cygdrive/c/tmp/d14.dat")) (define c (file->data 250 70 "/cygdrive/c/tmp/c14.dat")) (define k (file->data 80 600 "/cygdrive/c/tmp/k5.dat")) (save-as (data->img 800 450 d) "/cygdrive/c/tmp/dragon.png") (save-as (data->img 500 800 c) "/cygdrive/c/tmp/c.png") (save-as (data->img 750 300 k) "/cygdrive/c/tmp/k.png")
2011/03/20
Gauche-gd: 再帰曲線(フラクタル)
といっても「もうひとつの Scheme 入門」の手続き群から出力されたデータを適当に加工して使用しました。つまりデータを基に線を引いただけだったりします。
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿