天天看點

嘗試一下GNU Guile

參考Guile的Tutoria來建立一個帶腳本支援的繪圖程式:

http://www.gnu.org/software/guile/docs/guile-tut/tutorial.html

1.使用MacPorts安裝guile和gnuplot

  sudo port install guile gnuplot

2. 以管道的方式來操作gnuplot,注意需要在start_gnuplot函數添加如下的設定:

   fprintf (output, "set term x11/n");

   這是因為我們一會要使用X11來檢視結果。

3. 檢查一下Makefile

CDEBUG = -g -Wall

CFLAGS = $(CDEBUG) `guile-config compile`

LDFLAGS = `guile-config link`

SRCS = tortoise.c

OBJS = tortoise.o

tortoise: $(OBJS)

$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)

clean:

rm tortoise *.o

4.建立一個如下的腳本 snowflake.scm

(define (koch-line length depth)

  (if (zero? depth)

    (tortoise-move length)

    (let ((sub-length (/ length 3))

          (sub-depth (1- depth)))

      (for-each (lambda (angle)

                  (koch-line sub-length sub-depth)

                  (tortoise-turn angle))

                '(60 -120 60 0)))))

(define (snowflake length depth sign)

  (let iterate ((i 1))

    (if (<= i 3)

      (begin

        (koch-line length depth)

        (tortoise-turn (* sign -120))

        (iterate (1+ i))))))

(tortoise-pendown)

(snowflake 8 3 1)

(tortoise-turn 180)

(snowflake 8 3 -1)

5. 執行X11,并執行./tortoise -s snowflake.scm

嘗試一下GNU Guile
上一篇: 工具