现在的位置: 首页 > 综合 > 正文

尝试一下GNU Guile

2012年11月25日 ⁄ 综合 ⁄ 共 964字 ⁄ 字号 评论关闭

 

参考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

 

 

抱歉!评论已关闭.