`
webcode
  • 浏览: 5940770 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

尝试一下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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics