Goiaba, a software to process contour
Common Lisp
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
exemplos
lib
literatura
testes
.gitignore
Makefile
README
TODO
classes.lisp
contorno-duracao.lisp
contorno-simples.lisp
cores.lisp
funcoes-para-implementar
goiaba.asd
lily.lisp
old-plot.lisp
packages.lisp
plot.lisp
ponto.lisp
utils.lisp

README

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)