Skip to content

mdsmus/goiaba

Repository files navigation

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:

* define o diretório onde os arquivos de plotagem vao ser gerados (formato .eps)

(defparameter *dir* "/tmp/")

* plota um contorno. o formato é (plot-contorno contorno titulo <nome do arquivo final>)

(plot-contorno '((0 1) (3 4) (2 8)) "Contorno 1" "resultado")

* mostra o arquivo final no gv. o arquivo gerado terá extensão .eps,
  mas você não precisa/deve colocar a extensão no nome do arquivo para
  as funções plot-contorno e ver.

(ver "resultado")

* a função preview gera um arquivo .ps com todos os contornos

(preview "t0" "t1" "t2" "t3" "t4" "t5" "t6")

* a função preview-all aplica uma lista de funções e parâmetros a um
  contorno. observe que a lista de funções deve ser no formato
  (funcao1 parametros1 funcao2 parametros2 ... funcaon parametrosn) de
  modo que se uma função não aceita argumentos voce deve colocar nil:

(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))

* A função preview-all-short é uma função de conviniencia. Ela usa a
  função preview para aplicar as funções transpor-contorno,
  retrogradar-contorno, inverter-contorno, aumentar-altura,
  aumentar-duracao, e rotar-contorno NESSA ORDEM. Ela aceita como
  parâmetros o contorno e um argumento para cada uma das funçoes
  listadas:

(preview-all-short '((1 1) (2 4) (5 3) (7 5)) 1 nil 0 2 2 2)

About

Goiaba, a software to process contour

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published