Goiaba is a project mainly written in Common Lisp, it's free.
Goiaba, a software to process contour
Para rodar o goiaba é necessário instalar o sbcl [1], as bibliotecas arnesi [2] e alien [3], o emacs [4] e o slime cvs [5].
É preciso configurar o ~/.emacs com as linhas
(add-to-list 'load-path "path-to-slime") (setq inferior-lisp-program "path-to/usr/bin/sbcl") (setenv "SBCL_HOME" "path-to/usr/lib/sbcl")
(require 'slime) (slime-setup '(slime-fancy slime-asdf slime-banner)) (add-to-list 'auto-mode-alist '(".lisp$" . lisp-mode)) (setq slime-startup-animation nil) (setq slime-complete-symbol-function 'slime-fuzzy-complete-symbol)
É preciso configurar o ~/.sbclrc com as linhas
(require 'asdf) (push "path-to-alien" asdf:central-registry) (push "path-to-arnesi" asdf:central-registry) (push "path-to-goiaba" asdf:central-registry)
Footnotes
[1] http://www.sbcl.org/ [2] http://common-lisp.net/project/bese/arnesi.html [3] http://github.com/kroger/alien [4] http://www.gnu.org/software/emacs/ [5] http://common-lisp.net/project/slime/
Para rodar o goiaba é preciso abrir o emacs, fazer M-x slime Então, no prompt do sbcl no slime, fazer (require :goiaba) (in-package :goiaba)
Para plotar um contorno usando as funções em plot.lisp crie um arquivo lisp separado (e.g. foo.lisp) com o seguinte conteudo:
(defparameter dir "/tmp/")
(plot-contorno '((0 1) (3 4) (2 8)) "Contorno 1" "resultado")
(ver "resultado")
(preview "t0" "t1" "t2" "t3" "t4" "t5" "t6")
(preview-all '((1 1) (2 4) (5 3) (7 5)) '(transpor-contorno 1 retrogradar-contorno nil inverter-contorno 0 aumentar-altura 2 aumentar-duracao 2 rotar-contorno 2))
(preview-all-short '((1 1) (2 4) (5 3) (7 5)) 1 nil 0 2 2 2)