Você está na página 1de 182

Grcos e Figuras

Grcos e Figuras

Geovane Krger
geovanek@gmail.com Verso 11.0

A LT

AX 2 LE X2 T E

14 de Fevereiro de 2006

Prefcio

A A idia de escrever LTEX 2 - Grcos e Figuras, surgiu devido ao fato de que muitos pacotes que so utilizados para a construo de grcos e guras, no modo PDFLaTeX no so compilados, tendo assim,

que utilizar o modo LaTeX para gerar DVI depois DVIPS e por ltimo PS2PDF, e para manter o padro nas
A conguraes que estava usando no outro manual (LTEX 2 - Uma Introduo[?]), decidi escrever este manual

separado, alm do que, o outro manual estava cando muito grande o qual foi mais um dos motivos que me levou a partir em dois manuais.
A Estas notas destinam-se a usurios que j tenham uma certa experincia com LTEX, pois os comandos

utilizados na construo de guras, muitas vezes so, de um certo modo, complicados de se utilizar, por esse
A motivo se faz necessrio o conhecimento de como funciona o LTEX e ter experincia em interpretar os erros gerados no momento da compilao do arquivo, para conseguir assim, solucionar os erros gerados que so

freqentes quando se esta trabalhando na construo de guras.

Florianpolis, 20 de Maio de 2007

Geovane Krger

Observaes

Verso 11.0 novo captulo incluindo o uso do pacote pst-poly para a construo de polgonos.
Verso 10.0 possui um captulo sobre o pacote pst-gr3d, usado para criar grades 3D. Na Verso 9.0 foi adicionado o uso do pacote pst-light3d o qual serve para obter efeitos tridimensionais nos objetos. Verso 8.0. Est nova verso traz o uso do pacote pst-node para a criao de nodos. Este pacote muito til, principalmente para diagramas matemticos. Verso 7.0 contm o captulo sobre o pacote pst-blur usado para modicar o estilo das sombras. Verso 6.0 adicionado o uso do pacote pst-slpe que tambm faz preenchimentos em gradientes. Verso 5.0. Pacote pst-grad usado para preenchimentos em gradientes. Verso 4.0 produzido o captulo sobre a segunda da parte do pacote pstricks-add, que traz macros adicionais ao pacote pst-plot. Na Verso 3.0 temos um captulos para falarmos do pacote pst-plot. Com este pacote, ns podemos plotar grcos a partir de uma lista dados ou plotar o grco de funes usando os cdigos de PostScript. Verso 2.0 contm um captulo novo tratando da primeira das quatro partes em que falaremos do pacote pstricks-add, o qual um pacote experimental e traz macros complementares para o pacote pstricks. Verso 1.0 foi feito uma diviso especial no documento para tratar do conjunto de pacotes PSTricks, e aps essa diviso comeamos pelo captulo que fala a respeito do pacote pstricks. Com esse pacote podemos fazer muitas construes geomtricas de uma maneira simples atravs de seus comandos. A Verso 0.0 contm um captulo sobre a utilizao do pacote multido, o qual serve para fazer, retas e eixos numerados espaados igualmentes, entre outras funcionalidades interessantes.

Assim que tiver alguns detalhes novos na parte textual, ou alguma correo, disponibilizarei a verso atualizada e especicarei neste captulo de observaes quais foram as alteraes feitas. Gostaria de pedir tambm para os leitores que qualquer erro de digitao encontrado ou alguma parte que cou mal explicada, que enviassem-me um email noticando.

ii

Sumrio

iii

Introduo
A Neste manual ns descreveremos tcnicas e truques extendidos de LTEX para a composio de grA cos e guras. Mostraremos como desenhar com o LTEX e como conseguir efeitos especiais com pequenos

fragmentos de PostScript embutidos.


A Este manual serve para pessoas que j tenham um conhecimento de LTEX, pois para quem no tenha A conhecimento algum de LTEX no adiantar em nada ler este manual, pois com certeza no entender nada e

no conseguir tirar proveito algum. Ns descreveremos muitos pacotes e opes que extendero ou modicaro as possibilidades bsicas
A do LTEX. Para mostrar as aes delas ns temos que carregar todas elas ao mesmo tempo, o que por muitas

razes porm, isto no prtico, se no impossvel, pois muitos pacotes usam muitas variveis internas para as
A quais, o LTEX tem limites xos implementados.

Observamos ainda, que muitos dos pacotes e programas descritos aqui so distribudos livrementes em arquivos de softwares pblicos, muitos em domnios pblicos, enquanto outros so protegidos por direito autorais. Lembramos que muitos pacotes aqui mencionados, no esto inclusos na distribuio do MiKTeX, mas que podem ser obtidos facilmente no site da CTAN1. isso a, e faam bom proveito!

www.ctan.org

iv

Captulo

O Pacote Multido
Este macro originou-se para auxiliar no desenho de guras, quadros, retas entre outras coisas mais, e foi desenvolvido originalmente para o pacote PSTricks, o qual veremos mais adiante, mas o pacote multido pode ser usado muito bem para qualquer outro propsito a qualquer momento. Uma caracterstica especial o suporte para adio de ponto-xo. Por exemplo, PSTricks usa o \multido para enumerar eixos. Para usarmos este pacote, devemos adicionar no prembulo o seguinte pacote \usepackage{multido} e a sua utilizao no decorrer do documento se d atravs do seguinte comando: \multido{variveis}{repetio}{ao} ao alguma coisa que voc quer que repita, ou seja, todos detalhes que devem se repetir ao longo do objeto que se est editando. repetio o nmero de vezes que ao repetido. variveis uma lista de vrias declaraes separadas por um vrgula1 . Cada declarao das variveis da forma: varivel = valor inicial + incremento varivel uma seqencia de comando que pode ser usado dentro da ao. Inicialmente estabelece-se o valor inicial, e este incrementado a cada repetio pelo valor do incremento. A primeira letra do nome da varivel determina o tipo de varivel. Existem quatro tipos de variveis: Dimenso (d ou D): O valor inicial e o incremento devem ser dimenses (comprimentos, em linguagem
A LTEX). O texto de substituio uma dimenso, com sp unidades. Por exemplo \dx=4cm+5pt.
1

No use vrgulas para demarcar nmero decimal dentro do argumento variveis, elas causaro confuso para os delimitadores

Cap. 1 O Pacote Multido

Nmero (n ou N): O valor inicial e o incremento devem ser inteiros ou nmeros com o mesmo nmero de dgitos direita do decimal. Uma excesso que, para o valor inicial, sempre bom ser um inteiro. Pode haver no mximo 8 dgitos em cada lado do decimal. O texto de substituio um nmero, com ponto-xo. Por exemplo, \n=3+7.05,\Nx=5.30+-1.25. Inteiro (i ou I): O valor inicial e incremento devem ser inteiros. Isto d o mesmo resultado do que a varivel nmero, mas mais rpido. Por exemplo, \i=2+-1. Real (r ou R): O valor inicial e incremento devem ser inteiros ou nmeros com no mximo 4 dgitos em cada lado do decimal. A o texto de substituio um nmero, mas com adio de ponto utuante e pequenos erros ocasionais. Isto da um resultado menos satisfatrio do que usando a varivel nmero, mas rpido. Por exemplo \ry=4.2+1.05. Exemplo 1 Aqui esto alguns exemplos que ilustram o texto substitudo:
1

\multido{}{8}{\LaTeXe \ \ }

A A A A A A A A LTEX 2 LTEX 2 LTEX 2 LTEX 2 LTEX 2 LTEX 2 LTEX 2 LTEX 2


1

\multido{\d=2cm+3cm}{5}{\d , }

3729359sp, 9323398sp, 14917437sp, 20511476sp, 26105515sp,


1

\multido{\n=2+3}{10}{\n, }

2, 5, 8, 11, 14, 17, 20, 23, 26, 29,


1

\multido{\i=2+-3}{13}{\i, }

2, -1, -4, -7, -10, -13, -16, -19, -22, -25, -28, -31, -34,
1

\multido{\r=2+3.05}{6}{\r, }

2.0, 5.05, 8.1, 11.15001, 14.20001, 17.25002,

Mais alguns detalhes: Os comandos do \multido podem ser aninhados. Espaos depois de um comando \multido so ignorados. Isto faz o \multido mais hospitaleiro para os desenhos. Espaos entre as vrias partes de argumentos das variveis so ignorados. .................................................................................................... 2

by Geovane Krger

Cap. 1 O Pacote Multido

Exemplo 2 Neste exemplo temos o pacote multido usado em conjunto com o pacote picture:
1 2 3 4

\setlength{\unitlength}{1cm} \begin{picture}(8,1)(-0.5,-.5) \put(0,0){\vector(1,0){8}} \multido{\i=0+1,\n=0+0.25}{8}{

%
5 6

0.25 0.50 0.75 1.00 1.25 1.50 1.75

\put(\i,-.1){\line(0,1){.2}} \put(\i,-.2){\makebox(0,0)[t ]{\n}}} \end{picture}

by Geovane Krger

.................................................................................................... 3

***

**** * * ** ** ******** * *

* * ** * * * *

* ** * * * *

***** *** *

********

* **** *

*******

****** ** *** *

******* ** * ***

* ***** *

**

* ** * * *

* * * * * * * * * * * **** **** * * **
*

* * * * ** **** *** *

* * * **** * * * * *

* *********** * * *

**************

******

***

**

********

** ** ** *

***** ***

*****

** **

* **

***

** *

***

***

**

**********

* ** ** * * * * * * * * *

**********

*********

*********

******** *********

**

**

* **** * * * * *

**

**

** ** * * * * * *

**

**

******

**

**

***

**

**

**

* ** * * **

**

* **

*****

**

**

**

**

**

*********

**

***** * * *
**

* **

**

**

**

**

* * ****

* ** *****

**

**

**

* * *** *

* ***

* **

** **

**

** **

*****

***

** * * * * * **

* ***

**

* ** * * * * * * * *

*********

**

* * ** * * * * * *

* ***** * * * * **** ****

***

***

**

* ***

***** *

* *

****

********

** **

****

* * **

**

************

* ***

**

* ** ** **

****

* ** ****

**

**

** *

***************

* * ** * ** * * * ** *

**

* * * * ** **

**

* *** * *

**

**

* * * **

* **** *

** ** * ** * ** * *

** *

****** * * ******

**** *

* ** *

*****

**

* *

******

* *

**

* *

* * ****

* * * * * ** * * * * ** * * * ** * * * * * * * * * * * * *****
******* ** * * ** * ** ** *** *
* ****

* * * * **** * * * * * * * * * ** * * * * * *

**

* * * * ** ** ** * ** * * * * * * * * *
* * * * * * *** * **
*** ** *

* * * * * ** * * * * * * ** * * * * * * * ** * *

* ** ** ** ** *

* ** *
* *

** ** * * *
**
******

***** *** *

**** ****

*********

*********** ** **

* *

* * * * *** * ** * *

* ** *

*****

**

* * ******
* *
****

***

* * * * *** *** *** *** * *


* ***** *

**

* ** * * * * * *

**** **

* **************

** ***

***

**

* ** * * *

** *

** *

******** * * ** *

****

**

**** **** *

**

* ********

********

**

* ** * * * *

* * * * ** *

***** * ******

***** * ******

***** * * *

***** * * *

**

******* ** *** *

*** ***

** * * ** *

**

**** * *

*** **

* *** *

**

***

** **

**

***

**

*** *

**************

* ** ** *

**************

*************

* ****

* **

* **

***

* ** ***

**

**

**

* * * * * *****

**

* **** *** **

* * * ******

********

* ****

**

***

**

* ** **

***

***

**

***

**

Captulo

O Pacote pstricks
Os melhores editores de guras, desenhos e grcos so os que usam a linguagem PostScript podendo resultar assim, em um sistema muito poderoso. Enquanto muitos pacotes de macro usam apenas algumas partes do PostScript, o macro mais completo para este propsito indiscutivelmente o PSTricks. PSTricks um conjunto de pacotes muito poderoso com inmeras ferramentas e combinaes de ferramentas que podem ser utilizadas, do qual traremos apenas alguns exemplos e algumas demonstraes neste material, algo bem bsico sobre alguns pacotes pois se fosse para falar de tudo teria que ser feito um manual em vrios volumes, outro motivo de ser algo bsico por que no fcil de manipular a linguagem destes pacotes,
A seria necessrio ter um maior conhecimento do LTEX, de programao e computao em geral. Para quem quiser obter maiores informaes sobre cada pacote descrito aqui, poder consultar a bibliograa indicada.

Como j havamos mencionado, estes pacotes no tem habilidades especiais com drivers PDF, portanto
A quando gerar o documento produzido pelo LTEX, devemos primeiramente criar o arquivo .dvi passar para .ps e

depois para .pdf. Com PSTricks ns podemos: desenhar linhas, polgonos, crculos e curvas;
A Situar e manipular textos do LTEX;

desenhar nodos e conectores (inclusive rvores); fazer linhas coloridas e preencher objetos; denir novos comandos grcos. Para o uso dos objetos descritos a seguir e para o uso dos outros pacotes do conjunto PSTricks devemos sempre adicionar no prembulo o pacote \usepackage{pstricks} 5

Cap. 2 O Pacote pstricks

2.1 Conceitos Bsicos de PSTricks

e os demais pacotes que sero visto no decorrer deste captulo devero ser adicionados logo abaixo este comando. Argumentos e Delimitadores A seguir temos alguns argumentos e delimitadores que so muito importantes e bom ns conhecermos e termos eles em mente. Chaves (para argumentos mandatrios) {argumento} Colchetes (para argumentos opcionais) [argumento] Parnteses e vrgulas para coordenadas (x,y) = e vrgulas para parmetros parte1=valor1,. . . espaos e vrgulas tambm podem ser usados como delimitadores dentro de argumentos. Nunca devemos usar vrgula como ponto decimal, para que o PSTricks no confunda a vrgula com um delimitador. As confuses mais comum de se fazer com macros PSTricks com os delimitadores. Portanto delimitadores so geralmente a primeira coisa para se checar quando ns cometemos algum erro com um macro PSTricks. Considerando que macros de PSTricks podem conter muitos comandos, til saber que ns podemos deixar um espao ou linha em branco entre qualquer argumento, exceto entre argumentos que esto inseridos dentro de chaves {}. Se precisarmos inserir uma nova linha entre argumentos que esto entre um par de chaves, podemos colocar um caractere de comentrio % no m da linha.

2.1 Conceitos Bsicos de PSTricks


2.1.1 O Ambiente pspicture
Os objetos podem ser mixados junto com comandos normais, ou podem ser usados dentro de um ambiente de gura para a construo dos mesmos. O ambiente especial para isso : \begin{pspicture}[parmetros](x0 , y0 )(x1 , y1 ) . . . Comandos . . . \end{pspicture}

by Geovane Krger

.................................................................................................... 6

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

onde os objetos so postos em uma caixa cujo canto inferior esquerdo (x0 , y0 ) (padro (0,0)) e o canto superior direito (x1 , y1 ). Normalmente, as guras podem estender-se para fora dos limites da folha, porm, se ns incluirmos o *, qualquer coisa fora dos limites cortado (pspicture*). Temos um parmetro para ser usado junto com o ambiente pspicture: shift=dimenso com este parmetro ns podemos proporcionar um deslocamento vertical do objeto em relao a linha de base (baseline). O seu valor padro 0. A seguir temos um exemplo simples que foi posto dentro de uma grade para visualizar o sistema de coordenadas. Exemplo 3
2 1 0 0 1 2
1 2 3

\begin{pspicture}(0,0)(-1.8,2) \psgrid[subgriddiv=1,griddots=10](0,0)(2,2) \psline[linewidth=1pt,linecolor=gray]{<->}(0.5,0) (0,1)(1,1.5)(1.5,1)(.5,.5) \end{pspicture}

2.2 Estabelecendo Parmetros Grcos


PSTricks usa um sistema de valor-chave de parmetros grcos para customizar macros que geram guras (por exemplo, linhas e crculos), ou guras combinadas com texto (por exemplo, caixas com molduras). Para alterarmos os valores padro dos parmetros, usamos o comando \psset, cuja sintaxe : \psset{parmetro1=valor1, parmetro2=valor2, . . . } espaos extras so aceitos somente aps a vrgula que separa parmetro=valor, portanto no devemos colocar espaos extras como em parmetro =valor, ou parmetro= valor, pois isso ir gerar erro. Praticamente todos os macros que fazem uso de parmetros grcos permitem que faamos mudanas em um primeiro argumento opcional, o qual ca delimitado por colchetes, por exemplo os argumentos opcionais do comando \psline[linecolor=green,linestyle=dotted](8,7), iro desenhar uma linha verde pontilhada.

2.2.1 Dimenso, Coordenadas e ngulos


Toda vez que o macro de um PSTricks for uma dimenso, a unidade opcional. Por padro, o sistema de coordenadas tem unidade de 1cm tanto na direo x quanto na y. Mas isto fcil de ser alterado em qualquer
by Geovane Krger

.................................................................................................... 7

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

momento. Para alterarmos todo o sistema ao mesmo tempo, podemos usar o seguinte comando: \psset{unit=dimenso} por exemplo, usando o valor padro de medida que 1cm, ento os seguintes macros so equivalentes \psset{linewidth=.5cm} e \psset{linewidth=.5}, ou seja, s precisamos especicar a unidade de medida quando quisermos outra unidade.
A Pares de coordenadas tem a forma (x, y). A origem do sistema de coordenadas no LTEX o ponto

atual, ou seja onde estamos. O comando \SpecialCoor nos deixa usarmos coordenadas polares, da forma (r; a), onde r o raio e a o ngulo. Podemos usar tambm coordenadas cartesianas que da forma (x, y). O parmetro unit na verdade xa trs parmetros, xunit, yunit e runit, onde todos tem como unidade padro 1cm. Em um sistema de coordenadas cartesianas, podemos escalar a dimenso de x e y separadamente usando o comando \psset{xunit=dimenso, yunit=dimenso} observe que no necessrio denir os dois, podemos denir apenas um dos comandos, e o outro ca com a unidade padro, caso no denido. Exemplo 4
2

1 2

\begin{pspicture}(0,0)(-2,5) \psset{yunit=1in} \psgrid[subgriddiv=1,griddots=10](0,0)(2,2) \psline[linewidth=1pt,linecolor=gray]{<->}(0.5,0) (0,1)(1,1.5)(1.5,1)(.5,.5) \end{pspicture}

3 4

0 0 1 2

ngulos, em coordenadas polares ou em outros parmetros, deve ser um nmero que representa o ngulo em graus, que o padro. Mas ns tambm podemos alterar as unidades usadas para ngulos com o comando \degrees[partes] .................................................................................................... 8

by Geovane Krger

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

onde partes nmero de unidades em um crculo, ou seja, em quantas partes dividido o crculo. Por padro que em graus, \degrees[360]. O comando \radians um atalho para \degrees[6.28319]. Podemos especicar ngulos de outros modos com o comando \SpecialCoor. Veja a seguir alguns exemplos: Exemplo 5
1 0 -1 -1 0 1
1 2 3 4 5

\begin{pspicture}(0,-1)(-2,1) \psgrid[subgriddiv=1,griddots=10](-1,-1)(1,1) \SpecialCoor \multido{\iAngle=0+12}{30}{\psdot(1;\iAngle)} \end{pspicture}

Exemplo 6
4 3 2 1 0 0 1 2 3 4
1 2 3 4 5 6

\begin{pspicture}(-2,4) \SpecialCoor \psset{runit=1} \psgrid[subgriddiv=1,griddots=10](0,0)(4,4) \psline(0;0)(4;60)(4;0)(0;0) \end{pspicture}

2.2.2 Comandos de Cor


Detalhes importantes sobre comandos de cor: Os comandos de cor podem ser usados dentro e fora do modo matemtico; Os comandos de cor afetam tudo que estiver em seu alcance no somente caracteres, por exemplo linhas; O alcance dos comandos de cores no se extendem ao longo das pginas; Algumas cores pr-denidas em PSTricks so: a escala de cinza, black (Preto), darkgray (Cinza Escuro), gray (Cinza), lightgray (Cinza Claro) e white (Branco); e as cores, red (Vermelho), green (Verde), blue (Azul), cyan (Ciano), magenta (Magenta) e yellow (Amarelo). Portanto estes nomes podem ser usados com os objetos de grcos que sero vistos adiante. Ns tambm podemos denir ou redenir cores adicionais e escalas de cinza com o comando
by Geovane Krger

.................................................................................................... 9

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

\denecolor{nome da cor}{modelo}{parmetros} onde em cada caso parmetros so nmeros entre 0 e 1 separados por vrgula dependendo do modelo de cor usado. A seguir temos alguns modelos: gray com este modelo podemos especicar uma nova escala de cinza, onde 0 preto e 1 branco, nesse caso usado s um nmero em parmetros. sistema rgb de cores signica: red-green-blue, portanto podemos misturar essas cores para formar novas cores (trs nmeros em parmetros). sistema hsb de cores signica: hue-saturation-brightness (matriz-saturao-brilho), (trs nmeros em parmetros). sistema cmyk de cores signica: cyan-magenta-yellow-(k)black (quatro nmeros em parmetros). Exemplo 7
1 2 3 4 5 6 7 8 9 10 11 12

\begin{pspicture}(0,-3)(-4,3) \psset{unit=3} \multido{\nHue=0.01+0.01}{100}{ \definecolor{MyColor}{hsb}{\nHue,1,1} \pscircle[linewidth=0.01,linecolor=MyColor]{\nHue}} \end{pspicture} \begin{pspicture}(-5,-3)(-9,3) \psset{unit=3} \multido{\nHue=0.01+0.01}{100}{ \definecolor{MyColor}{rgb}{\nHue,\nHue,0} \pscircle[linewidth=0.01,linecolor=MyColor]{\nHue}} \end{pspicture}

by Geovane Krger

.................................................................................................... 10

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

2.2.3 Parmetros Bsicos


A largura e cor das linhas dado pelos seguintes parmetros: linewidth=dimenso linecolor=cor onde os valores padro so: linewidth=0.8pt e linecolor=black.

2.2.4 Estilos de Linha


Os seguintes parmetros grcos (em adio com linewidth e linecolor) determinam como as linhas so desenhadas. linestyle=estilo Os estilos disponveis so: none (nenhum), solid (slido), dashed (tracejado) e dotted (pontilhado). Padro solid. dash=dimenso1 dimenso2 O tracejado Preto-e-Branco padro para o estilo de linha dashed : dash=5pt 3pt. Exemplo 8
1 2 3

\begin{pspicture}(0,0)(-1,2) \psellipse[linestyle=dashed,dash=3pt 2pt](2,1)(2,1) \end{pspicture}

Podemos usar uma variao do parmetro dash da seguinte maneira: dash=dimenso1 dimenso2 dimenso3 dimenso4 usando desta maneira, podemos fazer com que uma linha no seja somente tracejada ou pontilhada, e sim tracejada e pontilhada ao mesmo tempo, veja: Exemplo 9
1 2

\begin{pspicture}(0,0)(-1,0.7) \psline[linestyle=dashed,dash=4pt 2pt 1pt 2pt ]{|->>}(5,0.5) \end{pspicture}

by Geovane Krger

.................................................................................................... 11

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

dotsep=dimenso a distncia entre pontos para o estilo de linha dotted. Padro : dotsep=3pt. Exemplo 10
1 2 3

\begin{pspicture}(0,0)(-1,0.7) \psline[linestyle=dotted,dotsep=2pt]{|->>}(5,0.5) \end{pspicture}

border=dimenso bordercolor=cor Com estes dois parmetros ns podemos desenhar uma borda com largura dimenso e cor cor em cada lateral da curva. Isto til para quando uma linha passa por cima da outra. Os valores padro so: border=0pt e bordercolor=white. Exemplo 11
1 2 3 4

\begin{pspicture}(0,0)(-1,1.5) \psline{<-}(0,0)(2,2) \psline[border=2pt]{->}(0,1.5)(3,0) \end{pspicture}

doubleline=true/false Quando true (verdadeiro), desenhada uma linha dupla, separada por um espao que da largura especicada em doublesep e com a cor especicada em doublecolor. Com este comando algumas setas podem parecer estranhas. Padro false. doublesep=dimenso padro : doublesep=1.25\pslinewidth. doublecolor=cor padro : doublecolor=white.

by Geovane Krger

.................................................................................................... 12

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

Exemplo 12
1 2 3 4

\begin{pspicture}(0,0)(-2,1) \psline[doubleline=true,doublesep=1.5pt]{->}(6,0)(11,1)(12,0) \psline[doubleline=true,doublesep=1.5pt,doublecolor=yellow]{->}(6,0)(1,1)(0,0) \end{pspicture}

2.2.5 Estilos de Preenchimento


Podemos preencher as regies delimitadas por curvas abertas e fechadas, usando os seguintes parmetros: llstyle=estilo Os estilos vlidos para serem usados so: none (Padro), solid, vlines, vlines*, hlines, hlines*, crosshatch, crosshatch*, eoll e boxll. Os parmetros vlines, hlines e crosshatch esboam um padro de linhas de acordo com quatro parmetros que sero listados a seguir. As verses com *, tambm preenchem o fundo como no estilo solid. O estilo eoll como o estilo solid, mas a diferena que caso alguma gura tenha uma sobreposio de imagem, a imagem que vai por cima do restante no preenchida. O estilo boxll, necessita do pacote \usepackage{pst-fill}, permitindo preencher a rea com um padro denido usando o macro \psboxfill (ver o captulo ??). llcolor=cor a cor de fundo nos estilos: solid, vlines*, hlines* e crosshatch*. hatchwidth=dimenso largura das linhas (padro 0.8pt). hatchsep=dimenso largura do espao entre as linhas (padro 4pt). hatchcolor=cor cor das linhas (padro black).
by Geovane Krger

.................................................................................................... 13

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

hatchangle=rotao rotao das linhas, em graus (padro 45). hatchsepinc=dimenso incremento adicional de espao entre duas linhas (Padro 0pt). hatchwidthinc=dimenso valor para incrementar uma linha de largura em cada linha (Padro 0pt). addllstyle=estilo isto permite usar dois estilos diferentes para a mesma rea. Isso especialmente til quando o estilo boxll usado. Exemplo 13
1 2

\begin{pspicture}(0,0)(-1,3) \pspolygon[fillstyle=vlines*,fillcolor=yellow](0,0) (0,3)(4,0) \pspolygon[fillstyle=hlines,hatchcolor=blue](0,0) (4,3)(4,0) \pspolygon[fillstyle=crosshatch*,fillcolor=black, hatchcolor=white,hatchwidth=1.2pt,hatchsep=1.8 pt,hatchangle=0](0,3)(2,1.5)(4,3) \end{pspicture}

Exemplo 14
1 2

\begin{pspicture}(\linewidth,3) \psframe[fillstyle=vlines,hatchangle=0,hatchsep=.5pt,hatchwidth=1pt,hatchwidthinc =0.25pt](\linewidth,3) \end{pspicture}

by Geovane Krger

.................................................................................................... 14

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

Exemplo 15
1 2

\begin{pspicture}(\linewidth,3) \psframe[fillstyle=hlines,hatchangle=0,hatchwidth=1pt,hatchsep=0.5pt,hatchsepinc=0.1 pt,hatchcolor=Orange](\linewidth,3) \end{pspicture}

Exemplo 16
1 2

\begin{pspicture}(\linewidth,3) \psframe[fillstyle=crosshatch,hatchangle=-90,hatchwidth=1pt,hatchsep=0.5pt, hatchsepinc=0.1pt,hatchcolor=blue](\linewidth,3) \end{pspicture}

2.2.6 Setas e Outras Pontas


Linhas e outras regies abertas podem terminar com vrios tipos de cabeas de setas, t-barras ou crculos. Com o parmetro arrows=estilo escolhemos qual tipo ns queremos. Os valores possveis so descritos na tabela a seguir. Ns podemos misturar e igualar as setas, por exemplo: ->, *-), [->. Observe que os parmetros com * fazem com que as linhas mantenham o tamanho original, ou seja, a seta colocada no ir aumentar o tamanho da gura. Em muitos casos, ns podemos incluir as setas usando como um parmetro opcional, dispostos entre chaves, antes de qualquer outro argumento, exceto para argumentos de parmetros opcionais (que esto dentro
by Geovane Krger

.................................................................................................... 15

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

Valor <-> >-< <<->> >>-<< |-| |*-|* |<->| |<*->|* [-] ]-[ (-) )-( o-o *-* oo-oo **-** c-c cc-cc C-C dos colchetes). Por exemplo

Exemplo

Nome Nada (Padro) Pontas de echas Pontas de echas inversas Pontas de echas duplas Pontas de echas inversas duplas T-barras T-barras, centradas nas pontas T-barras e pontas de echas T-barras e pontas de echas, centradas Colchetes Colchetes Invertidos Parnteses Parnteses Invertidos Crculos, centrados nas pontas Discos, centrados nas pontas Crculos Discos extendido, nais arredondados nais arredondados extendido, nais quadrados

\psline=[arrows=<-,linestyle=dotted](3,4) pode ser escrito \psline[linestyle=dotted]{<-}(3,4) Podemos ainda, personalizar o tamanho dos estilos de setas. Na descrio dos parmetros a seguir, a largura refere-se a dimenso sempre em relao a perpendicular em que est a linha, e a altura refere-se a dimenso sempre na direo em que est a linha. Veja os parmetros abaixo: arrowsize=dimenso nmero a largura das setas o nmero multiplicado por linewidth mais a dimenso (Isso se o valor opcional nmero includo). O valor padro : arrowsize=1.5pt 2. .................................................................................................... 16

by Geovane Krger

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

arrowlength=numero o comprimento das setas : numero arrowsize. Padro arrowlength=1.4. arrowinset=numero corresponde a parte de trs da seta, como ela deve ser, com uma entrada para dentro, reto atrs ou uma ponta ao contrrio. O tamanho funciona da seguinte maneira: numero arrowlength. Padro arrowinset=0.4. Antes de descrevermos os comandos para personalizar as T-barras, colchetes, parnteses veja alguns exemplos e compare os efeitos, principalmente quanto ao uso do parmetro arrowinset: Exemplo 17
1

\psline[arrowsize=3mm 10,arrowlength=1,arrowinset=0]{->}(0,0)(6,0)

\psline[arrowsize=3mm 10,arrowlength=6,arrowinset=0.3]{->}(0,0)(6,0)

\psline[arrowsize=3mm 10,arrowlength=1.5,arrowinset=0.8]{->}(0,0)(6,0)

\psline[arrowsize=3mm 5,arrowlength=1,arrowinset=-0.4]{->}(0,0)(6,0)

continuando . . . tbarsize=dimenso nmero a largura de uma T-barra, colchete ou parntese o nmero multiplicado por linewidth mais a dimenso (Isso se o valor opcional nmero includo). Valor padro tbarsize=2pt 5. bracketlength=numero comprimento do colchete quando usado : numero tbarsize. Padro bracketlength=0.15 rbracketlength=numero comprimento do parntese quando usado : numero tbarsize. Padro rbracketlength=0.15.
by Geovane Krger

.................................................................................................... 17

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

arrowscale=nmero funciona como escala. Padro : arrowscale=1. Ideal para quando usamos discos ou crculos. Exemplo 18
1

\psline[tbarsize=1mm 15,bracketlength=1]{[-[}(0,0)(6,0)

\psline[tbarsize=1mm 15,rbracketlength=1]{(-(}(0,0)(6,0)

\psline[arrowscale=3.5]{o-*}(0,0)(6,0)

Se ns quisermos, tambm podemos colocar pontos nas coordenadas especicadas usando o parmetro showpoints=true/false padro false. Existem outros modos de controlar ou escolher o estilo de pontos, mas isto ser descrito mais adiante. Exemplo 19
1

\psline[showpoints=true]{->}(0,0)(1,0)(2,0)(3,0)(4,0)(7,0)(8,0)

2.2.7 Linhas e Polgonos


Antes de partimos para a descrio dos objetos, descreveremos alguns parmetros que so usados por eles: linearc=dimenso o raio dos arcos formados nos cantos de objetos \psline e objetos grcos \pspolygon. dimenso deve ser positivo (Padro 0pt). framearc=nmero .................................................................................................... 18

by Geovane Krger

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

em \psframe e macros de caixas moldadas, o raio dos cantos arredondados por padro xo, mas com nmero ns podemos multiplicar a largura ou a altura. nmero deve estar entre 0 e 1 (Padro 0). cornersize=relative/absolute se cornersize relative, ento o parmetro framearc determina o raio dos cantos arredondados para \psframe como descrito acima (e conseqentemente o raio depende do tamanho da moldura). Se cornersize absolute, ento o parmetro linearc determina o raio dos cantos arredondados para psframe (e conseqentemente o raio de tamanho constante). (Padro relative). gangle=ngulo este parmetro usado para rotacionar as guras geradas pelos comandos \psdiamond e \pstriangle, o eixo de rotao o centro da gura (valor padro 0). Agora sim vejamos os tipos de linhas e polgonos: \psline[parmetros]{setas}(x0 , y0 )(x1 , y1 ) . . . (xn , yn ) \psline*[parmetros]{setas}(x0 , y0 )(x1 , y1 ) . . . (xn , yn ) Isto desenha uma linha que passa pela lista de coordenadas. necessrio ao menos dois par de coordenadas. Exemplo 20
2 1 0 0 1 2 3 4
1 2 3

\begin{pspicture}(0,0)(-1,2) \psgrid[subgriddiv=1,griddots=10](0,0)(4,2) \psline[linewidth=0.05cm,linearc=0.1]{->}(4,2) (0,1)(2,0) \end{pspicture}

\qline(x0 , y0 )(x1 , y1 ) Esta uma verso simples de \psline, o qual no tem argumentos, no usa setas e desenha somente uma linha reta. Para alterar a dimenso da linha devemos usar \psset. Exemplo 21
1 0 0 1 2
1 2 3 4

\begin{pspicture}(0,0)(-2,1) \psgrid[subgriddiv=1,griddots=10](0,0)(2,1) \qline(0,0)(2,1) \end{pspicture}

by Geovane Krger

.................................................................................................... 19

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

\pspolygon[parmetros](x0 , y0 )(x1 , y1 )(x2 , y2 ) . . . (xn , yn ) \pspolygon*[parmetros](x0 , y0 )(x1 , y1 )(x2 , y2 ) . . . (xn , yn ) Isto semelhante ao \psline, mas desenha um caminho fechado. necessrio ao menos trs pares de coordenadas. Exemplo 22
1

\begin{pspicture}(0,0)(-.6,3) \psgrid[subgriddiv=1,griddots =10](0,0)(8,3) \pspolygon[linewidth=0.05cm](1,0) (0,1)(0,2)(1,3)(2,3)(3,2)(3,1) (2,0)(1,0) \pspolygon*[linearc=.4,linecolor= Periwinkle](4,0)(4,3)(8,0)(8,3) \end{pspicture}

3 2 1 0 0 1 2 3 4 5 6 7 8

\psframe[parmetros](x0 , y0 )(x1 , y1 ) \psframe*[parmetros](x0 , y0 )(x1 , y1 ) \psframe desenha um retngulo com cantos opostos (x0 , y0 ) e (x1 , y1 ) Exemplo 23
1

\begin{pspicture}(0,0)(-.6,4) \psgrid[subgriddiv=1,griddots=10](0,0)(6,4) \psframe[linewidth=0.1cm,fillstyle=solid, fillcolor=Yellow](6,4) \pspolygon[linewidth=0.05cm,fillstyle=solid, fillcolor=Green] (2.5,0.5)(1.5,1.5)(1.5,2.5)(2.5,3.5)(3.5,3.5) (4.5,2.5)(4.5,1.5)(3.5,0.5)(2.5,0.5) \psframe*[linecolor=white,framearc=.9](2,1) (4,3) \end{pspicture}

4 3

2 3

2 1 0 0 1 2 3 4 5 6
7 5

\psdiamond[parmetros](x0 , y0 )(x1 , y1 ) \psdiamond*[parmetros](x0 , y0 )(x1 , y1 )


by Geovane Krger

.................................................................................................... 20

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

\psdiamond desenha um losango centrado em (x0 , y0 ) e meia largura e meia altura igual a (x1 , y1 ), respectivamente. Exemplo 24
4
1

\begin{pspicture}(0,0)(-1,4) \psgrid[subgriddiv=1,griddots=10](0,0) (6,4) \psdiamond[linewidth=0.06cm,fillstyle= solid,fillcolor=BrickRed](3,2) (2.5,1.5)

3 2 1

0 0 1 2 3 4 5 6

\psdiamond*[linecolor=white](3,2)(0.7,1) \end{pspicture}

\pstriangle[parmetros](x0 , y0 )(x1 , y1 ) \pstriangle*[parmetros](x0 , y0 )(x1 , y1 ) \pstriangle desenha um tringulo issceles com base centrada em (x0 , y0 ), e com largura da base e altura igual a (x1 , y1 ), respectivamente. Exemplo 25
2 1 0 0 1 2 3 4
1 2 3

\begin{pspicture}(0,0)(-1,2) \psgrid[subgriddiv=1,griddots=10](0,0)(4,2) \pstriangle[linewidth=.1mm,fillstyle=solid, fillcolor=ProcessBlue,gangle=10](2,.5)(4,1) \end{pspicture}

2.2.8 Arcos, Crculos e Elipses


\pscircle[parmetros](x0 , y0 ){raio} \pscircle*[parmetros](x0 , y0 ){raio} Isto desenha um crculo cujo centro (x0 , y0 ) e que tem raio igual a raio.

by Geovane Krger

.................................................................................................... 21

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

Exemplo 26
1
1

\begin{pspicture}(0,-1)(-3,1) \psgrid[subgriddiv=1,griddots=10](-1,-1)(1,1) \pscircle[linewidth=1mm](0,0){1} \end{pspicture}

0 -1 -1 0 1

2 3 4

\qdisk(x, y){raio} Esta uma verso simplicada de \pscircle. Possue somente os dois comandos obrigatrios, no possue argumentos opcionais. Para alterarmos a cor devemos usar \psset. \pswedge[parmetros](x0 , y0 ){raio}{ngulo1}{ngulo2} \pswedge*[parmetros](x0 , y0 ){raio}{ngulo1}{ngulo2} Com isto desenhamos uma cunha cujo centro (x0 , y0 ), que tem raio igual raio, e se estende em sentido anti-horrio do ngulo1 para o ngulo2. Os ngulos devem ser especicados em graus. Exemplo 27
1 2 3 4 5

\begin{pspicture}(0,0)(-4,2) \psgrid[subgriddiv=1,griddots=10](0,0)(8,2) \pswedge*[linecolor=BurntOrange](0,0){2}{0}{35} \pswedge[linewidth=1mm,linecolor=YellowGreen](5,0){2}{10}{140} \end{pspicture}

2 1 0 0 1 2 3 4 5 6 7 8

\psellipse[parmetros](x0 , y0 )(x1 , y1 ) \psellipse*[parmetros](x0 , y0 )(x1 , y1 ) (x0 , y0 ) o centro da elipse, e (x1 , y1 ) so os raios horizontais e verticais, respectivamente.

by Geovane Krger

.................................................................................................... 22

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

Exemplo 28
1
1

\begin{pspicture}(0,-1.5)(-3,1) \psgrid[subgriddiv=1,griddots=10](-2,-1)(2,1) \psellipse[linewidth=1mm,linecolor=gray](0,0)(2,1) \end{pspicture}

0 -1 -2 -1 0 1 2

2 3 4

\psarc[parmetros]{setas}(x, y){raio}{nguloA}{nguloB} \psarc*[parmetros]{setas}(x, y){raio}{nguloA}{nguloB} Isto desenha um arco do ngulo1 para o ngulo2, indo em sentido anti-horrio, para um crculo de raio raio e centrado em (x, y). O argumento de setas no obrigatrio. Exemplo 29
1 2 3 4 5

\begin{pspicture}(0,0)(-2,2) \psgrid[subgriddiv=1,griddots=10](0,0)(13,2) \psarc[showpoints=true](2,2){1.5}{215}{0} \psarc[showpoints=true]{<->}(6,0){1.5}{0}{160}

\psarc*[showpoints=true](10,0){1.8}{10}{140} 6 \end{pspicture}

2 1 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13

O parmetro showpoints=true aqui, desenha um linha tracejada do centro at o arco, o que bem til. O macro \psarc ainda contm alguns parmetros que podem ser usados: arcsepA=dimenso Com este parmetro, ns podemos ajustar o arco de maneira que ele comear a partir de uma certa linha (invisvel) em dimenso. Essa linha se estende do centro do arco na direo do nguloA, e a sua largura divide-se meio a meio para cada lado do centro. Para entender melhor esse parmetro, veja o exemplo ?? e analise a gura. arcsepB=dimenso como no arcsepA, mas ajustado em relao ao nguloB.
by Geovane Krger

.................................................................................................... 23

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

arcsep=dimenso isto ajusta a ambos. Exemplo 30


2 1 0 0 1 2 3 4
1 2 3

\begin{pspicture}(0,0)(-1,2) \psgrid[subgriddiv=1,griddots=3](0,0)(4,2) \psarc[showpoints=true,arcsepA=4cm]{->}(2,0) {1.8}{0}{160} \end{pspicture}

Exemplo 31
2 1 0 0 1 2 3 4
1 2 3

\begin{pspicture}(0,0)(-1,2) \psgrid[subgriddiv=1,griddots=3](0,0)(4,2) \psarc[showpoints=true,arcsepB=4cm]{->}(2,0) {1.8}{0}{160} \end{pspicture}

by Geovane Krger

.................................................................................................... 24

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

Exemplo 32
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

\begin{pspicture}(0,-2.5)(-5,2) \SpecialCoor \psgrid[subgriddiv=2,subgriddots=10,griddots=10](-2,-2)(2,2) \psarc*[linecolor=green,showpoints=true](0,0){2}{0}{180} \psarc*[showpoints=true,arcsepA=1cm](0,0){2}{0}{180} \psarc*[linecolor=red,showpoints=true,arcsepA=2cm](0,0){2}{0}{180} \psarc*[linecolor=blue,showpoints=true,arcsepA=3cm](0,0){2}{0}{180} \psarc*[linecolor=yellow,showpoints=true,arcsepA=4cm](0,0){2}{0}{180} \psarc*[linecolor=green,showpoints=true,arcsepA=5cm](0,0){2}{0}{180} \psarc*[showpoints=true,arcsepA=6cm](0,0){2}{0}{180} \psarc*[linecolor=red,showpoints=true,arcsepA=7cm](0,0){2}{0}{180} \psarc*[linecolor=blue,showpoints=true,arcsepA=8cm](0,0){2}{0}{180} \psarc*[linecolor=yellow,showpoints=true,arcsepA=9cm](0,0){2}{0}{180} \psarc*[linecolor=green,showpoints=true,arcsepA=10cm](0,0){2}{0}{180} \psarc*[showpoints=true,arcsepA=11cm](0,0){2}{0}{180} \psarc*[linecolor=red,showpoints=true,arcsepA=12cm](0,0){2}{0}{180} \psline[linewidth=2cm,linestyle=dashed,linecolor=gray](0,0)(2;0) \psline[linewidth=1cm,linestyle=dashed,linecolor=lightgray](0,0)(2;0) \psline[linecolor=ProcessBlue](2.1;14)(-2,0)(2.2;27.1)(-2,0)(2.4;39.2) \end{pspicture}

2 1 0 -1 -2 -2 -1 0 1 2

Com este parmetro ca fcil desenhar a interseo de duas linhas e indicar com setas o ngulo formado entre elas.

by Geovane Krger

.................................................................................................... 25

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

Exemplo 33
1 2 3 4 5

\begin{pspicture}(0,0)(-1,3) \SpecialCoor \psline[linewidth=2pt](4;50)(0,0)(4;10) \psarc[showpoints=true,arcsepB=3pt]{->}{3}{10}{50} \end{pspicture}

\psarcn[parmetros]{setas}(x, y){raio}{nguloA}{nguloB} \psarcn*[parmetros]{setas}(x, y){raio}{nguloA}{nguloB} Tem a mesma funcionalidade de \psarc, mas a diferena que com esse comando o arco construdo no sentido horrio. \psellipticarc[parmetros]{setas}(x0 , y0 )(x1 , y1 ){nguloA}{nguloB} \psellipticarc*[parmetros]{setas}(x0 , y0 )(x1 , y1 ){nguloA}{nguloB} Isto desenha um arco elptico do nguloA para o nguloB, indo no sentido anti-horrio, sendo (x0 , y0 ) o centro da elipse e (x1 , y1 ) o raio horizontal e vertical, respectivamente. Exemplo 34
1 0 -1 -1 0 1 2
1 2 3

\begin{pspicture}(0,-1)(-2,1) \psgrid[subgriddiv=1,griddots=10](-1,-1)(2,1) \psellipticarc[showpoints=true,arrowscale =2]{->}(.5,0)(1.5,1){215}{0} \end{pspicture}

\psellipticarcn[parmetros]{setas}(x0 , y0 )(x1 , y1 ){nguloA}{nguloB} \psellipticarcn*[parmetros]{setas}(x0 , y0 )(x1 , y1 ){nguloA}{nguloB} Tem a mesma funcionalidade de \psellipticarc, mas a diferena que com esse comando o arco construdo no sentido horrio. \psellipticwedge[parmetros]{setas}(x0 , y0 )(x1 , y1 ){nguloA}{nguloB} .................................................................................................... 26

by Geovane Krger

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

\psellipticwedge*[parmetros]{setas}(x0 , y0 )(x1 , y1 ){nguloA}{nguloB} Com isto desenhamos uma cunha elptica cujo centro (x0 , y0 ), e tem os raios horizontais e verticais descritos por (x1 , y1 ), e se estende em sentido anti-horrio do ngulo1 para o ngulo2. Os ngulos devem ser especicados em graus. Exemplo 35
2
1 2

\begin{pspicture}(0,-1)(-3,2) \psgrid[subgriddiv=1,griddots=10,gridlabels=7pt ](-2,-1)(2,2) \psellipticwedge[fillstyle=vlines,linewidth =0.1](0,0)(1.5,1){0}{200} \psellipticwedge[fillstyle=hlines,linecolor=red ](0,0)(0.5,1.5){30}{220} \end{pspicture}

1
3

0
4

-1 -2 -1 0 1 2
5

2.2.9 Curvas
\psbezier[parmetros]{setas}(x0 , y0 )(x1 , y1 )(x2 , y2 )(x3 , y3 ) \psbezier*[parmetros]{setas}(x0 , y0 )(x1 , y1 )(x2 , y2 )(x3 , y3 ) Com este comando podemos desenhar uma curva de bezier com os quatro pontos de controle. Esta curva inicia na primeira coordenada, tangenciando a linha que conecta a primeira coordenada a segunda coordenada e termina na ltima coordenada, tangenciando a linha que conecta a terceira coordenada a quarta coordenada. A segunda e a terceira coordenada ainda tem a funo de puxar a curva para elas. Exemplo 36

1 2

\begin{pspicture}(0,0)(-.5,4) \psbezier[linewidth=2pt,showpoints=true ]{->}(0,0)(2,4)(6,1)(8,3.5) \end{pspicture}

\parabola[parmetros]{setas}(x0 , y0 )(x1 , y1 ) .................................................................................................... 27

by Geovane Krger

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

\parabola*[parmetros]{setas}(x0 , y0 )(x1 , y1 ) Isto desenha uma parbola que passa por (x0 , y0 ) e cujo mximo ou mnimo (x1 , y1 ). Exemplo 37
3 2 1 0 -1 -1 0 1 2 3
1 2 3

\begin{pspicture}(0,-1.5)(-2,3.5) \psgrid[subgriddiv=1,griddots=10](-1,-1)(3,3) \parabola[fillstyle=solid,fillcolor=red,linewidth =2pt,linecolor=darkgray]{<->}(-1,0)(1,1) \parabola{<->}(-1,3)(1,-1) \end{pspicture}

4 5

Os prximos trs objetos de grcos interpolam uma curva aberta ou fechada pelos pontos dados. A curva a cada ponto interior perpendicular linha que corta ao meio o ngulo ABC, onde B o ponto interior, e A e C so os pontos de fronteira. Escalando as coordenadas, a curva pode no car escalada proporcionalmente. A curvatura controlada pelo seguinte parmetro: curvature=nmero1 nmero2 nmero3 onde padro : curvature=1 .1 0 Ns temos que jogar as poucos com este parmetro para adquirir o que queremos. Valores individuais fora da gama -1 a 1 ou ignorado ou s para entretenimento. A explicao a seguir diz o que cada nmero faz. A, B e C refere-se a trs pontos consecutivos. Quanto mais baixo o valor de nmero1 mais apertada a curva. Quanto mais baixo o valor de nmero2, a curva apertada onde o ngulo ABC maior que 45 graus e afrouxada em outro lugar. nmero3 determina a declividade a cada ponto. Se nmero3=0, ento a curva perpendicular a B para a bisseo de ABC. Se nmero3=-1, ento a curva em B paralela a linha AC. Com este valor (e somente este valor), escalando as coordenadas causam a curva uma escala proporcional. Porm, valores positivos podem melhorar com coordenadas espaadas irregularmente. Valores menores que -1 ou maior que 2 so convertidos para -1 e 2, respectivamente. Seguindo, temos os trs macros de interpolao de curvas. .................................................................................................... 28

by Geovane Krger

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

\pscurve[parmetros]{setas}(x1 , y1 ) . . . (xn , yn ) \pscurve*[parmetros]{setas}(x1 , y1 ) . . . (xn , yn ) Isto interpola uma curva aberta entre os pontos. Exemplo 38
2 1 0 0 1 2 3 4 5 6
4 1 2 3

\begin{pspicture}(0,0)(-.5,2) \psgrid[subgriddiv=1,griddots=10](0,0)(6,2) \pscurve[showpoints=true]{<->}(0,1.3) (0.7,1.8)(3.3,0.5)(4.3,0.9)(5,0.2)(6,1.2) (5.5,2)(4,1.6)(3.1,0.9)(2.4,1.7)(0.4,0.4) \end{pspicture}

\psecurve[parmetros]{setas}(x1 , y1 ) . . . (xn , yn ) \psecurve*[parmetros]{setas}(x1 , y1 ) . . . (xn , yn ) Isto como \pscurve, mas a curva no estendida ao primeiro e ltimo ponto. Isto til para tentar determinar como a curva deveria unir o primeiro e o ltimo ponto, ou para, como ajustar os pontos intermedirios. Exemplo 39
4 3 2 1 0 0 1 2 3 4

1 2 3

\begin{pspicture}(0,0)(-1,4) \psgrid[subgriddiv=1,griddots=10](0,0)(4,4) \psecurve[showpoints=true](.125,8)(.25,4)(.5,2) (1,1)(2,.5)(4,.25)(8,.125) \end{pspicture}

\psccurve[parmetros]{setas}(x1 , y1 ) . . . (xn , yn ) \psccurve*[parmetros]{setas}(x1 , y1 ) . . . (xn , yn ) Isto interpola uma curva fechada pelos pontos dados.

by Geovane Krger

.................................................................................................... 29

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

Exemplo 40
1

1 0 0 1 2 3 4

\begin{pspicture}(0,0)(-1,1) \psgrid[subgriddiv=1,griddots=10](0,0)(4,1) \psccurve[showpoints=true](.5,0)(3.5,1)(3.5,0) (.5,1) \end{pspicture}

2 3

2.2.10 Pontos
Os objetos grcos \psdot[parmetros](x1 , y1 ) \psdot*[parmetros](x1 , y1 ) \psdots[parmetros](x1 , y1 )(x2 , y2 ) . . . (xn , yn ) \psdots*[parmetros](x1 , y1 )(x2 , y2 ) . . . (xn , yn ) coloca um ponto em cada coordenada. O ponto que ir aparecer depende do estilo especicado no parmetro dotstyle=estilo lembrando que, para os pontos aparecerem necessrio usar showpoints=true. (Padro : dotstyle=*). Os estilos de pontos disponveis esto descritos na tabela ??. Estilo * x asterisk oplus square diamond triangle pentagon

Exemplo

Estilo o + Basterisk otimes square* diamond* triangle* pentagon*

Exemplo

Estilo Bo

Exemplo

+ + + + +
* * * * *

B+ | B| Bsquare Bdiamond Btriangle Bpentagon

+ + + + +
| | | | | | | | | |

* * * * *

Tabela 2.1: Estilos de Ponto .................................................................................................... 30

by Geovane Krger

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

Com exceo do estilo diamond, o centro dos pontos que contm o centro oco pode ser colorido com llcolor. Temos ainda os seguintes parmetros que podem ser usados para escolher o tamanho e a orientao dos pontos: dotsize=dimenso nmero O dimetro de um crculo ou disco : dimenso mais numero linewidth (isso se o valor nmero for especicado). O tamanho dos outros estilos de pontos similar, exceto para o estilo |, que modicado pelo comando tbarsize descrito na pgina ??. (Padro : dotsize=2pt 2). dotscale=nmero1 nmero2 Os pontos so escalado horizontalmente por nmero1 e verticalmente por nmero2. Se incluirmos somente nmero1, os pontos so escalados em ambas as direes por nmero1. (Padro : dotscale=1). dotangle=ngulo Depois de xar e escalar os pontos, estes so rotacionados por ngulo. (Padro : dotangle=1).

2.2.11 Grades
PSTricks tem um macro muito poderoso para fazer grades e papel para grcos, cuja sintaxe : \psgrid[parmetros](x0 , y0 )(x1 , y1 )(x2 , y2 ) Com esse comando desenhamos uma grade com cantos opostos por (x1 , y1 ) e (x2 , y2 ) e so estes que vo descrever o intervalo da numerao dos eixos tambm. Com (x0 , y0 ) ns escolhemos onde que dever aparecer a numerao dos eixos, este parmetro no obrigatrio, e caso no seja especicado, a numerao dos eixos aparecer fora da grade, e o posicionamento depende da ordem das coordenadas (observe os exemplos a seguir). As coordenadas so sempre interpretadas como coordenadas Cartesianas. Exemplo 41
2 1 0 -1 -1 0 1 2 3 4 5 6

1 2 3

\begin{pspicture}(0,-1)(-2,2) \psgrid(0,0)(-1,-1)(6,2) \end{pspicture}

by Geovane Krger

.................................................................................................... 31

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

Exemplo 42
1 0 0 1 2 3 4
1 2 3

\begin{pspicture}(0,0)(-1,1) \psgrid(0,0)(4,1) \end{pspicture}

Exemplo 43
0 1 2 3 4 1 0
1 2 3

\begin{pspicture}(0,0)(-1,1) \psgrid(4,1)(0,0) \end{pspicture}

No que segue, temos os parmetros que podemos usar com \psgrid. gridwidth=dimenso a largura das linhas da grade (padro 0.8pt). gridcolor=cor cor das linhas da grade (padro black). griddots=nmero isso dene as linhas da grade como pontilhadas, com nmero pontos por diviso da grade. nmero tem que ser um nmero no-negativo (padro 0). gridlabels=dimenso o tamanho dos nmeros usados para marcar a grade (padro 10pt). gridlabelcolor=cor cor dos nmeros (padro black). subgriddiv=nmero o nmero de subdivises da grade. Deve ser um nmero inteiro (padro 5). subgridwidth=dimenso
by Geovane Krger

.................................................................................................... 32

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

largura das linhas da sub-grade (padro 0.4pt). subgridcolor=cor cor das linhas da sub-grade (padro gray). subgriddots=nmero como griddots, mas para as subdivises (padro 0). Exemplo 44
1
1

\begin{pspicture}(0,-1)(-2,1) \psgrid[subgriddiv=1,griddots=10,gridlabels=7pt ](-1,-1)(3,1) \end{pspicture}

-1 -1 0 1 2 3

Observao 2.1 \psgrid s permite o uso de 500 divises e 500 subdivises no mximo.

2.2.12 Mais Parmetros Grcos


shadow=true/false quando true (verdadeiro), a sombra desenhada (padro false). A distncia da sombra dada por shadowsize=dimenso (padro : shadowsize=3pt). A direo da sombra dada por shadowangle=ngulo (padro : shadowangle=-45). E a cor da sombra dado por shadowcolor=cor (padro : shadowcolor=darkgray).

by Geovane Krger

.................................................................................................... 33

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

Exemplo 45
1 2

\begin{pspicture}(0,-1)(-2,1) \pspolygon[linearc=2pt,shadow=true,shadowangle=45, shadowcolor=gray](-1,-.55)(-1,.5)(-.8,.5) (-.8,.65)(-.2,.65)(-.2,.5)(1,.5)(1,-.55) \end{pspicture}

Temos mais outro parmetro grco relacionado a linhas, mas isto s pode ser aplicado o objetos grco fechados, como \psframe, \pscircle, \psellipse e \pswedge. dimen=outer/inner/middle isto determina se as dimenses esto se referindo ao interior, exterior ou o meio das fronteiras. A diferena notvel quando o linewidth grande (padro : dimen=outer). Exemplo 46
3 2
3 1 2

\begin{pspicture}(0,0)(-1,3) \psgrid[subgriddiv=1,griddots=15,gridcolor=red ](0,0)(4,3) \psset{linewidth=.2cm} \psframe[dimen=inner](0,0)(2,1) \psframe[dimen=middle](0,2)(2,3) \psframe[dimen=outer](3,0)(4,3) \end{pspicture}

1 0 0 1 2 3 4

4 5 6 7

2.2.13 Estilos de Costume


Caso tenha algum macro que usamos bastante e este contenha bastante parmetros opcionais, ns podemos denir este macro como uma verso personalizada e depois us-lo como um comando, em vez de precisar car digitando todos os parmetros toda vez que for usar este macro. Isto possvel com o seguinte comando: \newpsobject{nome}{objeto}{parmetro1=valor1, . . . } por exemplo:

by Geovane Krger

.................................................................................................... 34

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

Exemplo 47
2 1 2 1 3 0 0 1 2 3 4 4

\begin{pspicture}(0,0)(-1,2) \newpsobject{grade}{psgrid}{subgriddiv=1,griddots =10,gridlabels=6pt} \grade(0,0)(4,2) \end{pspicture}

Alm de congurar um novo objeto, ns tambm podemos congurar somente um novo estilo com o comando: \newpsstyle{nome}{parmetro1=valor1, . . . } por exemplo: Exemplo 48
1 2

\begin{pspicture}(0,0)(-1,1) \newpsstyle{meuestilo}{linecolor=blue, linestyle=dashed,linewidth=2mm} \psline[style=meuestilo]{<->}(0,0)(6,1) \end{pspicture}

3 4

2.2.14 Colocando e Rotacionando Coisas e Textos


Temos a seguir dois comandos que podemos usar para adicionar textos nas guras, estes comandos podem ser usados em qualquer lugar, no necessrio que estes estejam localizados dentro de um ambiente pspicture. O comando mais bsico, que pode ser usado no s para texto : \rput[Referncia]{rotao}(x, y){Materiais} Referncia determina o ponto de referncia dos Materiais, e este ponto transladado para (x, y). Por padro, o ponto de referncia o centro da caixa onde ca os materiais e pode ser mudado incluindo uma ou duas das seguintes letras no argumento opcional Referncia.
l Esquerda r Direita t Topo b Base B Linha de Base

Este primeiro como j mencionamos, pode ser usado para colocar objetos, textos, rtulos em qualquer lugar, mas PSTricks tem uma variao do comando anterior, o qual especco para textos e rtulos .................................................................................................... 35

by Geovane Krger

Cap. 2 O Pacote pstricks


tl t

2.2 Estabelecendo Parmetros Grcos tr

Bl _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ Br bl b br

Figura 2.1: Localizao dos Pontos de Referncia e Suas Combinaes \uput{Separao}[ngulo de Referncia]{Rotao}(x, y){Texto} Isto coloca o Texto a uma distncia Separao de (x, y), na direo do ngulo de Referncia (Separao e Rotao so argumentos opcionais, do mesmo modo no comando anterior, Referncia e Rotao so opcionais). Exemplo 49
1 2

\begin{pspicture}(0,-3)(-3,3) \pswedge[fillstyle=solid,fillcolor=gray ]{2.4}{0}{70} \pswedge[fillstyle=solid,fillcolor=lightgray ]{2.4}{70}{200} \pswedge[fillstyle=solid,fillcolor=darkgray ]{2.4}{200}{360} \SpecialCoor \psset{framesep=1.5pt} \rput(1.4;35){\psframebox*{\small Texto 1}} \uput{2.5}[45](0,0){Texto 4} \rput(1.4;135){\psframebox*{\small Texto 2}} \uput{2.5}[135](0,0){Texto 5} \rput(1.4;280){\psframebox*{\small Texto 3}} \uput{2.5}[280](0,0){Texto 6} \end{pspicture}

Texto 5
Texto 2 Texto 1

Texto 4
4

5 6 7

Texto 3

8 9 10

Texto 6

11 12 13

Temos ainda as seguintes abreviaes que podemos usar em ngulo de referncia para simplicar alguns ngulos. Letra r u l d Direo Direita Acima Esquerda Abaixo ngulo 0 90 180 270 Letra ur ul dl dr Direo Canto Direito Superior Canto Esquerdo Superior Canto Esquerdo Inferior Canto Direito Inferior ngulo 45 135 225 315

by Geovane Krger

.................................................................................................... 36

Cap. 2 O Pacote pstricks

2.2 Estabelecendo Parmetros Grcos

2.2.15 Repeties
O macro \multirput[Referncia]{ngulo}(x0 , y0 )(x1 , y1 ){Repeties}{Material} uma variao de \rput que faz um determinado nmero de cpias especicado em Repeties, iniciando em (x0 , y0 ) e avanando de (x1 , y1 ) at completar o nmero de repeties, lembre-se estes pontos so interpretados como coordenadas cartesianas (Referncia, ngulo e a coordenada (x0 , y0 ) so opcionais). Exemplo 50
1 2 3

\begin{pspicture}(0,0)(-4,1.5) \multirput(.5,0)(.3,.05){25}{*} \end{pspicture}

* **** **** **** **** **** ****

Se estivermos am de querer cpias de grcos puros, o seguinte macro mais eciente para ser usado \multips{ngulo}(x0 , y0 )(x1 , y1 ){Repeties}{Grcos} Grcos podem ser um ou mais de um objetos de grcos puros j descritos anteriormente ou grcos de \pscustom que sero descritos logo a seguir. Ao contrrio de \multirput, as coordenadas podem ser de qualquer tipo. Exemplo 51
1 2 3 4 5

\begin{pspicture}(0,-1)(-1,1) \def\zigzag{\psline(0,0)(.5,1)(1.5,-1)(2,0)} \psset{unit=.25,linewidth=1.5pt} \multips(0,0)(2,0){8}{\zigzag} \end{pspicture}

by Geovane Krger

.................................................................................................... 37

Cap. 2 O Pacote pstricks

2.3 Grcos Personalizados

Exemplo 52
0.3 0.4 0.1 0.5 0.0 0.6 1.0 0.7 0.8 0.9 0.2
1 2 3 4 5 6 7 8 9 10 11

\begin{pspicture}(0,-3)(-4,3) \definecolor{hsb}{hsb}{0,1,1} \psset{fillstyle=solid,fillcolor=hsb} \SpecialCoor \degrees[1.1] \multido{\n=0.0+0.1}{11}{% \definecolor{hsb}{hsb}{\n,1,1}% \psset{fillcolor=hsb}% \rput{\n}{\pswedge{3}{-.05}{.05}} \uput{3.2}[\n](0,0){\small\n}} \end{pspicture}

2.3 Grcos Personalizados


PSTricks contm uma grande paleta de objetos para grcos, mas s vezes precisamos algo especial, como colorir uma regio entre duas curvas. Isso possvel com o comando \pscustom[parmetros]{comandos} \pscustom*[parmetros]{comandos} Revisemos como PostScript controla grcos. Um caminho uma linha, no sentido matemtico e no no sentido visual. Um caminho pode ter vrios segmentos desconectados e, podem ser abertos ou fechados. PostScript tem vrios operadores para fazer caminhos e o m de um caminho chamado de ponto atual, portanto se no h nenhum caminho no existe nenhum ponto atual. Para transformar o caminho em algo visual, PostScript pode preencher a regio entre os caminhos e pincelar o caminho. No comeo no teremos nenhum caminho, apenas apresentaremos vrios comandos que podem ser usados dentro de \pscustom para desenhar os caminhos. \pscustom preenche e pincela o caminho at o m, e para efeitos especiais, ns podemos preencher e pincelar o caminho usando \fill e \stroke.

2.3.1 Parmetros
Precisamos guardar em mente a separao entre desenhar, pincelar e preencher os caminhos quando estabelecemos os parmetros grcos. Os parmetros linewidth e linecolor afetam o desenho de setas, mas desde que os comandos de caminho no pincelem ou preencham os caminhos, estes parmetros mais linestyle, llstyle e parmetros relacionados, no tem nenhum outro efeito.
by Geovane Krger

.................................................................................................... 38

Cap. 2 O Pacote pstricks

2.3 Grcos Personalizados

Os parmetros shadow, border, doubleline e showpoints so desativados em \pscustom Os estilos de linhas pontilhados e tracejados precisam saber algo sobre os caminhos para ajustar o trao ou o ponto adequadamente. Est informao dada atravs do parmetro linetype=valor os valores que podemos usar so especicados na Tabela ?? (valor padro 0). Se o caminho conter mais que um segmento desconectado, no h nenhum modo apropriado para ajustar o trao ou ponto modelo, nesse caso o melhor deixar o valor padro para linetype. A seguir temos a tabela com os valores para caminhos simples: Valor 0 -1 -2 -3 1 n>1 Tipo de Caminho Curva aberta sem setas Curva aberta com uma seta no incio Curva aberta com uma seta no nal Curva aberta com uma seta em ambos ns Curva fechada com nenhuma simetria particular Curva fechada com n segmentos simtricos Tabela 2.2: Valores para linetype

2.3.2 Objetos Grcos


Ns podemos usar a maioria dos objetos de grcos dentro de \pscustom. Estes iro desenhar caminhos e fazer setas, mas no iro preencher nem pincelar os caminhos. H trs tipos de objetos de grcos: Especiais Objetos de grcos especiais incluem \psgrid e \psdots. Estes objetos no podem ser usados dentro de \pscustom. Fechados Todos os objetos de grcos fechados podem ser usados dentro de \pscustom, mas o efeito deles imprevisvel. Normalmente usa-se curvas abertas mais \closepath (veja abaixo) para desenhar curvas fechadas. Abertos Os objetos de grcos abertos so os comandos mais teis para desenhar caminhos com \pscustom. Fazendo vrias curvas abertas podemos desenhar caminhos arbitrrios. No restante desta seo s trataremos dos objetos de grcos abertos. Por padro, as curvas abertas desenham um linha reta entre o ponto atual, se existir, e comeo da outra curva, exceto quando a curva comear com uma seta, veja o exemplo.
by Geovane Krger

.................................................................................................... 39

Cap. 2 O Pacote pstricks

2.3 Grcos Personalizados

Exemplo 53
3
1

\begin{pspicture}(0,0)(-1,3) \psgrid[subgriddiv=1,griddots=10](0,0)(3,3) \pscustom{ \psarc(0,0){1.5}{5}{85} \psarcn{->}(0,0){3}{85}{5}} \end{pspicture}

2 1 0 0 1 2 3

2 3 4 5 6

As seguintes curvas tambm fazem o uso do ponto atual, se existir, como uma primeira coordenada: psline, pscurve e o comando psbezier se ns incluirmos somente trs coordenadas. Porm, ns podemos controlar como as curvas abertas tratam o ponto atual com o seguinte parmetro: liftpen=valor Se liftpen=0 (padro) temos o comportamento do exemplo abaixo, isto , existe o ponto atual e existe a linha que a une as curvas. Exemplo 54
3 2 1 0 0 1 2 3 4 5
1 2 3

\begin{pspicture}(0,0)(-1,3) \psgrid[subgriddiv=1,griddots=10](0,0)(5,3) \pscustom[linewidth=2pt,fillstyle=solid,fillcolor= lightgray]{% \pscurve(0,2)(1,2.5)(2,1.5)(4,3) \pscurve(4,1)(3,0.5)(2,1)(1,0)(0,.5)} \end{pspicture}

4 5 6

Se liftpen=1 as curvas no usam o ponto atual como primeira coordenada (exceto \psbezier, mas podemos evitar isto incluindo explicitamente a primeira coordenada como um argumento. Exemplo 55
3 2 1 0 0 1 2 3 4 5
1 2 3

\begin{pspicture}(0,0)(-1,3) \psgrid[subgriddiv=1,griddots=10](0,0)(5,3) \pscustom[linewidth=2pt,fillstyle=solid,fillcolor= lightgray]{% \pscurve(0,2)(1,2.5)(2,1.5)(4,3) \pscurve[liftpen=1](4,1)(3,0.5)(2,1)(1,0)(0,.5)} \end{pspicture}

4 5 6

Se liftpen=2, as curvas no usam o ponto atual como primeira coordenada e tambm no desenhada a linha entre o ponto atual e o incio da curva.
by Geovane Krger

.................................................................................................... 40

Cap. 2 O Pacote pstricks

2.3 Grcos Personalizados

Exemplo 56
3 2 1 0 0 1 2 3 4 5
1 2 3

\begin{pspicture}(0,0)(-1,3) \psgrid[subgriddiv=1,griddots=10](0,0)(5,3) \pscustom[linewidth=2pt,fillstyle=solid,fillcolor= lightgray]{% \pscurve(0,2)(1,2.5)(2,1.5)(4,3) \pscurve[liftpen=2](4,1)(3,0.5)(2,1)(1,0)(0,.5)} \end{pspicture}

4 5 6

2.3.3 Truques de Segurana


Os comandos descritos a seguir podem ser todos usados dentro do comando \pscustom. \newpath Anula todos os caminhos e o ponto atual anteriores a este comando. Observe o exemplo a seguir, no ir aparecer gura nenhuma. Exemplo 57
1 2

\begin{pspicture}(0,0)(-1,3) \pscustom[linewidth=2pt,fillstyle=solid,fillcolor= Violet]{ \pscurve[liftpen=2](0,2)(1,2.5)(2,1.5)(4,3) \newpath} \end{pspicture}

3 4 5

\moveto(coordenada) Move o ponto atual para (x, y). \closepath Isto fecha o caminho, unindo o comeo e m de cada pedao (pode haver mais de um pedao se usarmos \moveto).

by Geovane Krger

.................................................................................................... 41

Cap. 2 O Pacote pstricks

2.3 Grcos Personalizados

Exemplo 58
1

\begin{pspicture}(0,-1)(-1,1) \psgrid[subgriddiv=1,griddots=10](0,-1)(3,1) \pscustom[linewidth=1.5pt,fillstyle=solid, fillcolor=Violet]{ \pscurve(0,0)(0.5,1)(1,-1)(1.5,1)(2,-1)(2.5,1) (3,0) \closepath} \end{pspicture}

1 0

2 3

-1 0 1 2 3
5 6

\stroke[Parmetros] Com isto pincelamos o caminho. \pscustom j pincela automaticamente o caminho, mas com isso podemos pincelar duas vezes ou mais o caminho, por exemplo, adicionar uma borda. Exemplo 59
1 2 3 4 5 6 7 8 9

\begin{pspicture}(0,0)(-1,3) \pscustom[linecolor=white,linewidth=1pt]{% \psline(0,0)(3,3) \stroke[linewidth=70\pslinewidth,linecolor=black] \stroke[linewidth=40\pslinewidth] \stroke[linewidth=20\pslinewidth,linecolor=black] \stroke[linewidth=10\pslinewidth] \stroke[linewidth=5\pslinewidth,linecolor=black]} \end{pspicture}

\ll[Parmetros] Isto preenche a regio, mas \pscustom preenche a regio muito bem. \gsave & \grestore \gsave salva a condio atual do grco (isto , o caminho, cor, largura da linha, coordenadas, etc.) e \grestore restabelece as condies do grco. Ns sempre devemos usar \gsave e \grestore em pares aninhados corretamente.

by Geovane Krger

.................................................................................................... 42

Cap. 2 O Pacote pstricks

2.3 Grcos Personalizados

Exemplo 60
1

\begin{pspicture}(0,0)(-1,3) \psgrid[subgriddiv=1,griddots=10](0,0)(4,3) \pscustom[linewidth=1.5pt]{ \psline(0,3)(4,1) \gsave \psline(4,3) \fill[fillstyle=solid,fillcolor=Salmon] \grestore} \end{pspicture}

3 2 1 0 0 1 2 3 4

2 3 4 5 6 7 8 9

Observe que no exemplo acima, a linha que est dentro de \gsave no desenhada, essa uma das grandes utilidades deste comando, podemos preencher grandes regies sem que as linhas que o determinam sejam desenhadas. Observe no exemplo a seguir, que usando o \gsave conseguimos montar a mesma curva usada nos exemplos anteriores sem desenhar uma linha unindo as duas. Exemplo 61
1 2 3 4 5 6 7 8

\begin{pspicture}(0,0)(-1,3) \pscustom[linewidth=1.5pt]{ \pscurve(0,2)(1,2.5)(2,1.5)(4,3) \gsave \pscurve[liftpen=1](4,1)(3,0.5)(2,1)(1,0)(0,.5) \fill[fillstyle=solid,fillcolor=MidnightBlue] \grestore} \pscurve[linewidth=1.5pt](4,1)(3,0.5)(2,1)(1,0) (0,.5) \end{pspicture}

Os prximos comandos so usados para modicar o sistema de coordenadas. \translate(x, y) Translada o sistema de coordenadas para (x, y). Isto troca tudo o que vem depois de (x, y), mas no afeta o que j foi desenhado. \scale{nmero1 nmero2} Se colocarmos somente nmero1, escalamos o sistema de coordenadas em ambas as direes pelo valor dado, ou ento, escala horizontal por nmero1 e vertical por nmero2. \rotate{ngulo}
by Geovane Krger

.................................................................................................... 43

Cap. 2 O Pacote pstricks

2.3 Grcos Personalizados

Faz uma rotao do sistema de coordenadas em relao a origem de acordo com o valor ngulo. \swapaxes Troca as coordenadas x e y. A seguir temos alguns truques para sombras: \openshadow[Parmetros] Pincela uma rplica do caminho atual, usando os vrios parmetros de sombras. \closedshadow[Parmetros] Faz uma sombra da regio includa pelo caminho atual como se fosse regies opacas. \movepath(x, y) Desloca o caminho para (x, y). Use \gsave-\grestore se voc no quer perder o caminho original. Exemplo 62
1 2 3 4 5 4 6 7 3 8 9 2 10 11 1 12 13 0 -2 -1 -1 0 1 2 3 4 14 15 16 17 -2 18

\definecolor{Amarelo}{cmyk}{0,0,0.1,0} \begin{pspicture}(0,-2)(-2,4) \pscustom[linewidth=2pt,linecolor=Dandelion]{ \translate(1,1) \rotate{45} \gsave \psellipse(0,0)(3,2) \fill[fillstyle=solid,fillcolor=Amarelo] \grestore \psellipse(0,0)(3,2)} \pscustom[linewidth=1.5pt,linecolor=Blue]{ \translate(1,1) \rotate{45} \psline(-4,0)(4,0) \psline[liftpen=2](0,-4)(0,4)} \psline[linewidth=1.5pt](-2,0)(4,0) \psline[linewidth=1.5pt](0,-2)(0,4) \psline[linewidth=1.5pt,linecolor=Green](-2,1) (4,1) \psline[linewidth=1.5pt,linecolor=Green](1,-2) (1,4) \psgrid[subgriddiv=1,griddots=5,gridlabels=6pt ](0,0)(-2,-2)(4,4) \end{pspicture}

19

20

21

by Geovane Krger

.................................................................................................... 44

Cap. 2 O Pacote pstricks

2.4 Truques Para Textos

2.4 Truques Para Textos


J mencionamos anteriormente, na seo ??, dois comandos que podemos utilizar para adicionar textos no meio das guras, ou colocar rtulos em guras. Nesta seo, teremos mais alguns comandos muito interessantes para manipularmos os textos nas guras e tambm para manipularmos as guras.

2.4.1 Caixas com Molduras


Os macros para molduras so considerados objetos compostos em vez de objetos de grcos puros. Alm dos parmetros de grcos para \psframe, estes macros usam os seguintes parmetros: framesep=dimenso Distncia entre cada lado da moldura e a caixa includa (Padro 3pt). boxsep=true/false Quando verdadeiro (true, que o padro), a caixa que produzida do tamanho da moldura ou tudo que desenhado ao redor do objeto. Quando falso (false), a caixa que produzida do tamanho de tudo que est dentro, e assim a armao transparente. Este parmetro s aplicado para os macros \psframebox, \pscirclebox e \psovalbox (todos sero descritos a seguir). Temos a seguir o primeiro dos trs macros: \psframebox[parmetros]{Materiais} \psframebox*[parmetros]{Materiais} Uma armao simples (talvez com cantos arredondados) desenhado usando \psframe. A opo * para gerar uma armao de cor slida cuja cor dada pelo parmetro llcolor. Recordando que o valor padro de llcolor branco, causando o efeito de destruir tudo o que estiver atrs da caixa. Exemplo 63
1 2

\begin{pspicture}(0,0)(-1,2) \pspolygon[fillcolor=gray,fillstyle=crosshatch *](0,0)(2,0)(3,1)(3,2)(2,2) \rput(2,1){\psframebox*[framearc=.5]{Texto}} \end{pspicture}

Texto
3 4

\psdblframebox[Parmetros]{Materiais}
by Geovane Krger

.................................................................................................... 45

Cap. 2 O Pacote pstricks

2.4 Truques Para Textos

\psdblframebox[Parmetros]{Materiais} Isto desenha uma moldura dupla. como uma variao de \psframebox. Exemplo 64 Uma moldura dupla desenhada com abertura entre linha igual a doublesep
4 1 2 3

\begin{pspicture}(0,-1)(-.5,1) \psdblframebox[linewidth=1.5pt]{ \parbox[c]{5cm}{\raggedright Uma moldura dupla desenhada com abertura entre linha igual a \texttt{doublesep}}} \end{pspicture}

\psshadowbox[Parmetros]{Materiais} \psshadowbox*[Parmetros]{Materiais} Isto desenha uma moldura simples com sombra. \pscirclebox[Parmetros]{Materiais} \pscirclebox*[Parmetros]{Materiais} Isto desenha um crculo, com boxsep=true. \cput[Parmetros]{ngulo}(x, y){Materiais} \cput*[Parmetros]{ngulo}(x, y){Materiais} Isto combina as funes de \pscirclebox e \rput. Ao contrrio do comando \rput, este no contm o argumento de ponto de referncia, sempre localizado no centro da caixa. Exemplo 65
1

\begin{pspicture}(0,0)(-2,1) \cput[doubleline=true](1,.5){\large $\Psi_1$} \end{pspicture}

2 3

\psovalbox[Parmetros]{Materiais} .................................................................................................... 46

by Geovane Krger

Cap. 2 O Pacote pstricks

2.4 Truques Para Textos

\psovalbox*[Parmetros]{Materiais} Isto desenha uma ellipse. \psdiabox[Parmetros]{Materiais} \psdiabox*[Parmetros]{Materiais} Desenha um losango. \pstribox[Parmetros]{Materiais} \pstribox*[Parmetros]{Materiais} Isto desenha um tringulo, apontando na direo: trimode=*U/D/R/L se incluirmos *, que opcional, ento desenhado um tringulo equiltero, caso contrrio, desenhado um tringulo issceles de menor rea possvel. Exemplo 66
1

\psovalbox[linecolor=darkgray]{\Large\textbf{Ex1}}

Ex1
1

\psdiabox[shadow=true]{\Large\textbf{Ex2}}

Ex2
1

\pstribox[trimode=R,framesep=5pt]{\Large\textbf{Ex3}}

Ex3
1

\pstribox[trimode=*U]{\Large\textbf{Ex4}}

Ex4
.................................................................................................... 47

by Geovane Krger

Cap. 2 O Pacote pstricks

2.4 Truques Para Textos

2.4.2 Rotao e Escala de Caixas


Estes macros so as verses padres para rotao de caixas: \rotateleft{Materiais} \rotateright{Materiais} \rotatedown{Materiais} Exemplo 67

Esquerda

\begin{pspicture}(0,0)(-1,2) {\Large\bfseries\rotateleft{Esquerda}\rotatedown{ Abaixo}\rotateright{Direita}} \end{pspicture}

Temos agora dois macros para escala de caixas: \scalebox{nmero1}[nmero2]{Materiais} Se ns utilizarmos os dois nmeros no momento de escalar a caixa, nmero1 usado para escalar horizontalmente e nmero2 usado para escalar verticalmente. Se utilizarmos somente nmero1, a caixa escalada igualmente em ambas as direes. No podemos colocar escala 0, mas nmeros negativos so aceitos, e tem o efeito de girar a caixa ao redor do eixo. Exemplo 68

Direita

odnarig
2.4.3 Recortando
Com o comando \begin{psclip} {grcos delimitadores} . . . \end{psclip}

grcos delimitadores faz um caminho cortado ou um grco que serve como limite para as demais coisas que aparecero antes de \end{psclip}
by Geovane Krger

.................................................................................................... 48

Abaixo

\scalebox{-2}[2]{girando}

Cap. 2 O Pacote pstricks

2.4 Truques Para Textos

Exemplo 69
1 2 3 4

\begin{pspicture}(0,0)(-1,2) \parbox{4cm}{% \begin{psclip}{ \psline[linestyle=none](-0.5,0.3)(0.5,-1)(-0.5,-2) (0.5,-3)(1,-4)(2,-3)(3,-4)(4,-2)(3.6,-1) (4.2,0.3)(3,.3)(2.5,-1)(2,.3)(-0.5,0.3)} O que para alguns um problema para outros um exerccio e para alguns outros uma distrao .\\ (Ditado popular) \end{psclip}} \end{pspicture}

O que para alguns um problema para outros um exerccio e para alguns outros uma distrao. (Ditado popular)
6 7 5

Se no queremos que aparea o esboo do caminho, devemos incluir linestyle=none na escolha dos parmetros. Tambm podemos incluir mais do que um objeto de grco no argumento, e neste caso o caminho recortado ser a interseo dos caminhos, ou ento obscurecer a regio entre duas curvas, observer o exemplo a seguir. Exemplo 70
1 2 3

%\usepackage{pst-plot}
\begin{pspicture}(0,0)(-1,4) \begin{psclip} {\pscustom[linestyle=none]{ \psplot{.5}{4}{2 x div} \psline(4,4)} \pscustom[linestyle=none]{ \psplot{0}{3}{3 x x mul 3 div sub} \psline(0,0)}} \psframe*[linecolor=gray](0,0)(4,4) \end{psclip} \psplot[linewidth=1.5pt]{.5}{4}{2 x div} \psplot[linewidth=1.5pt]{0}{3}{3 x x mul 3 div sub } \psaxes(4,4) \end{pspicture}

4 3 2 1 0 0 1 2 3 4

4 5 6 7 8 9 10 11 12 13

14 15

Observao 2.2 No exemplo acima, usamos o pacote pst-plot para plotar as curvas, este pacote ser explicado no captulo ??. Observe que, com o uso de psclip e pscustom conseguimos obscurecer apenas a regio que encontra-se entre as duas curvas.

by Geovane Krger

.................................................................................................... 49

Captulo

O Pacote pstricks-add Parte 1


O pacote pstricks-add so macros adicionais para o pacote pstricks, importante salientar que pstricksadd sempre ser um pacote experimental e dinmico e seu uso de nosso prprio risco. Para usarmos este pacote devemos adicionar no prembulo o seguinte comando: \usepackage{pstricks-add} Foi de minha deciso, quebrar a explicao sobre este pacote em quatro captulos, onde na primeira parte falaremos sobre macros adicionais ao pacote pstricks visto anteriormente, na segunda parte (Captulo ??) iremos tratar de macros adicionais ao pacote pst-plot que ser visto no captulo ??, logo depois deste captulo. Na terceira parte (Captulo ??) trataremos de macros adicionais para o pacote pst-node que encontr-se no captulo ?? e por m, a quarta parte (Captulo ??) traremos novos comandos e novos ambientes para serem usados. Antes de comearmos, necessrio fazer duas observaes importantes: Observao 3.1 importante adicionarmos este pacote no prembulo depois de todos os outros pacotes PSTricks relacionados, caso contrrio muito dos macros trabalharo de um modo inexperado. Observao 3.2 pstricks-add usa a verso extendida do pacote keyval. Portanto, tenha certeza que voc tenha instalado pst-xkey o qual faz parte do pacote xkeyval.

3.1 Funes Numricas


Todos os macronomes contm um @ em seus nomes, pois eles so para uso interno, mas ns podemos us-los sem problema nenhum como qualquer outro macro. Tambm podemos deni-los com um outro nome sem @ da seguinte maneira:

50

Cap. 3 O Pacote pstricks-add Parte 1

3.1 Funes Numricas

\makeatletter \let\pstdivide\pst@divide \makeatother ou colocar o macro sempre inserido dentro da seqncia \makeatletter\makeatother.

3.1.1 pst@divide
PSTricks tem seu prprio macro de diviso, o qual pode dividir dois comprimentos e salvar o quociente como um nmero de ponto utuante. Este macro denido pela seguinte linha de comando \pst@divide{dividendo}{divisor}{resultado deve ser um macro} Em resultado deve ser um macro signica que o resultado vai ser posto em um comando que ns devemos denir o nome, e para aparecer o resultado basta usar este nome. Exemplo 71
1

\makeatletter \pst@divide{34pt}{6pt}\quociente \quociente \newline \pst@divide{-6pt}{34pt}\quotient \quotient \makeatother

5.66666 -0.17647

2 3 4 5

observe que o resultado no um comprimento.

3.1.2 pst@mod
pstricks-add dene uma funo adicional para mdulos: \pst@mod{inteiro}{inteiro}{resultado deve ser um macro} Exemplo 72
1

\makeatletter \pst@mod{34}{6}\modulo \modulo \newline \pst@mod{25}{-6}\modulo \modulo \makeatother

4 1

2 3 4 5

by Geovane Krger

.................................................................................................... 51

Cap. 3 O Pacote pstricks-add Parte 1

3.1 Funes Numricas

3.1.3 pst@max
\pst@max{inteiro}{inteiro}{resultado como um registro de conta} Exemplo 73
1 2

\newcount\maximo \makeatletter \pst@max{-34}{-6}\maximo \the\maximo \newline \pst@max{0}{11}\maximo \the\maximo \makeatother

-6 11

3 4 5 6

3.1.4 pst@maxdim
\pst@maxdim{dimenso}{dimenso}{resultado como um registro de dimenso} Exemplo 74
1 2

\newdimen\dim \makeatletter \pst@maxdim{34cm}{1234pt}\dim \the\dim \newline \pst@maxdim{34cm}{123pt}\dim \the\dim \makeatother

1234.0pt 967.39369pt

3 4 5 6

3.1.5 pst@abs
\pst@abs{inteiro}{resultado como um registro de conta} Exemplo 75
1 2

\newcount\abs \makeatletter \pst@abs{-34}{\abs} \the\abs \newline \pst@abs{5}{\abs} \the\abs \makeatother

34 5

3 4 5 6

by Geovane Krger

.................................................................................................... 52

Cap. 3 O Pacote pstricks-add Parte 1

3.2 Linhas Tracejadas

3.1.6 pst@absdim
\pst@absdim{dimenso}{resultado como um registro de dimenso} Exemplo 76
1 2

\newdimen\absdim \makeatletter \pst@absdim{-34cm}{\absdim} \the\absdim \newline \pst@absdim{5sp}{\absdim} \the\absdim \makeatother

967.39369pt 0.00008pt

3 4 5 6

3.2 Linhas Tracejadas


Linhas tracejadas ganharam um aumento na quantidade de argumentos, este agora ilimitado no pacote,
A quer dizer o limite a memria do LTEX pstricks-add. Essa caracterstica foi implementada por Tobias Nhring.

dash=dimenso1 dimenso2 dimenso3 . . . Exemplo 77


5
1

\begin{pspicture}(0,0)(-1,5) \psgrid[subgriddiv=1,griddots=10](0,0)(4,5) \psset{linewidth=1pt,linestyle=dashed} \pscurve[dash=4mm 1mm 1mm 1mm 1mm 1mm](0,5)(2,4) (3,3)(4,0) \psline[dash=5mm 1mm 1mm 1mm 3mm 1mm 1mm 1mm, linecolor=blue](0,0)(4,0) \pscurve[dash=4mm 1mm 1mm 2mm 1mm 1mm,linecolor= red](0,0)(1,3)(2,1)(3,5)(4,2) \end{pspicture}

4 3 2 1 0 0 1 2 3 4

2 3 4

3.3 Mltiplos rput


PSTricks tem o comando \multirput j visto anteriormente, mas no possvel colocar com uma distncia diferente de um ponto para outro os objetos. Isto possvel com o comando: \rmultiput[parmetros]{Materiais}(x1 , y1 )(x2 , y2 ) . . . (xn , yn )
by Geovane Krger

.................................................................................................... 53

Cap. 3 O Pacote pstricks-add Parte 1

3.4 Rotacionando Objetos

Exemplo 78


4 3 2 1 0

1 2 3

\begin{pspicture}(0,0)(-1,4) \psgrid[subgriddiv=1,griddots=10](0,0)(4,4) \rmultiput[rot=45]{\green\psscalebox{2}{\ding {250}}} (0,0)(1,1)(3,2)(1.5,3)(3,3)(3.8,2) \rmultiput[rot=90,ref=lC]{\blue\psscalebox{2}{\ ding{253}}} (0,1)(3,2.5)(2,1)(1,2)(3,3.5)(4,3.7) \end{pspicture}

4 5

as setas feitas pelo comando \ding usa o pacote \usepackage{pifont}, o qual vem incluso com o pacote \usepackage{symbol}.

3.4 Rotacionando Objetos


Com \psrotate o centro de rotao pode ser colocado em qualquer lugar, diferente de com \rput. \psrotate[parmetros](x, y){ngulo de rotao}{Objetos} onde (x, y) o centro de rotao. Exemplo 79
4 3 2 1 0 0 1 2 3 4 5
1 2 3 4 5

\begin{pspicture}(0,0)(-1,4) \psgrid[subgriddiv=1,griddots=10](0,0)(5,4) \psdots[linecolor=red,dotscale=1](1.5,1.5) \psarc[linecolor=red]{->}(1.5,1.5){3}{0}{60} \pspolygon[linecolor=blue](1.5,1.5)(3,0)(4.5,1.5) (2,3) \psrotate[linecolor=green](1.5,1.5){60}{\pspolygon (1.5,1.5)(3,0)(4.5,1.5)(2,3)} \end{pspicture}

3.5 Braos
Com o macro \[parmetros](A)(B){texto}
by Geovane Krger

.................................................................................................... 54

Cap. 3 O Pacote pstricks-add Parte 1

3.5 Braos

podemos colocar braos em qualquer posio. A opo \SpecialCoor carregada automaticamente e, assim todos os tipos de coordenadas podem ser usadas para ligar os braos. No exemplo a seguir, usamos coordenadas cartesianas, mas poderiamos ter usado nodos como coordenadas. Exemplo 80
4

o xt Te

1 2 3

\begin{pspicture}(0,0)(-1,4) \psgrid[subgriddiv=1,griddots=10](0,0)(3,4) \psbrace[linecolor=Orange,ref=lC](0,0)(3,3){Texto 1} \psbrace[linecolor=Yellow,ref=lC](3,4)(0,1){Texto 2} \end{pspicture}

3 2 1

o xt Te

0 0 1

1
2 3

3.5.1 Opes
Os parmetros mais importantes esto relacionados na tabela a seguir. lgico que os outros parmetros de PSTricks so vlidos tambm. Nome braceWidth bracePos linearc nodesepA nodesepB rot ref Funo Abertura do brao (Padro: 0.35) Posio relativa (Padro: 0.5) valor absoluto do arco (Padro: 2mm) x-separao (Padro: 0pt) y-separao (Padro: 0pt) Rotao adicional para o texto (Padro: 0) Ponto de referncia para o texto (Padro: c) Tabela 3.1: Principais parmetros para braos Por padro, o texto escrito perpendicularmente a linha do brao e pode ser mudado com o parmetro rot. Na linha de comando do macro onde est escrito texto, na verdade pode ser qualquer objeto ou pode ser vazio tambm. O ponto de referncia pode ser a combinao dos valores l (Esquerda) ou r (Direita) com b (base) ou B (Linha de Base) ou C (Centro) ou t (Topo), onde o padro c, que o centro do objeto.

by Geovane Krger

.................................................................................................... 55

Cap. 3 O Pacote pstricks-add Parte 1

3.6 Pontos Aleatrios

Exemplo 81
1

\begin{pspicture}(0,0)(-1,2.5) \psbrace[ref=lC](0,0)(5,0){\fbox{Texto 1}} \psbrace[bracePos=0.25,rot=90,nodesepB=-5pt](0,1) (5,1){Texto 2} \psbrace[ref=lC,nodesepA=-2.4cm,nodesepB=-10pt,rot =90](0,2.5)(5,2.5){\fbox{Um texto bastante longo}} \end{pspicture}

Um texto bastante longo

2 3

Texto 2
5

Texto 1

Exemplo 82
1 2 3 4

\begin{pspicture}(0,0)(-1,2) $\begin{pmatrix} \Rnode[vref=2ex]{A}{~1} \\ & \ddots \\ && \Rnode[href=2]{B}{1} \\ &&& \Rnode[vref=2ex]{C}{0} \\ &&&& \ddots \\ &&&&& \Rnode[href=2]{D}{0}~ \\ \end{pmatrix}$ \psbrace[linewidth=0.1pt,rot=-90,nodesep=0.2](B)(A ){\small n times} \psbrace[linewidth=0.1pt,rot=-90,nodesep=0.2](D)(C ){\small n times} \end{pspicture}

1
n es tim

..

. 1

5 6 7 8 9 10

0 .. . 0

Neste ltimo exemplo foi feito o uso de nodos, o qual ser visto apenas no captulo ??.

es tim

11

12

3.6 Pontos Aleatrios


Este novo macro contm os seguintes comandos: \psRandom[parmetros]{} \psRandom[parmetros]{Objeto Grco} este primeiro comando pode ser usado sem nada onde diz Objeto Grco, neste caso no existir nenhuma rea para os pontos e ento usado uma rea padro no formato de um quadrado (0, 0)(1, 1). Para aumentar a rea deste quadrado basta aumentar a unidade de medida. Se colocarmos um objeto de grco, este ir formar uma
by Geovane Krger

.................................................................................................... 56

Cap. 3 O Pacote pstricks-add Parte 1

3.6 Pontos Aleatrios

rea que ir delimitar os pontos aleatrios, lembrando que se a rea do objeto for maior que a rea do quadrado padro, teremos uma parte em branco, ou seja, sem pontos. \psRandom[parmetros](xmax , ymax ){Objeto Grco} \psRandom[parmetros](xmin , ymin )(xmax , ymax ){Objeto Grco} com o primeiro comando, podemos determinar at qual coordenada os pontos podem alcanar, ou seja a coordenada mxima, e com o segundo comando podemos ter tambm a coordenada minima. Temos mais dois novos parmetros para usar, alm dos outros j vistos para PSTricks: Nome randomPoints color Padro 1000 false Funo Nmero de pontos aleatrios Cor aleatria

Tabela 3.2: Parmetros para pontos aleatrios Exemplo 83

+ + +++ + ++ ++ + + ++++++ + + ++ ++ ++ ++ ++ + ++ + + ++ ++ +++ + +++ ++ + + + + + + +++ + ++ +++ + +++ +++ + + ++ + ++++ + +++ +

1 2 3

\begin{pspicture}(0,0)(-1,2.5) \psset{unit=3cm} \psRandom[randomPoints=100,dotsize=8pt,dotstyle =+]{} \end{pspicture}

Exemplo 84
1 2 3

\begin{pspicture}(0,0)(-1,3) \psset{unit=3cm} \psRandom[randomPoints=100,dotsize=8pt]{\pscircle (.5,.5){.7}} \end{pspicture}

Exemplo 85
1 2 3

\begin{pspicture}(0,0)(-1,3) \psset{unit=3cm} \psRandom[randomPoints=100,dotsize=4pt,color ](.5,.5){\pscircle(.5,.5){.5}} \end{pspicture}

by Geovane Krger

.................................................................................................... 57

Cap. 3 O Pacote pstricks-add Parte 1

3.7 Setas

Exemplo 86

1 2 3

\begin{pspicture}(0,-2.5)(-.5,2.5) \psset{unit=2.5cm} \psRandom[dotsize=4pt,dotstyle=o, linecolor=Yellow,fillcolor=Magenta, fillstyle=solid,randomPoints =1000](0,-1)(3,1) {\psplot{0}{3.14}{x 114 mul sin }} \end{pspicture}

4 5

3.7 Setas
Alm dos tipos de setas para PSTricks o pacote pstricks-add dene mais alguns modelos: Valor h-h H-H v-v V-V f-f F-F t-t T-T Exemplo Nome Gancho Gancho V para dentro V para fora Seta cheia para dentro Seta cheia para fora Inclinao para dentro Inclinao para fora

3.7.1 Setas Mltiplas


Temos dois novos parmetros que so vlidos somente para o tipo de seta << ou >>. nArrowsA=Quantidade nArrowsB=Quantidade este parmetro determina a quantidade de vezes que a ponta da seta ir aparecer. Quando a ponta da seta for para fora (->>, <<- ou <<->>), tanto faz qual extremidade, devemos usar o parmetro nArrowsA. Quando a ponta da seta for para dentro (-<<, >>-, ou >>-<<), devemos usar o parmetro .................................................................................................... 58

by Geovane Krger

Cap. 3 O Pacote pstricks-add Parte 1

3.7 Setas

nArrowsB. E quando usarmos uma combinao com pontas para dentro e para fora ao mesmo tempo, devemos usar os dois parmetros. Observe os exemplos a seguir para melhor uma compreenso. Exemplo 87
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

\psset{arrowsize=6.2pt,linecolor=red} \psline{->>}(1,0)(4,0)\newline \psline[nArrowsA=4]{->>}(1,0)(4,0)\newline \psline{<<-}(1,0)(4,0)\newline \psline[nArrowsA=4]{<<-}(1,0)(4,0)\newline \psline{<<->>}(1,0)(4,0)\newline \psline[nArrowsA=4]{<<->>}(1,0)(4,0)\newline \psline[nArrowsA=5]{<<->>}(1,0)(4,0)\newline \psline{-<<}(1,0)(4,0)\newline \psline[nArrowsB=3]{-<<}(1,0)(4,0)\newline \psline{>>-}(1,0)(4,0)\newline \psline[nArrowsB=3]{>>-}(1,0)(4,0)\newline \psline{>>-<<}(1,0)(4,0)\newline \psline[nArrowsB=3]{>>-<<}(1,0)(4,0)\newline \psline[nArrowsB=5]{>>-<<}(1,0)(4,0)\newline \psline[nArrowsA=4,nArrowsB=3]{>>->>}(1,0)(4,0)\ newline \psline[nArrowsA=5,nArrowsB=5]{<<-<<}(1,0)(4,0)\ newline \psline[nArrowsA=7]{<<-T}(1,0)(4,0)\newline \psline[nArrowsB=8]{>>-H}(1,0)(4,0)

17

18 19

3.7.2 Seta Gancho


Para o novo tipo de seta (H) visto anteriormente, temos mais dois parmetros: hooklength=dimenso hookwidth=dimenso onde o primeiro determina o comprimento do gancho (Padro: 3mm), e o segundo determina a largura do gancho (Padro: 1mm) e a posio dependendo se o valor for negativo ou positivo.

by Geovane Krger

.................................................................................................... 59

Cap. 3 O Pacote pstricks-add Parte 1

3.7 Setas

Exemplo 88
1

\psline[linewidth=3pt,linecolor=red,hooklength=7mm ,hookwidth=-3mm]{H->}(1,0)(4,0)\newline \psline[linewidth=3pt,linecolor=red,hooklength=5mm ,hookwidth=5mm]{H->}(1,0)(4,0)\\[1cm] \psline[linewidth=3pt,linecolor=red,hooklength=10 mm,hookwidth=9mm]{H-H}(1,0)(4,0)

Exemplo 89
1 2

\begin{pspicture}(0,0)(0,4) \psset{arrowsize=8pt,arrowlength=1, linewidth=1pt,nodesep=2pt,shortput= tablr} \begin{psmatrix}[colsep=12mm,rowsep=10mm] & & $R_2$ \\ & & 0 & & $R_3$\\ $e_b:S$ & 1 & & 1 & 0 \\ & & 0 \\ & & $R_1$ \\ \end{psmatrix} \ncline{h-}{1,3}{2,3}<{$e_{r2}$}>{$f_{r 2}$} \ncline{-h}{2,3}{3,2}<{$e_1$} \ncline{-h}{3,1}{3,2}^{$e_s$}_{$f_{s}$} \ncline{-h}{3,2}{4,3}>{$e_3$}<{$f_3$} \ncline{-h}{4,3}{3,4}>{$e_4$}<{$f_4$} \ncline{-h}{3,4}{2,3}>{$e_2$}<{$f_2$} \ncline{-h}{3,4}{3,5}^{$e_5$} \ncline{-h}{3,5}{2,5}<{$e_{r3}$}>{$f_{r 3}$} \ncline{-h}{4,3}{5,3}<{$e_{r1}$}>{$f_{r 1}$} \end{pspicture}

R2 er2 0 e1 es eb : S fs 1 f3 e3 f4 0
11

fr2 R3 e2 1 e4 e5 er3 0 fr3

3 4 5 6 7 8 9 10

f2

er1

fr1 R1

12 13 14 15 16 17

18

19

Neste ltimo exemplo foi feito o uso de ferramentas que no vimos ainda, como \ncline que ser visto no pacote pst-node.

by Geovane Krger

.................................................................................................... 60

Cap. 3 O Pacote pstricks-add Parte 1

3.7 Setas

3.7.3 Mais Alguns Parmetros Para Setas


Com os parmetro a seguir podemos incluir setas nas linhas em qualquer posio, no somente no incio ou no m. ArrowInside=Estilo de Seta esse parmetro coloca uma seta com a ponta bem no meio da linha. No possvel colocar setas invertidas, isto , s podemos usar a seta da seguinte maneira (->), se quisermos a seta apontando para o outro lado no podemos usar o seu inverso (<-), devemos usar (-<). ArrowInsideNo=Nmero Quantidade de setas. ArrowInsidePos=Posio A posio relativa ao comprimento da linha, por exemplo 0.25 coloca a seta onde corresponde a 25% da linha. Para conseguirmos setas com uma diferena de posio absoluta, ento devemos colocar uma valor mais do que 1, por exemplo 10 coloca setas a cada 10pt. A unidade pt no pode ser mudada. ArrowInsideOffset=valor com isto podemos deslocar a seta para fora da linha. ArrowFill=True/False Com isto, podemos deixar a seta sem preenchimento. A seguir temos alguns exemplos usando estes vrios parmetros. Exemplo 90
1 2 3

\psset{arrowscale=3,linecolor=LimeGreen} \psline[ArrowInside=->](1,0)(4,0)\newline \psline[ArrowInside=->,ArrowInsideNo=4, ArrowInsideOffset=1](1,0)(4,0)\newline \psline[ArrowInside=->,ArrowInsidePos=0.25](1,0) (4,0)\newline \psline[ArrowInside=->,ArrowFill=false, ArrowInsideNo=2,ArrowInsideOffset =0.1]{->}(1,0)(4,0)

by Geovane Krger

.................................................................................................... 61

Cap. 3 O Pacote pstricks-add Parte 1

3.7 Setas

Exemplo 91
1 2 3

\begin{pspicture}(0,0)(-.2,2) \psset{arrowscale=3,linecolor=BrickRed} \psline[ArrowInside=-*,ArrowInsidePos=0.25, ArrowInsideNo=2]{->}(0,0)(2,1)(3,0)(4,0)(6,2) \end{pspicture}

Exemplo 92
1 2 3

\begin{pspicture}(0,0)(-.2,2) \psset{arrowscale=2,linecolor=BurntOrange} \psline[ArrowInside=-<,ArrowInsidePos =0.75]{->}(0,0)(2,1)(3,0)(4,0)(6,2) \end{pspicture}

Exemplo 93

1 2 3

\begin{pspicture}(0,0)(-.2,4) \psset{arrowscale=3,linecolor=Periwinkle} \pspolygon[ArrowInside=->,ArrowInsidePos=20, ArrowFill=False](0,0)(3,0)(3,3)(5,4)(5,0) (7,0)(6,3) \end{pspicture}

Exemplo 94
1 2 3 4

\begin{pspicture}(0,0)(-2,3) \psset{arrowscale=3,linecolor=Gray} \psbezier[linestyle=none,ArrowInside=->,ArrowInsideNo=26]{->}(1,0)(0,4)(12,-1)(9,3) \end{pspicture}

by Geovane Krger

.................................................................................................... 62

Cap. 3 O Pacote pstricks-add Parte 1

3.7 Setas

Exemplo 95
1 2 3

\begin{pspicture}(0,0)(-2,7) \psset{arrowscale=2,linecolor=OliveGreen} \psbezier[ArrowInsideNo=19,ArrowInside=->,ArrowFill=false,showpoints=true]{->}(0,5) (3,0)(8,7)(13,1) \end{pspicture}

Exemplo 96
1 2 3

\begin{pspicture}(0,0)(-1,3) \psset{arrowscale=2.5,linecolor=blue} \pspolygon[ArrowInside=->](0,0)(3,3)(6,3) (6,1) \psset{linestyle=none,ArrowInside=-*, linecolor=Goldenrod} \pspolygon[ArrowInsidePos=0](0,0)(3,3)(6,3) (6,1) \pspolygon[ArrowInsidePos=1](0,0)(3,3)(6,3) (6,1) \psset{ArrowInside=-o,linecolor=YellowGreen} \pspolygon[ArrowInsidePos=0.25](0,0)(3,3) (6,3)(6,1) \pspolygon[ArrowInsidePos=0.75](0,0)(3,3) (6,3)(6,1) \end{pspicture}

7 8

10

by Geovane Krger

.................................................................................................... 63

Cap. 3 O Pacote pstricks-add Parte 1

3.7 Setas

3.7.4 As setas v-V, t-T e f-F


Temos mais alguns parmetros para estes tipos especiais de setas. Setas v-V veearrowlenght=dimenso comprimento da seta (Padro: 3mm). veearrowangle=ngulo ngulo de abertura da seta (Padro: 30). veearrowlinewidth=dimenso largura da linha da seta (Padro: 0.35mm). Setas t-T lledveearrowlenght=dimenso comprimento da seta (Padro: 3mm). lledveearrowangle=ngulo ngulo de abertura da seta (Padro: 15). lledveearrowlinewidth=dimenso largura da linha da seta (Padro: 0.35mm). Setas f-F tickarrowlength=dimenso comprimento da seta (Padro: 1.5mm). tickarrowlinewidth=dimenso largura da linha da seta (Padro: 0.35mm).
by Geovane Krger

.................................................................................................... 64

Cap. 3 O Pacote pstricks-add Parte 1

3.8 Cores

3.8 Cores
Com o pacote pstricks-add temos uma novo estilo de preenchimento para os objetos llstyle=transparent com esse estilo podemos ter objetos sobrepostos e fazer transparecer o objeto que est atrs. O nvel de transparncia do objeto dado pelo seguinte parmetro transpalpha=valor valor deve ser um nmero entre 0 e 1, onde 0 gera transparncia total e 1 nenhuma transparncia. Observao 3.3 O efeito causado pela opo de transparncia no pode ser observado no modo .dvi, para podermos visualizar o efeito temos que gerar o documento no modo .pdf. Exemplo 97
1 2 3 4 5 6 7

\psset{fillstyle=transparent,linestyle=none} \multido{\rA=0.3+0.6}{2}{ \begin{pspicture}(-4,-3.25)(4,3.25) \pscircle[fillcolor=SpringGreen,transpalpha=\rA](2;135){2cm} \pscircle[fillcolor=Orange,transpalpha=\rA](2;45){2cm} \pscircle[fillcolor=Yellow,transpalpha=\rA](1;-90){2cm} \end{pspicture}}

by Geovane Krger

.................................................................................................... 65

Cap. 3 O Pacote pstricks-add Parte 1

3.8 Cores

Exemplo 98
1 2 3 4 5 6 7 8 9 10 11 12

\begin{pspicture}(0,-5)(-7,6) \psrotate(2,-2){15}{ \psframe[fillstyle=transparent,transpalpha=0.3,fillcolor=Salmon](-1,-3)(5,5)} \psrotate(2,-2){30}{ \psframe[fillstyle=transparent,transpalpha=0.3,fillcolor=GreenYellow](-1,-3)(5,5)} \psrotate(2,-2){45}{ \psframe[fillstyle=transparent,transpalpha=0.3,fillcolor=Periwinkle](-1,-3)(5,5)} \psrotate(2,-2){45}{ \psframe[fillstyle=hlines,hatchcolor=white,hatchangle=90](-1,-3)(5,5)} \psframe[linewidth=3pt](-1,-3)(5,5) \psdots[dotstyle=+,dotangle=45,dotscale=3](2,-2) \end{pspicture}

by Geovane Krger

.................................................................................................... 66

Captulo

O Pacote pst-plot
O pacote pst-plot parte integrante do pacote pstricks, mas para podermos desfrutar de todos os seus recursos necessrio adicionarmos no prembulo este pacote \usepackage{pst-plot} Com os objetos de grcos \psdots, \psline, \pspolygon, \pscurve, \psecurve e \psccurve podemos plotar dados de vrios modos. Porm, primeiro temos que gerar os dados e entrar com pares de coordenadas (x, y). Com os macros de plotagem descritos neste captulo teremos outros modos de usar e adquirir esses dados, alm de comandos para criarmos eixos coordenados.

4.1 Plotando Grcos


O parmetro plotstyle=estilo determina o tipo de plotagem que queremos, Os estilos disponveis so: dots (pontos), line (linha, que o padro), polygon (polgono), curve (curva), ecurve e ccurve. Observao 4.1 Nenhum erro de PostScript acusado se este for ocasionado pelos argumentos dos dados. Devemos ter cuidado tambm no nmero de dados, pois o sistema depende de um limite. A maneira menos provvel de excedermos esse limite usando line, polygon ou dots no estilo de plotagem, com showpoints=false, linearc=0pt e nenhuma seta. Observao 4.2 A lista de dados gerados ou usados pelos comandos de plotagem no podem conter unidades. Os valores de \psxunit e \psyunit so usados como unidade. 67

Cap. 4 O Pacote pst-plot

4.1 Plotando Grcos

Na continuidade temos as funes que podemos usar para plotar grcos. \leplot[parmetros]{arquivos} \leplot*[parmetros]{arquivo .dat} leplot a mais simples das funes para plotagem que temos para usar. Ns precisamos somente de um arquivo que contenha uma lista de coordenadas (sem unidades), programas como o Mathematica geram esse tipo de lista. Os dados podem ser delimitados atravs de chaves, parnteses, vrgulas e/ou espao em branco. Limitando todos os dados com colchetes, ganharamos uma velocidade signicativa na taxa de leitura
A dos dados, mas h limites dependentes do sistema em cima de quantos dados que o LTEX pode ler em um

pedao. leplot s reconhece os estilos line, polygon e dots e ignora setas e os parmetros linearc e showpoints. \dataplot[parmetros]{comandos} \dataplot*[parmetros]{comandos} dataplot tambm usado para plotar dados gerados por outros programas, mas primeiro temos que recuperar esses dados com um dos seguintes comandos: \savedata{comando}[dados] \readdata{comando}{arquivo .dat}
A \savedata usamos para salvar uma lista de dados colocados no LTEX mesmo, e \readdata usado para

importar uma lista de dados de um arquivo externo de dados com a terminao *.dat. dados ou os dados de um arquivo deveriam seguir as mesmas regras descritas acima para os dados em \fileplot. Com \savedata, os dados devem ser delimitados por um par de [ ], e em \readdata, os dados limitados com um par de [ ] s acelera as coisas. O exemplo a seguir uma plotagem da sin x. Os dados foram gerados pelo software Mathematica,

com o comando T able[{x, N [SinIntegral[x]]}, {x, 0, 20}] e ento copiado para este documento.

by Geovane Krger

.................................................................................................... 68

Cap. 4 O Pacote pst-plot

4.1 Plotando Grcos

Exemplo 99
1 2 3 4 5 6 7 8 9 10

\savedata{\mydata}[{{0, 0}, {1., 0.946083}, {2., 1.60541}, {3., 1.84865}, {4., 1.7582}, {5., 1.54993}, {6., 1.42469}, {7.,1.4546}, {8., 1.57419}, {9., 1.66504}, {10., 1.65835}, {11., 1.57831}, {12., 1.50497}, {13., 1.49936}, {14., 1.55621}, {15., 1.61819}, {16., 1.6313}, {17., 1.59014}, {18., 1.53661}, {19., 1.51863}, {20., 1.54824}}] \begin{pspicture}(0,0)(-4,3.5) \psset{xunit=.4cm,yunit=1.5cm} \dataplot[plotstyle=curve,showpoints=true,dotstyle=triangle]{\mydata} \psline{<->}(0,2)(0,0)(20,0) \end{pspicture}

\listplot[parmetros]{arquivo .dat} \listplot*[parmetros]{arquivo .dat} listplot um outro modo de plotar uma lista de dados. Com este macro, lista pode ser uma lista de dados (pares coordenados), delimitado apenas por um espao em branco, por exemplo: 1980 0.05 1981 0.07 1982 0.043 1983 0.033 1984 0.001 1986 0.023 1990 0.03 Com o bloco de notas, podemos salvar essa lista em um arquivo .dat, basta na hora de salvar o documento adicionar a terminao .dat depois do nome do documento, e ento usar esta lista, por exemplo: \listplot[plotstyle=curve,showpoints=true,dotstyle=triangle]{dados1.dat} .................................................................................................... 69

by Geovane Krger

Cap. 4 O Pacote pst-plot

4.1 Plotando Grcos

Utilizando o pacote \usepackage{filecontents} temos outra maneira de salvar uma lista de dados. Para utilizarmos usamos o seguinte ambiente no prembulo do documento (depois do pacote): \begin{filecontents}{nome da lista colocando a terminao .dat} lista de dados, como a acima. \end{filecontents} e ento, usamos depois o comando \readdata para recuperar a lista de dados. Observao 4.3 Criando a lista de dados deste modo, este pacote ir criar um arquivo .dat onde est salvo o documento .tex, no devemos excluir esta lista. Do mesmo modo, se salvarmos uma lista no bloco de notas devemos colocar o arquivo .dat onde est o documento .tex. Lembrando tambm que podemos usar uma lista de dados salva com o comando \savedata visto acima. \psplot[parmetros]{xmin }{xmax }{funo} \psplot*[parmetros]{xmin }{xmax }{funo} Ns podemos usar psplot para plotar uma funo f (x). funo deve ser um cdigo de PostScript para calcular f (x), o que no muito simples de se lidar com esses cdigos; conhecendo-se ao menos o bsico, j podemos plotar vrios grcos com psplot. No apndice ?? temos alguns comandos de PostScript que podemos usar. Observao 4.4 Note que devemos usar x como varivel dependente. PostScript no designado para computao cientca, mas psplot bom para representar gracamente funes simples. Outra informao importante, que este cdigos devem ser escritos em notao inversa do que a funo, por exemplo \psplot[plotpoints=150]{0}{720}{x sin} ir plotar sin(x) de 0 a 720 graus, calculando sin(x) bruscamente a cada 3.6 graus e ento conectando os pontos com psline. No exemplo a seguir, vamos plotar as funes sin(x) cos escrito os cdigos. x 2
2

e sin2 (x). Observe a ordem em que foi

by Geovane Krger

.................................................................................................... 70

Cap. 4 O Pacote pst-plot

4.1 Plotando Grcos

Exemplo 100
1 2 3 4 5 6 7

\begin{pspicture}(0,-2)(-2,2) \psset{xunit=.35mm,yunit=2cm,plotpoints=100} \psplot[linecolor=red,linewidth=1.5pt,plotstyle=curve]{0}{360}{x sin dup mul} \psplot{0}{360}{x sin x 2 div 2 exp cos mul} \psline{<->}(0,-1)(0,1) \psline{->}(370,0) \end{pspicture}

No prximo exemplo, vamos plotar as funes sin(x), cos(x) e sin(x) cos(x). Exemplo 101
1 2 3 4 5 6 7 8

\begin{pspicture}(0,-2)(-3,2) \psset{xunit=.25mm,yunit=2cm,plotpoints=50} \psplot[linestyle=dashed,linecolor=blue]{0}{360}{x sin} \psplot[plotstyle=dots,dotstyle=triangle]{0}{360}{x cos} \psplot[plotpoints=200,linecolor=red]{0}{360}{x sin x cos mul} \psline{<->}(0,-1)(0,1) \psline{->}(370,0) \end{pspicture}

\parametricplot[parmetros]{tmin }{tmax }{funo} \parametricplot*[parmetros]{tmin }{tmax }{funo}


by Geovane Krger

.................................................................................................... 71

Cap. 4 O Pacote pst-plot

4.2 Eixos

Isto para plotagem paramtrica de (x(t), y(t)). funo o cdigo de PostScript para calcular o par x(t)y(t). Observao 4.5 Observe que neste macro a varivel dependente t e no mais x. Temos aqui uma plotagem paramtrica de (sin(t), sin(2t)). Exemplo 102
1 2 3

\begin{pspicture}(0,-1.2)(-3,1.2) \psset{xunit=1.7cm} \parametricplot[linewidth=1.2pt,plotstyle=curve ]{0}{360}{t sin t 2 mul sin} \psline{<->}(0,-1.2)(0,1.2) \psline{<->}(-1.2,0)(1.2,0) \end{pspicture}

4 5 6

O nmero de pontos que os comandos \psplot e \parametricplot calculam dado pelo parmetro plotpoints=valor valor deve ser um valor inteiro (Padro: 50). Usando curve ou suas variantes em plotstyle em vez de line e aumentando o valor de plotpoints podemos obter uma curva mais lisa.

4.2 Eixos
O macro para fazermos eixos : \psaxes[parmetros]{setas}(x0 , y0 )(x1 , y1 )(x2 , y2 ) As coordenadas devem ser coordenadas cartesianas. Elas funcionam do mesmo modo como \psgrid. O eixo x extendido de x1 at x2 e o eixo y extendido de y1 at y2 . Os eixos se intersectam em (x0 , y0 ). Exemplo 103
2
1

\begin{pspicture}(0,-.5)(-2,2) \psgrid[subgriddiv=1,griddots=10](-1,0)(5,2) \psaxes[linewidth=1.2pt,labels=none,ticks= none]{<->}(2,1)(-1,0)(5,2) \end{pspicture}

1 0 -1 0 1 2 3 4 5

2 3

by Geovane Krger

.................................................................................................... 72

Cap. 4 O Pacote pst-plot

4.2 Eixos

Se (x0 , y0 ) omitido, ento a origem (x1 , y1 ). Se (x0 , y0 ) e (x1 , y1 ) so omitidos, (0, 0) usado como origem. Exemplo 104

1 0 0 1 2 3 4

1 2 3

\begin{pspicture}(0,-.5)(-1,2) \psaxes[linewidth=1pt]{->}(5,2) \end{pspicture}

A numerao posto prximo aos eixos, do mesmo lado de onde parte as coordenadas (x1 , y1 ) para (x2 , y2 ). Observe os dois exemplos a seguir: Exemplo 105 2
1

\begin{pspicture}(0,-.5)(-3,2.5) \psaxes{<->}(0,0)(-2.5,0)(2.5,2.5) \end{pspicture}

2 3

Exemplo 106 2
1

\begin{pspicture}(0,-.5)(-3,2.5) \psaxes{<->}(0,0)(2.5,0)(-2.5,2.5) \end{pspicture}

2 3

Se ns colocarmos o parmetro arrows, a primeira seta usada para a ponta representada por (x1 , y1 ), enquanto que a segunda seta usada para a ponta representada por (x2 , y2 ). psaxes pode colocar marcas e rtulos nos eixos em intervalos regulares usando os seguintes parmetros: Ns devemos ter muito cuidado na hora de declarar Ox , Dx , Oy e Dy com valores no inteiros. Para que funcione tudo corretamente o nmero de digtos a direita do decimal deve ser sempre o mesmo em todos os casos. A nica exceo que Ox ou Oy podem sempre ser inteiros mesmo que Dx ou Dy no sejam. Observao 4.6 Note que, o primeiro argumento de coordenada de \psaxes determina o posio fsica da origem, mas isto no afeta a origem do rtulo. Por exemplo, se a origem (2, 2), a origem ainda rotulada 0
by Geovane Krger

.................................................................................................... 73

Cap. 4 O Pacote pst-plot

4.2 Eixos

Horizontal Ox =nmero Dx =nmero dx =dimenso

Vertical Oy =nmero Dy =nmero dy =dimenso

Padro 0 1 0pt

Descrio Rtulo da origem Incremento do rtulo Distncia entre os rtulos

Tabela 4.1: Parmetros para os rtulos dos eixos ao longo de cada eixo, ao menos que ns explicitamente faamos a mudana de Ox e Oy . Temos ainda, outros parmetros para marcas e rtulos: labels=all/x/y/none Para especicar se os rtulos iro aparecer em ambos os eixos, s no x, s no y ou em nenhum (Padro: all). showorigin=true/false Se true, ento os rtulos so colocados na origem, contando que o rtulo no termine em um dos eixos. Se falso, os rtulos nunca so colocados na origem. ticks=all/x/y/none Para especicar se marcas aparecem em ambos os eixos, se s no x, s no y ou em nenhum (Padro: all). Observao 4.7 Se usarmos ticks=none, ento labels tambm desativado. tickstyle=full/top/bottom Se tickstyle=top, ento as marcas so somente do lado do eixo contrrio ao que aparece os rtulos. Se tickstyle=bottom, as marcas so somente do lado do eixo em que esto os rtulos. full em ambos os lados (Padro: full). Observao 4.8 Se ns estivermos usando o pacote pstricks-add a opo tickstyle no funciona. No captulo ?? ns veremos isso. O parmetro a seguir tambm no funciona do mesmo modo com o pacote pstricks-add. ticksize=dimenso Isto faz a marca ser extendida de acordo com a dimenso especicada (Padro: 3pt). labelsep=dimenso Isto separa o rtulo do eixo de acordo com a dimenso especicada.
by Geovane Krger

.................................................................................................... 74

Cap. 4 O Pacote pst-plot

4.2 Eixos

axesstyle=axes/frame/none Podemos ter uma armao em vez de eixos, usando frames, ou no ter eixo nenhum ,mas podemos ter as marcas e os rtulos (Padro: axes). Exemplo 107 3 2 1 0 1.5 1.0 0.5 0
\begin{pspicture}(0,-.5)(-4,3) \psaxes[Dx=.5,dx=1,axesstyle=frame](-3,3) \end{pspicture}

1 2 3

Exemplo 108 3 2 1 0 0 0.5 1.0 1.5


\begin{pspicture}(0,-.5)(-1,3) \psaxes[Dx=.5,dx=1,axesstyle=none](3,3) \end{pspicture}

1 2 3

Os parmetros usuais linestyle, llstyle e outros relacionados tambm podem ser usados com \psaxes. Exemplo 109 3 2 1
3 1 2

\begin{pspicture}(0,-.5)(-1,3) \psaxes[Dx=.5,dx=1,linestyle=dashed,linecolor=blue ](3,3) \end{pspicture}

0 0 0.5 1.0 1.5

by Geovane Krger

.................................................................................................... 75

Captulo

O Pacote pstricks-add Parte 2


Neste captulo, traremos novas opes para o pacote pst-plot. Vale lembrar que usando este pacote, algumas das opes para eixos do pacote pst-plot so alteradas e a opo tickstyle=full|top|bottom no funciona mais usando o pacote pstricks-add por causa de novas opes que este pacote tem para marcas.

5.1 Novas Opes Para Eixos


O pacote pstricks-add traz dois novos argumentos opcionais que so usados para colocarmos rtulos no m dos eixos, desta forma o comando de eixos ca: \psaxes[opes]{setas}(x0 , y0 )(x1 , y1 )(x2 , y2 )[rtulo x, ngulo][rtulo y, ngulo] Exemplo 110 y
1

\begin{pspicture}(0,-1)(-2,3) \psaxes{->}(0,0)(-1,-1)(3,2)[$x$,0][$y$,90] \end{pspicture}

1 x 1 1 1 2

2 3

Alterando o ngulo, alteramos a posio dos rtulos:

76

Cap. 5 O Pacote pstricks-add Parte 2

5.1 Novas Opes Para Eixos

Exemplo 111

t
1

\begin{pspicture}(0,-1)(-2,3) \psaxes{->}(0,0)(-1,-1)(3,2)[$x$,-90][$t$,180] \end{pspicture}

1 x

2 3

1 1

A seguir temos algumas opes novas para os eixos. xAxis=false/true Padro true. Se false, o eixo x no produzido. yAxis=false/true Padro true. Se false, o eixo y no produzido. xyAxes=false/true

5.1.1 Opes Para Marcas


Vamos descrever agora uma lista de opes que podemos usar para modicarmos as marcas nos eixos. ticks=all/x/y/none Padro all. Com esta opo escolhemos se as marcas devero aparecer em ambos os eixos, s no x, s no y ou em nenhum deles. ticksize=tamanho tamanho Padro -4pt 4pt. O segundo tamanho opcional. xticksize=tamanho tamanho yticksize=tamanho tamanho Como a opo acima mas individual para cada eixo.
by Geovane Krger

.................................................................................................... 77

Cap. 5 O Pacote pstricks-add Parte 2

5.1 Novas Opes Para Eixos

tickwidth=largura Padro 0.5\pslinewidth. tickcolor=cor Padro black. Cor das marcas. xtickcolor=cor ytickcolor=cor Cor das marcas individual para cada eixo. ticklinestyle=solid/dashed/dotted/none Padro solid. Estilo da linha da marca. xticklinestyle= yticklinestyle= Ambas as opes acima para cada eixo. Exemplo 112 2 1
3 1 2

\begin{pspicture}(0,0)(-1,2.5) \psaxes[xticksize=-10pt 4pt,yticksize=1pt 5pt](0,0) (3,2) \end{pspicture}

0 0 Exemplo 113 2 1 0
3 1 2

\begin{pspicture}(0,0)(-1,2.5) \psaxes[xtickcolor=blue,ytickcolor=red,tickwidth =0.5pt,xticklinestyle=dotted,yticklinestyle= dashed,xticksize=2cm,yticksize=3cm](0,0)(3,2) \end{pspicture}

subticks=nmero
by Geovane Krger

.................................................................................................... 78

Cap. 5 O Pacote pstricks-add Parte 2

5.1 Novas Opes Para Eixos

Padro 0. Com isto escolhemos a quantidade de sub marcas que dever aparecer entre uma marca e outra em ambos os eixos. xsubticks=nmero ysubticks=nmero Como a opo anterior, mas agora para cada eixo. subticksize=tamanho tamanho xsubticksize=tamanho tamanho ysubticksize=tamanho tamanho Padro 0.75. subtickwidth=largura Padro 0.25\pslinewidth. subtickcolor=cor xsubtickcolor=cor ysubticolor=cor Padro darkgray. subticklinestyle=solid/dashed/dotted/none xsubticklinestyle= ysubticklinestyle= Padro solid. Exemplo 114 2 1 0 0 1 2 3

1 2 3

\begin{pspicture}(0,0)(-1,2.5) \psaxes[subticks=2](0,0)(3,2) \end{pspicture}

by Geovane Krger

.................................................................................................... 79

Cap. 5 O Pacote pstricks-add Parte 2

5.1 Novas Opes Para Eixos

Exemplo 115 2 1 0 0 Exemplo 116


1 2

1 2 3

\begin{pspicture}(0,0)(-1,2.5) \psaxes[subticks=10](0,0)(3,2) \end{pspicture}

\begin{pspicture}(0,-.5)(-.5,2) \psaxes[yAxis=false,ticksize=0 10mm,subticks=10, subticksize=0.75,tickcolor=red,subtickcolor= blue,tickwidth=1pt](0,0)(5.01,0.01)

\end{pspicture}

Exemplo 117
1 2 3

\psset{yunit=1.5cm,xunit=3cm} \begin{pspicture}(0,-4.75)(-1.5,1) \psaxes[xticksize=-4.5 0.5,ticklinestyle=dashed,subticks=5,xsubticksize=1, ysubticksize=0.75,xsubticklinestyle=dotted, xsubtickwidth=1pt,subtickcolor=gray]{->}(0,0)(-1,-4)(3.25,0.5) \end{pspicture}

4 5

4 1 1 2 3

by Geovane Krger

.................................................................................................... 80

Cap. 5 O Pacote pstricks-add Parte 2

5.1 Novas Opes Para Eixos

Exemplo 118
1 2 3 4 5 6

\begin{center} \psset{arrowscale=3} \psaxes[labelsep=2pt,yAxis=false,subticks=8]{->}(0,0)(-5,-1)(5,1)\\[1cm] \psaxes[yAxis=false,subticks=4,ticksize=-4pt 0]{->}(0,0)(5,1)(-5,-1)\\ \psaxes[yAxis=false,subticks=4,ticksize=-10pt 0]{->}(0,0)(-5,-5)(5,5)\\[.5cm] \psaxes[yAxis=false,subticks=10,ticksize=0 -10pt,labelsep=15pt]{->}(0,0)(-5,-5)(5,5) \\[1cm] \psaxes[yAxis=false,subticks=4,ticksize=0 10pt,labelsep=-15pt]{->}(0,0)(5,5)(-5,-5) \\[1cm] \psaxes[yAxis=false,subticks=4,ticksize=0 -10pt]{->}(0,0)(5,5)(-5,-5)\\[.5cm] \psaxes[yAxis=false,subticks=0]{->}(0,0)(-5,-5)(5,5)\\[1cm] \psaxes[yAxis=false,subticks=0,tickcolor=red,linecolor=blue]{->}(0,0)(5,5)(-5,-5) \\[0.5cm] \psaxes[yAxis=false,subticks=5,tickwidth=2pt,subtickwidth=1pt]{->}(0,0)(-5,-5)(5,5) \\[1cm] \psaxes[yAxis=false,subticks=0,tickcolor=red]{->}(0,0)(5,5)(-5,-5) \end{center}

8 9 10

11

12 13

3 4

2 3

1 2 1

0 0

1 1

2 2

3 3

4 4 5

4 4 4

3 3 3

2 2 2

1 1 1

0 0 0

1 1 1

2 2 2

3 3 3

4 4 4 5 5

4 4

3 3

2 2

1 1

0 0

1 1

2 2

3 3

4 4 5

4 4

3 3

2 2

1 1

0 0

1 1

2 2

3 3

4 4 5

by Geovane Krger

.................................................................................................... 81

Cap. 5 O Pacote pstricks-add Parte 2

5.1 Novas Opes Para Eixos

5.1.2 Opes Para Rtulos


Nesta seo descreveremos novas opes para os rtulos. labels=all/x/y/none Com isto escolhemos em quais eixos os rtulos devem aparecer. labelFontSize=tamanho da fonte Esta opo pode ser usada par alterar o tamanho da fonte do rtulo. coma=false/true Padro false. Com esta opo podemos escolher se a numerao dos eixos quando usado nmeros decimais, diferenciado com vrgula ou ponto. O padro ponto, caso queiramos vrgula usamos true nesta opo. xyDecimals=quantidade de casas decimais Com esta opo podemos escolher quantas casas decimais devero aparecer aps o ponto ou vrgula para ambos os eixos. xDecimals= yDecimals= Igual ao caso anterior, mas individual para cada eixo. Exemplo 119

2.00 1.00 0.00 0.00 1.00 2.00 3.00

1 2 3

\begin{pspicture}(0,-.5)(-2,3) \psaxes[xyDecimals=2]{->}(0,0)(3.5,2.5) \end{pspicture}

by Geovane Krger

.................................................................................................... 82

Cap. 5 O Pacote pstricks-add Parte 2

5.1 Novas Opes Para Eixos

Exemplo 120
1 2 3

\begin{pspicture}(0,-1)(-1.5,6) \psset{xunit=10cm,yunit=0.01cm,labelFontSize=\scriptsize} \psaxes[Dx=0.25,Dy=100,ticksize=-4pt 0,comma=true,xDecimals=3,yDecimals=1]{->}(0,0) (0,-100)(1.4,520)[\textbf{A},90][\textbf{V},0] \end{pspicture}

500,0 400,0 300,0 200,0 100,0 0,0

A 0,250 0,500 0,750 1,000 1,250

100,0

xlabelFactor={qualquer coisa} ylabelFactor={qualquer coisa} Com estas duas opes podemos personalizar ainda mais os rtulos dos eixos, com elas podemos colocar qualquer coisa logo aps a numerao do rtulo. Observe os exemplos a seguir. Exemplo 121 700 106 600 106 500 106 400 106
1 2 3

\begin{pspicture}(0,-.5)(-2,5) \psset{xunit=.4cm,yunit=.007cm} \psaxes[ylabelFactor={\cdot 10^6},Dx=5,Dy =100](0,0)(25,750) \end{pspicture}

300 106 200 106 100 106 0 5 10

0 106 15 20 25

by Geovane Krger

.................................................................................................... 83

Cap. 5 O Pacote pstricks-add Parte 2

5.1 Novas Opes Para Eixos

Exemplo 122 12 % 10 % 8% 6% 4% 2% 0% 1466 1470 1474


4 1 2 3

\begin{pspicture}(0,-.5)(-1.5,4) \psset{xunit=.44cm,yunit=.3cm} \psaxes[axesstyle=axes,Ox=1466,Oy=0,Dx=4,Dy=2, ylabelFactor={\,\%}]{-}(29,12) \end{pspicture}

1478

1482

1486

1490

1494

5.1.3 Eixos Com Unidades Logartmicas


Existem opes adicionais que permite que ns trabalhemos com eixos com rtulos logaritmos. Estas opes no altera as unidades de medidas internas, por exemplo, para a coordenada y tomada com base 10, o intervalo de 103 at 102 correspondente ao intervalo [3, 2] no eixo y. As opes so: xylogBase=valor da base Com esta opo escolhemos uma base para ambos os eixos e com as duas opes a seguir podemos escolher bases individuais para cada eixo. xlogBase=valor da base ylogBase=valor da base Exemplo 123 103 102
1

\begin{pspicture}(0,-1)(-1,3) \psaxes[xylogBase=10](0,0)(4,3) \end{pspicture}

101 100 100 101 102 103 104

2 3

by Geovane Krger

.................................................................................................... 84

Cap. 5 O Pacote pstricks-add Parte 2

5.1 Novas Opes Para Eixos

Exemplo 124 23 22
1

\begin{pspicture}(0,-1)(-1,3) \psaxes[ylogBase=2](0,0)(4,3) \end{pspicture}

21 20 0 1 2 3 4

2 3

Exemplo 125 3 2
1

\begin{pspicture}(0,-1)(-1,3) \psaxes[xlogBase=e](0,0)(4,3) \end{pspicture}

1 0 e0 e1 e2 e3 e4

2 3

Exemplo 126 103 102


1

\begin{pspicture}(0,-1)(-1,3) \psaxes[ylogBase=10,xlogBase=e](0,0)(4,3) \end{pspicture}

101 100 e0 e1 e2 e3 e4

2 3

by Geovane Krger

.................................................................................................... 85

Cap. 5 O Pacote pstricks-add Parte 2

5.1 Novas Opes Para Eixos

Exemplo 127
1 2 3 4 5 6

\begin{pspicture}(0,-3.5)(-4,3.5) \psset{yunit=3cm,xunit=2cm} \rput(0,1){$y=\sin x$} \psplot[linewidth=1.5pt,plotpoints=5000,linecolor=blue]{-1}{3.5}{10 x exp sin} \psaxes[xlogBase=10,Oy=-1]{->}(-1,-1)(4.25,1.25) \end{pspicture}

y = sin x

1 100 101 102 103 104 105

Temos uma outra que podemos usar para que as linhas logartmicas sejam plotadas, ou seja, podemos criar grcos mono-logs ou di-logs com esta opo. logLines=all/x/y Exemplo 128 1.0 0.5 0
1 2 3

\psset{unit=2.5} \begin{pspicture}(-0.3,-0.3)(3,1.2) \psaxes[axesstyle=frame,logLines=x, xlogBase=10,Dy=0.5,tickcolor=red, subtickcolor=blue,tickwidth=1pt, ysubticks=5,xsubticks=10](3,1)

100

101

102

103

\end{pspicture}

by Geovane Krger

.................................................................................................... 86

Cap. 5 O Pacote pstricks-add Parte 2

5.1 Novas Opes Para Eixos

Exemplo 129
1 2 3 4

\begin{pspicture}(0,-1)(-3,4) \psset{unit=2} \psaxes[subticks=10,axesstyle=frame,xylogBase=10,logLines=all](5,2) \end{pspicture}

102

101

100 100

101

102

103

104

105

5.1.4 Eixo x Com Base Trigonomtrica


Com a opo trigLabels=true os rtulos do eixo x so unidades trigonomtricas. A opo trigLabelBase= nmero determina a base do denominador da frao para as unidades trigonomtricas. O valor padro 0, ou seja, no existe frao e neste caso as unidades so 0, , 2, . . . . Observao 5.1 Como no caso da base logartmica, este tambm no altera a unidade de medidas, apenas muda os rtulos. O pacote pstricks-add tambm dene as seguintes variveis: \psPiFour=12.566371 corresponde a 4. \psPiTwo=6.283185 corresponde a 2. \psPi=3.14159265 corresponde ao . .................................................................................................... 87

by Geovane Krger

Cap. 5 O Pacote pstricks-add Parte 2

5.1 Novas Opes Para Eixos

\psPiH=1.570796327 corresponde a

. 2 . 3 3 .

\pstRadUnit=1.047198cm que corresponde a

\pstRadUnitInv=0.95493cm que corresponde a Exemplo 130 1

1 2

\begin{pspicture}(0,-1.5)(-1,1.5) \psaxes[trigLabels=true,labelFontSize=\small ]{->}(0,0)(-.5,-1.25)(5,1.25) \end{pspicture}

4
3

Exemplo 131
1 2

\begin{pspicture}(0,-1.5)(-2,1.5) \psaxes[xunit=\psPi,trigLabels=true,labelFontSize=\small]{->}(0,0)(-.5,-1.25)(\psPi ,1.25) \end{pspicture}

Exemplo 132
1 2

\begin{pspicture}(0,-1.5)(-1.5,1.5) \psset{xunit=\psPiH} \psaxes[trigLabels=true,trigLabelBase=2, xsubticks=2]{->}(0,0)(-.5,-1.5) (4.5,1.5)

3 2

\psplot[xunit=1cm,linecolor=SpringGreen, linewidth=1.5pt]{0}{\psPiTwo}{x RadtoDeg sin} \end{pspicture}

1
5

by Geovane Krger

.................................................................................................... 88

Cap. 5 O Pacote pstricks-add Parte 2

5.1 Novas Opes Para Eixos

Exemplo 133
1

\psset{xunit=\pstRadUnit} \begin{pspicture}(0,-1.25)(-1,1.25) \psaxes[trigLabels=true,trigLabelBase =3]{->}(0,0)(-0.5,-1.25)(6.5,1.25) \psplot[linecolor=blue,linewidth=1.5pt ]{0}{6}{x Pi 3 div mul RadtoDeg sin} \end{pspicture}

2 3

2 3

4 3

5 3

1
5

Exemplo 134
1

\psset{xunit=\pstRadUnit} \begin{pspicture}(0,-1.25)(-1,1.25) \psaxes[trigLabels=true,dx=1.5]{->}(0,0) (-0.5,-1.25)(6.5,1.25) \psplot[xunit=0.5cm,linecolor=red, linewidth=1.5pt]{0}{\psPiFour}{x RadtoDeg cos} \end{pspicture}

2 3

Exemplo 135
1 2

\psset{xunit=\pstRadUnit} \begin{pspicture}(0,-1.25)(-1,1.25) \psaxes[trigLabels=true,trigLabelBase=2, dx=.75]{->}(0,0)(-0.5,-1.25) (6.5,1.25)

3 2

5 2

7 2

\psplot[xunit=0.5cm,linecolor=BlueViolet ,linewidth=1.5pt]{0}{\psPiFour}{x RadtoDeg cos} \end{pspicture}

1
5

possvel modicar as unidades do eixo x e tambm os valores de dx para que os rtulos quem posicionados corretamente, o que foi feito nos dois exemplos acima. Muitas vezes no to fcil acertar este valores, mas isto bem til. No prximo exemplo, vamos xar a unidade em x para que corresponde 1.5707962327 e dx 2 2 xaremos em em relao a unidade de 1cm. O comprimento do eixo x 6.4 unidades, que corresponde a 3 8.3 1.5707962327 13cm e a funo ser plotada de 0 a 4 = 12.56637061. =

by Geovane Krger

.................................................................................................... 89

Cap. 5 O Pacote pstricks-add Parte 2

5.1 Novas Opes Para Eixos

Exemplo 136
1 2

\begin{pspicture}(0,-2)(-1,2) \psaxes[xunit=\psPiH,trigLabels=true,trigLabelBase=3,dx=0.666667]{->}(0,0)(-0.5,-2) (8.3,2) \psplot[linecolor=Dandelion,linewidth=1.5pt]{0}{\psPiFour}{x RadtoDeg dup sin exch 1.1 mul cos add} \end{pspicture}

2 3

4 3

5 3

7 3

8 3

10 3

11 3

1 2

Exemplo 137
1 2 3

\begin{pspicture}(0,-2)(-1,2) \psaxes[xunit=\psPi,dx=0.25,trigLabels=true]{->}(0,0)(-0.2,-2)(3.2,2) \psplot[xunit=0.25,plotpoints=500,linecolor=Dandelion,linewidth=1.5pt]{0}{37.70}{x RadtoDeg dup sin exch 1.1 mul cos add} \end{pspicture}

1 2

2 3 4 5 6 7 8 9 10 11 12

by Geovane Krger

.................................................................................................... 90

Cap. 5 O Pacote pstricks-add Parte 2

5.2 Novas Opes Para Plotagens

Exemplo 138
1 2

\begin{pspicture}(0,-2)(-1,2) \psplot[xunit=0.0625,linecolor=Dandelion,linewidth=1.5pt,plotpoints =5000]{0}{150.80}{x RadtoDeg dup sin exch 1.1 mul cos add} \psaxes[trigLabels=true,xunit=\psPi,dx=0.5,Dx=8,xsubticks=2]{->}(0,0)(-0.1,-2) (3.2,2) \end{pspicture}

8 1 2

16

24

32

40

48

5.2 Novas Opes Para Plotagens


5.2.1 Notao Algbrica
Por padro, para plotarmos grcos de funes usando o comando \psplot temos que descrever os comandos da funo na notao reversa polonesa (Reversed Polish Notation, RPN). A opo algebraic nos permite usarmos a notao algbrica usual, por exemplo: Estabelecendo a opo algebraic, ns devemos RPN x ln x cos 2.71 x neg 10 div exp mul 1 x div cos 4 mul t cos t sin algebraic ln(x) cos(x)2.71(-x/10) 4cos(1/x) cos(t)|sin(t)

escrever a expresso usando a notao algbrica clssica e colocar entre parnteses as notaes internas. As quatro operaes fundamentais usando a opo algebraic so, obviamente, + - * /, e o exponencial . Outras funes denidas so: sin, cos, tan, acos, asin em radianos; log, ln;
by Geovane Krger

.................................................................................................... 91

Cap. 5 O Pacote pstricks-add Parte 2

5.2 Novas Opes Para Plotagens

ceiling, oor, truncate, round; sqrt raiz quadrada; abs valor absoluto; fact fatorial; Sum somatrios; IfTE para casos simples. Estas opes podem ser usadas com todos os macros de plotagem. Lembrando que usando a opo algebraic todos os ngulos devem ser usados em radianos. Para usar o macro \parametricplot, as duas partes devem ser divididas pelo caractere |. Exemplo 139
1 2

\begin{pspicture}(0,-.8)(-3,.8) \parametricplot[algebraic,linecolor=SpringGreen ]{-3.14}{3.14}{cos(t)|sin(t)} \end{pspicture}

Exemplo 140
1 2

\begin{pspicture}(0,-3.2)(-1,3.2) \psaxes[trigLabels=true,trigLabelBase=2,xunit=\pstRadUnit,dx=1.5]{->}(0,0)(-.2,-3.2) (13.5,3.2) \psset{algebraic,plotpoints=30} \psplot[linecolor=yellow,linewidth=4pt]{0}{\psPiFour}{2*sin(x)} \psplot[linecolor=blue,showpoints=true]{0}{\psPiFour}{2*sin(x)} \psplot[linecolor=yellow,linewidth=4pt]{0}{\psPiFour}{3*cos(x)*2.71^(-x/10)} \psplot[linecolor=BrickRed,showpoints=true]{0}{\psPiFour}{3*cos(x)*2.71^(-x/10)} \end{pspicture}

3 4 5 6 7 8

3 2 1

3 2

5 2

7 2

1 2 3

by Geovane Krger

.................................................................................................... 92

Cap. 5 O Pacote pstricks-add Parte 2

5.2 Novas Opes Para Plotagens

5.2.2 Usando a Funo Sum


Sum(ndices, incio, passo, m, funo) No exemplo a seguir temos o desenvolvimento da funo seno na sua expanso polinomial: Exemplo 141
1 2

\psset{algebraic=true,plotpoints=501,yunit=3} \def\getColor#1{\ifcase#1 black\or red\or magenta\or yellow\or green\or Orange\or blue\or DarkOrchid\or BrickRed\or Rhodamine\or OliveGreen\or Cyan\or Apricot\or SpringGreen \or BlueGreen\or Tan\fi} \begin{pspicture}(0,-1.5)(-1,1.5) \psclip{\psframe[linecolor=white](-1,-1.5)(16,1.5)} \psplot[linewidth=3pt]{0}{14}{sin(x)} \multido{\n=1+1}{15}{% \psplot[linewidth=1pt,linecolor=\getColor{\n}]{0}{14}{% Sum(ijk,0,1,\n,(-1)^ijk*x^(2*ijk+1)/fact(2*ijk+1))}} \endpsclip \psaxes(0,0)(-.2,-1.5)(15,1.5) \end{pspicture}

4 5 6 7 8 9 10 11 12

10

11

12

13

14

15

by Geovane Krger

.................................................................................................... 93

Cap. 5 O Pacote pstricks-add Parte 2

5.2 Novas Opes Para Plotagens

Exemplo 142

Neste exemplo temos 15 aproximaes da funo J0 (x) =


k=0
1 2 3 4 5 6 7 8 9 10 11 12

(1)k x2k 22k (k!)2

\psset{algebraic=true,plotpoints=100,yunit=2,xunit=.5} \def\getColor#1{\ifcase#1 black\or red\or magenta\or yellow\or green\or Orange\or blue\or DarkOrchid\or BrickRed\or Rhodamine\or OliveGreen\or Cyan\or Apricot\or SpringGreen\or BlueGreen\or Tan\or black\fi} \begin{pspicture}(0,-1.5)(-16,1.5) \psclip{\psframe[linecolor=white](-16,-1.5)(16,1.5)} \multido{\n=1+1}{16}{% \psplot[linewidth=1.2pt,linecolor=\getColor{\n}]{-15}{15}{% Sum(ijk,0,1,\n,(-1)^ijk*x^(2*ijk)/(2^(2*ijk)*fact(ijk)^2))}} \endpsclip \psaxes[labelFontSize=\tiny](0,0)(-15,-1.5)(15,1.5) \end{pspicture}

15 13 11 987654321 14 12 10

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

5.2.3 Usando a Funo IfTE


IfTE(condio, parte verdadeira, parte falsa) Este comando bem interessante at, mas ele possui um nico problema que unir os pedaos de cada grco plotado para cada caso, para compreender melhor observe o exemplo a seguir onde iremos plotar as seguintes funes: sin(x) x 2 f (x) = x2 x>2 7 + x 2 x /5 g(x) = x3 3 x < 4 x < 1.5 x 1.5

x > 1.5

by Geovane Krger

.................................................................................................... 94

Cap. 5 O Pacote pstricks-add Parte 2

5.2 Novas Opes Para Plotagens

Exemplo 143
1 2 3 4 5

\begin{pspicture}(0,-4)(-8,4) \psgrid[subgriddiv=2,subgriddots=3,gridcolor=lightgray](-7,-4)(7,4) \psset{algebraic=true,linewidth=2pt} \psplot[linecolor=SpringGreen,plotpoints=100]{-7}{2}{IfTE(x<-2,sin(x),x^2)} \psplot[linecolor=Dandelion,plotpoints=100]{-7}{7}{IfTE(x<-4,7+x,IfTE(x<-1.5,-x ^2/5,IfTE(x<1.5,x^3,3)))} \end{pspicture}

4 3 2 1 0 -1 -2 -3 -4 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7

Exemplo 144
3 2
1

\begin{pspicture}(0,-4)(-4,3) \psgrid[subgriddiv=1,griddots=10,gridcolor= lightgray](-3,-3)(3,3) \psset{algebraic,plotpoints=1000,linewidth=1 pt} \psplot{-3}{3}{ceiling(x)} \psplot[linecolor=red]{-3}{3}{floor(x)} \psplot[linecolor=blue]{-3}{3}{round(x)} \end{pspicture}

1 0 -1 -2 -3 -3 -2 -1 0 1 2 3

4 5 6 7

by Geovane Krger

.................................................................................................... 95

Cap. 5 O Pacote pstricks-add Parte 2

5.2 Novas Opes Para Plotagens

Exemplo 145
1 2 3 4 5 6 7 8

\begin{pspicture}(0,-7)(-8.5,8) \psgrid[subgriddiv=1,griddots=10,gridcolor=lightgray](-7,-7)(7,8) \psset{algebraic,plotpoints=1000,linewidth=1pt} \psplot[linecolor=yellow]{-7}{7}{rand/(2^31-1)+x} \psplot{-7}{7}{truncate(x)} \psplot[linecolor=Peach]{-7}{7}{abs(3*cos(x)+1)} \psplot[linecolor=BrickRed]{-7}{7}{floor(5*cos(x))} \end{pspicture}

8 7 6 5 4 3 2 1 0 -1 -2 -3 -4 -5 -6 -7 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7

by Geovane Krger

.................................................................................................... 96

Cap. 5 O Pacote pstricks-add Parte 2

5.3 Grcos Estilo Barras

5.3 Grcos Estilo Barras


Com a opo plotstyle=bar podemos plotar os grcos produzidos por arquivos .dat no formato de barras. A largura das barras controlado pela opo barwidth=dimenso cujo valor padro 0.25cm. Exemplo 146
1 2 3 4 5 6 7

\def\barData{0 0.03 1 0.11 2 0.28 3 0.84 4 6.70 5 8.55 6 8.77 7 11.09 8 7.18 9 6.20 10 5.78 11 4.19 12 2.37 13 2.26 14 1.68 15 1.03 16 1.37 17 1.34 18 0.92 19 0.67 20 0.87 21 1.20 22 1.98 23 3.99 24 5.08 25 5.17 26 5.78 27 4.44 28 0.11} \psset{xunit=.44cm,yunit=.3cm} \begin{pspicture}(0,-3)(-4,13) \psaxes[axesstyle=axes,Ox=1466,Oy=0,Dx=4,Dy=2,ylabelFactor={\,\%}]{-}(29,12) \listplot[shadow=true,linecolor=blue,plotstyle=bar,barwidth=0.3cm,fillcolor=red, fillstyle=solid]{\barData} \rput{90}(-3,6.25){Amount} \end{pspicture}

8 9

12 % 10 % Amount 8% 6% 4% 2% 0% 1466 1470 1474 1478 1482 1486 1490 1494

by Geovane Krger

.................................................................................................... 97

Cap. 5 O Pacote pstricks-add Parte 2

5.3 Grcos Estilo Barras

Exemplo 147
1 2 3 4

\psset{xunit=.44cm,yunit=.3cm} \begin{pspicture}(0,-3)(-4,13) \psaxes[axesstyle=axes,Ox=1466,Oy=0,Dx=4,Dy=2,ylabelFactor={\,\%}]{-}(29,12) \listplot[linecolor=blue,plotstyle=bar,barwidth=0.3cm,fillstyle=crosshatch]{\ barData} \rput{90}(-3,6.25){Amount} \end{pspicture}

5 6

12 % 10 % Amount 8% 6% 4% 2% 0% 1466 1470 1474 1478 1482 1486 1490 1494

Exemplo 148
1 2 3 4 5 6 7

\psset{xunit=.44cm,yunit=.3cm} \begin{pspicture}(0,-3)(-4,13) \psaxes[axesstyle=axes,Ox=1466,Oy=0,Dx=4,Dy=2,ylabelFactor={\,\%}]{-}(29,12) \listplot[linecolor=blue,plotstyle=bar,barwidth=0.3cm,fillstyle=vlines]{\barData} \listplot[showpoints=true]{\barData} \rput{90}(-3,6.25){Amount} \end{pspicture}

12 % 10 % Amount 8% 6% 4% 2% 0% 1466 1470 1474 1478 1482 1486 1490 1494

by Geovane Krger

.................................................................................................... 98

Cap. 5 O Pacote pstricks-add Parte 2

5.4 Novas Opes Para Plotagens de Dados

5.4 Novas Opes Para Plotagens de Dados


5.4.1 Novas Opes Para readdata
O pacote pstricks-add dene um opo adicional ignorelines=nmero onde nmero representa a quantidade de dados que devem ser ignorados na leitura dos mesmos. Observe no exemplo a seguir que os 7 primeiros dados so ignorados. Exemplo 149
5 4 3 2 1 0 0 1 2 3
5 6

1 2 3 4

\readdata{\dataA}{demo.dat} \readdata[ignoreLines=7]{\data}{demo.dat} \begin{pspicture}(0,-1)(-1,5) \psgrid[subgriddiv=1,griddots=10,gridcolor= lightgray](0,0)(3,5) \listplot[linewidth=1.7pt,showpoints=true]{\dataA} \listplot[linecolor=Dandelion,linewidth=.5pt, showpoints=true]{\data} \end{pspicture}

5.4.2 Novas Opes Para listplot


As novas opes que veremos a seguir funcionam apenas com o macro \listplot, pois este no possui nenhuma limitao real, por que todos os dados podem ser lidos a partir do macro \readdata. Em algumas opes, muitas vezes interessante utilizar o estilo de plotagem de pontos, plotstyle=dots. As opes sero listadas em grupos e aps estes grupos ter o exemplo do grco no modo normal e logo a seguir usando as opes. nStart= nStep= nEnd= Os valores padres para cada um so: 1, 1, {}, respectivamente. O arquivo de dados data.dat utilizados nos exemplos a seguir possui 1000 dados salvos.
by Geovane Krger

.................................................................................................... 99

Cap. 5 O Pacote pstricks-add Parte 2

5.4 Novas Opes Para Plotagens de Dados

Exemplo 150
1 2 3 4 5 6

\readdata{\data}{data.dat} \begin{pspicture}(0,-.5)(-2,5) \psset{xunit=0.125mm,yunit=0.0002mm} \psaxes[Dx=100,dx=100,Dy=50000,dy=50000](1000,250000) \listplot[linewidth=1pt,plotstyle=dots]{\data} \end{pspicture}

250000 200000 150000 100000 50000 0 0 100 200 300 400 500 600 700 800 900 1000

Exemplo 151
1 2 3 4 5 6 7

\readdata{\data}{data.dat} \begin{pspicture}(0,-.5)(-2,5) \psset{xunit=0.125mm,yunit=0.0002mm} \psaxes[Dx=100,dx=100,Dy=50000,dy=50000](1000,250000) \listplot[nStep=50,linewidth=2.5pt,linecolor=red,plotstyle=dots]{\data} \listplot[linewidth=1pt,linecolor=blue]{\data} \end{pspicture}

250000 200000 150000 100000 50000 0 0 100 200 300 400 500 600 700 800 900 1000

by Geovane Krger

.................................................................................................... 100

Cap. 5 O Pacote pstricks-add Parte 2

5.4 Novas Opes Para Plotagens de Dados

Exemplo 152
1 2 3 4 5 6

\readdata{\data}{data.dat} \begin{pspicture}(0,-.5)(-2,5) \psset{xunit=0.125mm,yunit=0.0002mm} \psaxes[Dx=100,dx=100,Dy=50000,dy=50000](1000,250000) \listplot[nStart=200,linewidth=3pt,linecolor=Dandelion]{\data} \end{pspicture}

250000 200000 150000 100000 50000 0 0 100 200 300 400 500 600 700 800 900 1000

Exemplo 153
1 2 3 4 5 6

\readdata{\data}{data.dat} \begin{pspicture}(0,-.5)(-2,6) \psset{xunit=0.125mm,yunit=0.0002mm} \psaxes[Dx=100,dx=100,Dy=50000,dy=50000](1000,250000) \listplot[nEnd=800,linewidth=3pt,linecolor=Dandelion]{\data} \end{pspicture}

250000 200000 150000 100000 50000 0 0 100 200 300 400 500 600 700 800 900 1000

by Geovane Krger

.................................................................................................... 101

Cap. 5 O Pacote pstricks-add Parte 2

5.4 Novas Opes Para Plotagens de Dados

Exemplo 154
1 2 3 4 5

\readdata{\data}{data.dat} \begin{pspicture}(0,-.5)(-2,5) \psset{xunit=0.125mm,yunit=0.0002mm} \psaxes[Dx=100,dx=100,Dy=50000,dy=50000](1000,250000) \listplot[nStart=200, nEnd=800, nStep=50,linewidth=3pt,linecolor=blue,plotstyle=dots ]{\data} \end{pspicture}

250000 200000 150000 100000 50000 0 0 100 200 300 400 500 600 700 800 900 1000

xStar= xStep= xEnd= Os valores padro so: {}, 0, {}, respectivamente. No caso anterior, nStep representa a quantidade de passos que era dados em relao aos dados, por exemplo nStep=50 quer dizer que sero plotados de 50 em 50 dados, j o caso xStep representa a quantidade de passos que ser dados em relao ao eixo x, ou seja xStep=2 quer dizer que o prximo ponto plotado ser o que est sobre o valor 2 no eixo x ou o mais prximo disso logo aps o 2. O mesmo vale para o y nas opes que sero vistas logo aps os exemplos. Neste exemplo mostraremos o uso de uma mesma plotagem com diferente unidades e um valor diferente para xStart. A curva azul representa a curva original plotada dos dados salvos. Para mostra a importncia de apenas uma parte desta curva, iremos plotar um pedao desta curva com um grande valor para yunit e iniciar o valor de x em xStar=0.35. Com isto possvel ter um pedao da curva com um zoom em relao ao grco original.

by Geovane Krger

.................................................................................................... 102

Cap. 5 O Pacote pstricks-add Parte 2

5.4 Novas Opes Para Plotagens de Dados

Exemplo 155
1 2 3 4

\readdata{\data}{data3.dat} \begin{pspicture}(-1.5,-1)(14,7) \psset{xunit=10cm, yunit=0.01cm} \psaxes[Dx=0.25,Dy=100,dy=100\psyunit,ticksize=-4pt 0,labelFontSize={\footnotesize }]{->}(0,0)(0,-100)(1.4,520) \uput[0](1.4,0){\textsf{t[s]}} \rput(-0.125,200){\psrotateleft{\small Fluxo [ml/s]}} \listplot[linewidth=2pt,linecolor=blue]{\data} \rput(0.4,300){ \pscustom[yunit=0.04cm,linewidth=1pt]{% \listplot[xStart=0.355]{\data} \psline(1,-2.57)(1,0)(0.355,0) \fill[fillstyle=hlines,fillcolor=gray,hatchwidth=0.4pt,hatchsep=1.5pt,hatchcolor= red]% \psline[linewidth=0.5pt]{->}(0.7,0)(1.05,0) }} \psline[linewidth=.01]{->}(0.75,300)(0.4,20) \psline[linewidth=.01]{->}(1,290)(1.1,440) \rput(1.1,470){\footnotesize Volume que Vazou} \psline[linewidth=.01]{->}(0.78,200)(1,100) \rput[l](1.02,100){\footnotesize Volume Final} \end{pspicture}

5 6 7 8 9 10 11 12

13 14 15 16 17 18 19 20

500 400
Fluxo [ml/s]

Volume que Vazou

300 200 100 0 0.25 0.50 0.75 1.00 1.25


Volume Final

t[s]

100

yStart=

by Geovane Krger

.................................................................................................... 103

Cap. 5 O Pacote pstricks-add Parte 2

5.4 Novas Opes Para Plotagens de Dados

yStep= yEnd= Os valores padro so: {}, 0, {}, respectivamente. Exemplo 156
1 2 3 4 5 6 7 8

\readdata{\data}{data.dat} \begin{pspicture}(0,-.5)(-2,6) \psset{xunit=0.125mm,yunit=0.0002mm} \psaxes[axesstyle=frame,Dx=100,dx=100,Dy=50000,dy=50000](1000,300000) \psset{linewidth=0.1pt,linestyle=dashed,linecolor=Dandelion} \psline(0,40000)(1000,40000) \psline(0,175000)(1000,175000) \listplot[yStart=40000,yEnd=175000,linewidth=3pt,linecolor=SpringGreen,plotstyle= dots]{\data} \end{pspicture}

300000 250000 200000 150000 100000 50000 0 0 100 200 300 400 500 600 700 800 900 1000

plotNo= plotNoMax= Por padro, o macro de plotagem espera por dados da forma xy, mas quando ns tivermos dados com vrios para y, como x y1 y2 . . . ymax ? Neste caso a opo plotNo escolhe qual o valor de y dever ser plotado (padro 1) e a opo plotNoMax fornece a quantidade de ys presentes nos dados. Para o prximo exemplo, temos a seguinte lista de dados: 0 0 3.375 0.0625

by Geovane Krger

.................................................................................................... 104

Cap. 5 O Pacote pstricks-add Parte 2

5.4 Novas Opes Para Plotagens de Dados

10 20 30 40 50 60 70 80 90 100 110 120

5.375 7.1875 5.75 2.1875 -1.9375 -5.125 -6.4375 -4.875 0 5.5 6.8125 5.25

7.1875 8.375 7.75 5.75 2.1875 -1.8125 -5.3125 -7.1875 -7.625 -6.3125 -2.75 2.875

4.5 6.25 6.6875 5.9375 4.3125 0.875 -2.6875 -4.875 -5.625 -5.8125 -4.75 -0.75

Neste caso podemos plotar os mltiplos dados sem qualquer modicao no arquivo de dados. Exemplo 157
1 2 3 4 5 6 7 8 9

\readdata\Data{dataMul.dat} \begin{pspicture}(0,-3.5)(-1,4) \psset{xunit=0.1cm,yunit=0.5cm} \psaxes[Dx=10,Dy=2.5]{->}(0,0)(0,-7.5)(150,7.5) \psset{linewidth=2pt,plotstyle=line} \listplot[linecolor=green,plotNo=1,plotNoMax=3]{\Data} \listplot[linecolor=red,plotNo=2,plotNoMax=3]{\Data} \listplot[linecolor=blue,plotNo=3,plotNoMax=3]{\Data} \end{pspicture}

5.0 2.5 0 10 2.5 5.0 7.5 .................................................................................................... 105 20 30 40 50 60 70 80 90 100 110 120 130 140

by Geovane Krger

Cap. 5 O Pacote pstricks-add Parte 2

5.4 Novas Opes Para Plotagens de Dados

5.4.3 Plotagens Estilo Mnimos Quadrados


A opo plotstyle denida pelo pacote pst-plot, mas o estilo de plotagem de Mnimos Quadrados, LSM, (Least Square Method) vlida somente para o pacote pstricks-add. Com esta opo podemos plotar os dados primeiramente como pontos ou linhas e depois plotar novamente estes dados com reta que melhor se ajusta a estes ponto, onde esta reta automaticamente calculada pelo macro listplot. Exemplo 158
1 2 3 4 5 6

\readdata{\data}{LSM1.dat} \begin{pspicture}(0,-1.5)(-1,9) \psaxes{->}(0,0)(-.2,-.2)(8,8)[$x$,0][$y$,90] \listplot[plotstyle=dots]{\data} \listplot[PstDebug=1,plotstyle=LSM,linecolor=blue]{\data} \end{pspicture}

7 6 5 4 3 2 1 x 1 2 3 4 5 6 7

y=0.755679 x+1.84104
E com a opo PstDebug=1 a equao da reta mostrada abaixo do grco. No prximo exemplo vamos utilizar a seguinte lista de dados .................................................................................................... 106

by Geovane Krger

Cap. 5 O Pacote pstricks-add Parte 2

5.4 Novas Opes Para Plotagens de Dados

0.003298697 1.397785583 0.003193358 1.615489564 0.003094538 2.044019006 0.003001651 2.259240127 e vamos fazer tambm o uso do comando \pstScalePoints que ser visto logo aps este exemplo. Exemplo 159
1 2 3 4 5 6 7

\readdata{\data}{LSM.dat} \begin{pspicture}(0,-1)(-1,8) \pstScalePoints(10000,1){ 0.003 sub }{} \psset{lly=-1.75cm} \psgraph[arrows=->,Ox=0.0030,Dx=0.0001,dx=\psxunit](0,0)(3.2,3){10cm}{5cm} \listplot[showpoints=true,linewidth=1pt,linecolor=Dandelion]{\data} \listplot[PstDebug=1,plotstyle=LSM,linewidth=0.2pt,linestyle=dashed,xStart=-0.25, xEnd=3.3]{\data} \endpsgraph \end{pspicture}

8 9

0 0.0030

x 0.0031 0.0032 0.0033

y=-0.162184 x+2.27634

O ambiente \psgraph ser visto no Captulo ??.

5.4.4 Adicionando Escala aos Dados


O comando .................................................................................................... 107

by Geovane Krger

Cap. 5 O Pacote pstricks-add Parte 2

5.5 Grcos Com Coordenadas Polares

\pstScalePoints(escala x, escala y){xPS}{yPS} escala x e escala y so valores decimais que representam um fator de escala, xPS e yPS so cdigos adicionais de PostScript que adicionam, multiplicam, . . . , aos valores x e y dos dados salvos. No exemplo a seguir, o valor 3 adicionado aos valores ys dos dados e depois escalado com um fator de 0.5. Observe na linha azul que x = 0 e y(0) = (0 + 3) 0.5 = 1.5. Exemplo 160

5 4 3 2

1 2 3 4 5 6

\def\data{% 0 0 1 3 2 4 3 1 4 2 5 3 6 6 } \begin{pspicture}(0,-1)(-1,6) \psaxes{->}(0,0)(6,6) \listplot[showpoints=true,linecolor=red]{\ data} \pstScalePoints(1,0.5){}{3 add} \listplot[showpoints=true,linecolor=blue]{\ data} \end{pspicture}

1 0 0 1 2 3 4 5

5.5 Grcos Com Coordenadas Polares


Com a opo \polarplot=true possvel usarmos o comando \psplot no modo polar da seguinte maneira: \psplot[polarplot=true,. . . ]{ngulo inicial}{ngulo nal}{r()} A equao em cdigos PostScript interpretado como uma funo r = f (), por exemplo, para o crculo com raio 1 e r = sin2 x + cos2 x temos:

by Geovane Krger

.................................................................................................... 108

Cap. 5 O Pacote pstricks-add Parte 2

5.5 Grcos Com Coordenadas Polares

Exemplo 161 (Crculo) /2


1

\begin{pspicture}(0,-2)(-3,2) \psaxes[labelsep=.75mm,ticksize=2pt,labelFontSize=\ scriptsize,linewidth=0.17mm]{->}(0,0) (-1.99,-1.99)(2,2)[$x$,0][$\pi/2$,90]

1 1 1 1 x

\psplot[linecolor=SpringGreen,polarplot=true ]{0}{360}{x sin dup mul x cos dup mul add sqrt } \end{pspicture}

Exemplo 162 Funo: 3 sin x cos x sin3 x + cos3 x


1

\psset{plotpoints=200,unit=0.75}

2 1 4 3 2 1 1 2 1 2

\begin{pspicture*}(-5,-5)(3,3) 3 \psaxes[labelsep=.75mm,ticksize=2pt,labelFontSize=\
2

footnotesize,linewidth=0.17mm]{->}(0,0) (-4.99,-4.99)(3,3)[$x$,0][$\pi/2$,90]
4 5

\psset{linewidth=.35mm,polarplot=true} \psplot[linecolor=red]{140}{310}{3 neg x sin mul x cos mul x sin 3 exp x cos 3 exp add div} \psplot[linecolor=cyan]{140}{310}{6 neg x sin mul x cos mul x sin 3 exp x cos 3 exp add div} \psplot[linecolor=blue]{140}{310}{9 neg x sin mul x cos mul x sin 3 exp x cos 3 exp add div} \end{pspicture*}

3 4
7

Exemplo 163 (Roscea de Trs Ptalas) Funo: a cos 3x /2


1

\psset{plotpoints=200,unit=1} \begin{pspicture}(-2,-2)(2.5,2.5) \psaxes[labelsep=.75mm,arrowlength=1.75,ticksize=2pt, linewidth=0.17mm]{->}(0,0)(-2,-2.5)(3,2.5)[$x$,0][$\ pi/2$,90]

2 1 2 1 1 2 1 2 x

2 3

4 5 6 7 8

\psset{linewidth=.35mm,plotstyle=curve,polarplot=true} \psplot[linecolor=red]{0}{360}{3 x mul cos 1 mul} \psplot[linecolor=green]{0}{360}{3 x mul cos 2 mul} \psplot[linecolor=blue]{0}{360}{3 x mul cos 3 mul} \end{pspicture}

by Geovane Krger

.................................................................................................... 109

Cap. 5 O Pacote pstricks-add Parte 2

5.5 Grcos Com Coordenadas Polares

Exemplo 164 (Curva da Borboleta) Funo: ecos x 2 cos 2x + sin3 x 4

/2 3 2 1 3 2 1 1 2
6 1 2 3

\psset{plotpoints=800} \begin{pspicture}(-3.5,-5)(3,5) \psaxes[labelsep=.75mm,ticksize=2pt, labelFontSize=\scriptsize,linewidth=0.17mm ]{->}(0,0)(-3,-4)(4,4)[$x$,0][$\pi/2$,90] \psset{linewidth=.35mm,polarplot=true} \psplot[linecolor=RedOrange ]{0}{1800}{2.718281 x cos exp 4 x mul cos 2 mul sub x 4 div sin 3 exp add} \end{pspicture}

x
4 5

3 4

Exemplo 165 Funo: 2 + y 3 2 1 3 2 1 1 2 3 1 2 3 x


4 5 1 2 3

cos 5x 2

\psset{plotpoints=200} \begin{pspicture}(-3,-3)(3.5,3.5) \psaxes[labelsep=.75mm,ticksize=2pt, labelFontSize=\scriptsize,linewidth=0.17mm ]{->}(0,0)(-3,-3)(3.5,3.5)[$x$,0][$y$,90] \psset{linewidth=1pt,polarplot=true} \psplot[linecolor=BurntOrange]{0}{720}{2 x 5 mul 2 div cos add} \end{pspicture}

by Geovane Krger

.................................................................................................... 110

Cap. 5 O Pacote pstricks-add Parte 2

5.5 Grcos Com Coordenadas Polares

Exemplo 166 (Roscea de 10 Ptalas) Funo: a sin 10x


1 2 3

\psset{plotpoints=800,unit=.8} \begin{pspicture}(-9,-7)(7,7.5) \psaxes[labelsep=.75mm,arrowlength=1.75,ticksize=2pt,linewidth=0.17mm]{->}(0,0) (-7,-7)(7,7)[$x$,0][$\pi/2$,90] \psset{linewidth=1.5pt,plotstyle=curve,polarplot=true} \psplot[linecolor=red]{0}{360}{10 x mul sin 7 mul} \psplot[linecolor=Orange]{0}{360}{10 x mul sin 6 mul} \psplot[linecolor=yellow]{0}{360}{10 x mul sin 5 mul} \psplot[linecolor=green]{0}{360}{10 x mul sin 4 mul} \psplot[linecolor=blue]{0}{360}{10 x mul sin 3 mul} \psplot[linecolor=cyan]{0}{360}{10 x mul sin 2 mul} \psplot[linecolor=Violet]{0}{360}{10 x mul sin 1 mul} \end{pspicture}

4 5 6 7 8 9 10 11 12

/2 6 5 4 3 2 1 7 6 5 4 3 2 1 1 2 3 4 5 6 7 1 2 3 4 5 6 x

by Geovane Krger

.................................................................................................... 111

Captulo

O Pacote pst-node
Todos os comandos descritos neste captulo fazem parte do pacote \usepackage{pst-node} Este pacote faz parte do pacote pstricks, mas para garantir o funcionamento de todas as opes devemos carreglo individualmente. Os nodos e as conexes de nodos so macros que nos permitem conectar informaes e lugares marcados, sem mesmo conhecer a posio exata do que queremos conectar ou onde as linhas deveriam conectar. Estes macros so muito teis na construo de grafos e rvores, diagramas matemticos, diagramas lingsticos de sintaxe e conexes de idias com qualquer coisa. Existem trs componentes para os macros de nodos: Denies de Nodos: permite-nos atribuir um nome e forma para um objeto. Conexes de Nodos: permite conectar dois nodos identicados pelos seus nomes. Rtulos Para Nodos: permite que ns xemos rtulos nas conexes dos nodos. Ns podemos usar estes macros em qualquer lugar. A melhor maneira de posicionarmos eles depende onde esto sendo aplicados. Para maior exibiliade, ns podemos usar os nodos no ambiente pspicture, posicionar e rotacion-los com o comando \rput. Podemos us-los tambm em ambientes com alinhamentos ou listas. pst-node ainda contm um ambiente especial, \psmatrix, o qual designado para posicionar nodos em uma grade, como diagramas matemticos e grafos. Este pacote ainda contm um alto nvel de macros para rvores, estes macros esto descritos no Captulo ??. Portanto, basta usarmos a imaginao para tirarmos o melhor proveito deste pacote.

112

Cap. 6 O Pacote pst-node

6.1 Nodos

6.1 Nodos
Nodos tm um nome, um limite e um centro. Observao 6.1 O nome dos nodos para fazer referncia quando zermos a conexo entre os nodos. Ns devemos especicar o nome como um argumento dos comandos de nodos. O nome deve conter somente letras e nmeros, mas sempre deve iniciar com uma letra. Nomes mal feitos podem ocasionar erros, por isso, faa nomes simples, de preferncia somente letras. O centro de um nodo onde ca o ponto de conexo. O limite para determinar onde conectar uma conexo de nodo. Os vrios nodos diferem em como eles determinam o centro e limite. Eles tambm diferem em que tipo de objeto eles so criados. A seguir temos os tipos de nodos: \rnode[ponto de referncia]{nome}{coisas} este comando coloca as coisas em um box. O centro do nodo o ponto de referncia, o qual pode ser especicado do mesmo modo que o do comando \rput. \Rnode[parmetros]{nome}{coisas} este comando tambm faz uma caixa, mas o centro xo. A diferena entre estes dois comandos com relao a determinao do centro do nodo. Com Rnode o centro relativo a linha de base e com rnode o centro relativo a opo escolhida e varia de acordo com o tamanho do objeto que determina o nodo. Observe as diferenas: Exemplo 167
1 2

\begin{pspicture}(-1,0)(1,1) \LARGE \rnode{A}{sp}\hskip 2cm \rnode{B}{SP} \ncline{A}{B} \end{pspicture}

sp

SP

3 4 5

Exemplo 168
1 2

\begin{pspicture}(-1,0)(1,1) \LARGE \Rnode{C}{sp}\hskip 2cm \Rnode{D}{SP} \ncline{C}{D} \end{pspicture}

sp

SP

3 4 5

by Geovane Krger

.................................................................................................... 113

Cap. 6 O Pacote pst-node

6.1 Nodos

\pnode(x, y){nome} Este comando cria um nodo sem dimenso no ponto (x, y). \cnode[parmetros](x, y){raio}{nome} . \cnode*[parmetros](x, y){raio}{nome} . Isto desenha um crculo como nodo com raio especicado em raio. A verso estrelada elimina a borda do crculo. Exemplo 169
1 2 3 4 5

\begin{pspicture}(-1,0)(4,1.5) \cnode(0,1){0.3}{A} \pnode(4,0){B} \ncline{<-}{A}{B} \end{pspicture}

\Cnode[parmetros](x, y){nome} \Cnode*[parmetros](x, y){nome} Este comando como \cnode, mas neste caso o raio deve ser especicado como um parmetro denido pela opo radius=dimenso Este comando conveniente quando queremos muitos nodos na forma de crculos mas todos com o mesmo raio. \circlenode[parmetros]{nome}{coisas} \circlenode*[parmetros]{nome}{coisas} Isto uma variao do comando \pscirclebox. \ovalnode[parmetros]{nome}{coisas} \ovalnode*[parmetros]{nome}{coisas} .................................................................................................... 114

by Geovane Krger

Cap. 6 O Pacote pst-node

6.1 Nodos

Isto uma variao do comando \psovalbox. \cnodeput[parmetros]{ngulo}(x, y){nome}{coisas} \cnodeput*[parmetros]{ngulo}(x, y){nome}{coisas} Este uma variao do comando \cput. Exemplo 170
1 2

\begin{pspicture}(-.5,0)(1,1) \circlenode{A}{Crculo} \hskip 1cm \ovalnode{B}{ Elipse} \ncline{A}{B} \end{pspicture}

Crculo

Elipse

3 4

\dianode[parmetros]{nome}{coisas} \dianode*[parmetros]{nome}{coisas} como o comando \diabox. \trinode[parmetros]{nome}{coisas} \trinode*[parmetros]{nome}{coisas} Variao do comando \tribox. Exemplo 171 Losango
1 2 3 4

\begin{pspicture}(-1,0)(5,3) \rput[tl](0,3){\dianode{A}{Losango}} \rput[br](4,0){\trinode{B}{Tringulo}} \nccurve[angleA=-135,angleB=90]{A}{B} \end{pspicture}

Tringulo

\dotnode[parmetros](x, y){nome} Este comando uma variao de \psdot. .................................................................................................... 115

by Geovane Krger

Cap. 6 O Pacote pst-node

6.2 Conexes de Nodo

Exemplo 172
+
1 2 3 4 5

\begin{pspicture}(-1,0)(4.5,3) \dotnode[dotstyle=triangle*,dotscale=2 1](0,0){A} \dotnode[dotstyle=+](4,3){B} \ncline[nodesep=2pt]{A}{B} \end{pspicture}

\fnode[parmetros](x, y){nome} \fnode*[parmetros](x, y){nome} Este comando como \psframe colocado dentro de um rnode, mas mais simples de usar. Exemplo 173
1 2 3 4 5

\begin{pspicture}(-1,0)(5,2) \fnode{A} \fnode*[framesize=1 5pt](3,2){B} \ncline[nodesep=2pt]{A}{B} \end{pspicture}

Existem duas diferenas entre \fnode e \psframe: Temos apenas um argumento (opcional) de coordenada, que neste caso da o centro da caixa. E a largura e altura da caixa e dado pelo parmetro framesize=dim1 dim2 se a dimenso 2 for omitida, ento teremos um quadrado. Padro 10pt.

6.2 Conexes de Nodo


Todas as conexes de nodo iniciam com nc, e quase todas elas tem a mesma sintaxe \nc...[parmetros]{setas}{nodoA}{nodoB} Uma linha desenhada do nodoA para o nodoB. Muitos dos comandos de conexes de nodo so um pouco confusos, mas com uma pequena experimentao ns entenderemos eles e caremos de boca-aberta com as coisas que poderemos fazer. Quando referimos o nodo A e B, estamos referindo somente a ordem em que seus nomes so dados como argumentos para os macros de conexes de nodo.
by Geovane Krger

.................................................................................................... 116

Cap. 6 O Pacote pst-node

6.2 Conexes de Nodo

Observao 6.2 Quando um nome de nodo no pode ser encontrado na mesma pgina em que est o comando de conexo de nodo, provavelmente no teremos nenhuma conexo ou ento algo nada a ver. Entretanto, O
A LTEX no reportar nenhum erro.

As conexes de nodo usam muitos parmetros grcos usuais do PSTricks e mais alguns especiais que veremos aqui. Iniciaremos com um que pode ser aplicado a todas as conexes de nodo: nodesep=dimenso nodesep uma borda em torno dos nodos que adicionado com o propsito de determinar onde conectar as linhas. Padro 0pt. Ainda podemos indicar valores individuais para cada um dos nodos com os parmetros nodesepA=dimenso nodesepB=dimenso Vamos iniciar agora os comandos de conexo de nodo. \ncline[parmetros]{setas}{nodoA}{nodoB} Isto desenha uma linha reta entre os nodos. Exemplo 174 Idia 2
1 2 3 4 5

\begin{pspicture}(-1,-1)(5,2) \rput[bl](0,-1){\rnode{A}{Idia 1}} \rput[tr](4,2){\rnode{B}{Idia 2}} \ncline[nodesep=3pt]{<->}{A}{B} \end{pspicture}

Idia 1

\ncarc[parmetros]{setas}{nodoA}{nodoB} Este conecta os dois nodos com um arco. Exemplo 175 Y


1 2 3 4 5

\begin{pspicture}(-1,-1)(5,2) \cnodeput(0,-1){A}{X} \cnodeput(4,2){B}{Y} \ncarc[nodesep=3pt]{->}{A}{B} \ncarc[nodesep=3pt]{->}{B}{A} \end{pspicture}

by Geovane Krger

.................................................................................................... 117

Cap. 6 O Pacote pst-node

6.2 Conexes de Nodo

O ngulo entre o arco e a linha entre os dois nodos pode ser modicado com o parmetro arcangle=ngulo Padro 8. Para o prximo grupo de conexes de nodo, ns podemos especicar o ngulo entre os nodos pelo parmetro angle=ngulo ou especicar o ngulo em cada um dos nodos pelos parmetros angleA=ngulo angleB=ngulo onde o padro 0. Podemos especicar ainda o comprimento do segmento de linha onde feita as conexes dos nodos (os braos) pelo parmetro arm=dimenso ou especicar o comprimento individual para cada um pelos parmetros armA=dimenso armB=dimenso Padro 10pt. Todas as conexes de nodos consistem de vrios segmentos de linhas, incluindo os braos. O valor de linearc pode ser usado para arredondar os cantos. A seguir temos os outros comandos, iniciando pelo mais simples de todos. \ncdiag[parmetros]{setas}{nodoA}{nodoB} Um brao desenhado em cada nodo, unido pelo ngulo angleA ou angleB, e com comprimento de armA ou armB. Assim, os dois braos esto conectados por uma linha direta, de modo que a linha tenha trs segmentos.

by Geovane Krger

.................................................................................................... 118

Cap. 6 O Pacote pst-node

6.2 Conexes de Nodo

Exemplo 176 Nodo A


1 2 3 4

\begin{pspicture}(-1,-1)(5,2) \rput[tl](0,2){\rnode{A}{\psframebox{Nodo A}}} \rput[br](4,-1){\ovalnode{B}{Nodo B}} \ncdiag[angleA=-90,angleB=90,linearc=.2]{A}{B} \end{pspicture}

Nodo B

Ns podemos xar um ou ambos os comprimentos do brao para zero. Por exemplo se arm=0, os nodos so conectados por uma linha reta como no comando \ncline, mas a diferena que desse modo ns podemos determinar onde a linha conectada. Compare isto no exemplo abaixo. Exemplo 177 XX
1 2 3 4

\begin{pspicture}(-1,-1)(5,3) \rput[tl](4,1){\ovalnode{R}{Raiz}} \cnodeput(0,3){A}{XX} \cnodeput(0,-1){B}{YY} \ncdiag[angleB=180,arm=0]{<-}{A}{R} \ncline{<-}{B}{R} \end{pspicture}

Raiz

5 6 7

YY

\ncdiagg[parmetros]{setas}{nodoA}{nodoB} similar ao comando \ncdiag, mas neste caso somente o brao para o nodo A desenhado. O nal deste brao conectado diretamente ao nodo B. Compare \ncdiagg com \ncdiag quando armB=0. Exemplo 178
1

\begin{pspicture}(-1,-1)(4.5,1) \cnode(0,0){12pt}{a} \rput[l](4,1){\rnode{A}{H}} \rput[l](4,-1){\rnode{B}{T}} \ncdiagg[angleA=180,armA=1.5,nodesepA=3pt]{A}{a} \ncdiag[angleA=180,armA=1.5,armB=0,nodesepA=3pt]{B }{a} \end{pspicture}

2 3 4 5

Se usarmos \ncdiagg com armA=0, ento teremos uma linha reta unida no nodo A com um ngulo que ns podemos especicar e o ngulo do nodo B determinado automaticamente.
by Geovane Krger

.................................................................................................... 119

Cap. 6 O Pacote pst-node

6.2 Conexes de Nodo

\ncbar[parmetros]{setas}{nodoA}{nodoB} Com este comando, os braos so posicionados de acordo com o parmetro angle. A linha que une os dois braos forma sempre uma ngulo de 90o com os mesmos e apenas o comprimento de um dos braos pode ser alterado, pois o outro alterado automaticamente para que a linha continue formando 90o com os braos. Exemplo 179
1 2

\begin{pspicture}(-1,-1)(0,1) \rnode{A}{Conectando} as \rnode{B}{palavras}! \ncbar[nodesep=3pt,angle=-90]{<-**}{A}{B} \ncbar[nodesep=3pt,angle=70]{A}{B} \end{pspicture}

Conectando as palavras!

3 4 5

\ncangle[parmetros]{setas}{nodoA}{nodoB} Este um dos comandos de conexo de nodo mais complicados. Primeiramente, neste comando o comprimento do brao A xo, s podemos alterar o comprimento do brao B e o comprimento do brao A se ajustar automaticamente para que a unio dele com a linha forme um ngulo de 90o , ou seja um ngulo reto. Geralmente \ncangle faz trs segmentos de linha. Observe os exemplos a seguir: Exemplo 180 Nodo A
1 2 3 4

\begin{pspicture}(-1,-1)(1,2) \rput[tl](0,2){\rnode{A}{\psframebox{Nodo A}}} \rput[br](4,-1){\ovalnode{B}{Nodo B}} \ncangle[angleA=-90,angleB=90,armB=1cm]{A}{B} \end{pspicture}

Nodo B

Exemplo 181 Nodo A


1 2 3 4

\begin{pspicture}(-1,-1)(1,2) \rput[tl](0,2){\rnode{A}{\psframebox{Nodo A}}} \rput[br](4,-1){\ovalnode{B}{Nodo B}} \ncangle[angleA=-70,angleB=90,armB=1cm,linewidth =1.5pt]{A}{B} \end{pspicture}

Nodo B

by Geovane Krger

.................................................................................................... 120

Cap. 6 O Pacote pst-node

6.2 Conexes de Nodo

Exemplo 182 Nodo A


1 2 3

\begin{pspicture}(-1,0)(1,2) \rput[tl](0,2){\rnode{A}{\psframebox{Nodo A}}} \rput[br](4,0){\ovalnode{B}{Nodo B}} \ncangle[angleB=90,armB=0,linearc=0.5]{A}{B} \end{pspicture}

Nodo B

4 5

\ncangles[parmetros]{setas}{nodoA}{nodoB} similar a \ncangle, mas o comprimento do brao A neste caso pode ser xado pelo parmetro armA. O brao A conectado ao brao B atravs de outros dois segmentos de linhas, onde o brao A forma um ngulo reto com o primeiro segmento que forma um ngulo reto com o segundo segmento. O ngulo com que o ltimo segmento unido ao brao B e o comprimento do segmento depende da posio do dois braos. Geralmente \ncangles produz um total de quatro segmentos de linhas. Exemplo 183 Nodo A
1 2 3 4

\begin{pspicture}(-1,-1)(1,2) \rput[tl](0,2){\rnode{A}{\psframebox{Nodo A}}} \rput[br](4,-1){\ovalnode{B}{Nodo B}} \ncangles[angleA=-90,armA=1cm,armB=.5cm]{A}{B} \end{pspicture}

Nodo B

Exemplo 184 Nodo A


1 2 3 4

\begin{pspicture}(-1,-1)(1,3) \rput[tl](0,3){\rnode{A}{\psframebox{Nodo A}}} \rput[br](4,-1){\ovalnode{B}{Nodo B}} \ncangles[angleA=-90,angleB=135,armA=1cm,armB=.5cm ,linearc=.15]{A}{B} \end{pspicture}

Nodo B

\ncloop[parmetros]{setas}{nodoA}{nodoB} Este comando da mesma famlia que \ncangle e \ncangles, mas agora teremos cinco segmentos de linha desenhados. Uma conseqncia disto, que \ncloop pode alcanar os lados opostos dos nodos. O
by Geovane Krger

.................................................................................................... 121

Cap. 6 O Pacote pst-node

6.2 Conexes de Nodo

comprimento dos braos so xados por armA e armB. Iniciando no brao A, \ncloop faz um ngulo de 90 graus com a esquerda desenhando um segmento de comprimento loopsize=dimenso Este segmento conecta o brao B do mesmo modo que o brao A conecta o brao B com \ncline; isto , dois segmentos a mais so desenhados, os quais unem o primeiro segmento e cada um dos outros sempre com um ngulo reto, e ento, unem ao brao B. Por exemplo Exemplo 185
1 2

\begin{pspicture}(-1,-1)(0,2) \rnode{a}{\psframebox{\Huge Um loop}} \ncloop[angleB=180,loopsize=1,arm=.5,linearc =.15]{->}{a}{a} \rput{90}(1,0.7){\footnotesize loopsize} \psline{|<->|}(0.7,0.2)(0.7,1.2) \end{pspicture}

loopsize

Um loop

4 5 6

Neste exemplo acima, o nodo A e o nodo B so o mesmo. Ns podemos fazer isso com todos os tipos de conexo de nodos (mas isto nem sempre faz sentido). O prximo exemplo, \ncloop conecta dois nodos diferentes: Exemplo 186
1 2 3

\begin{pspicture}(-1,0)(0,0) \parbox{4cm}{ \rnode{a}{\psframebox{\large Incio}} \hspace*{\fill} \rnode{b}{\psframebox{\large Fim}} \ncloop[angleA=180,loopsize=1.5,arm=.5,linearc =.6,nodesep=3pt]{-<}{a}{b}} \end{pspicture}

Incio

Fim

4 5 6

As duas conexes de nodo a seguir so um pouco diferente do restante. \nccurve[parmetros]{setas}{nodoA}{nodoB} Este comando desenha uma curva de Bezier entre os dois nodos

by Geovane Krger

.................................................................................................... 122

Cap. 6 O Pacote pst-node

6.2 Conexes de Nodo

Exemplo 187 Nodo B


1 2 3 4

\begin{pspicture}(-1,-1)(4.5,2) \rput[bl](0,-1){\rnode{A}{\psframebox{Nodo A}}} \rput[tr](4,2){\ovalnode{B}{Nodo B}} \nccurve[angleB=180]{A}{B} \end{pspicture}

Nodo A

O ngulo com que a curva une os pontos dada pelos parmetro j vistos acima. A distncia entre os pontos de controle da curva dado pelo parmetro ncurv=nmero Padro 0.67. Ainda podemos especicar cada ponto de controle por ncurvA= ncurvB= Um valor pequeno d uma curva mais apertada. A distncia entre o incio do arco e o primeiro ponto de controle
1 2

multiplicado pela distncia entre os dois pontos nais.

Exemplo 188 Nodo B


1 2 3 4

\begin{pspicture}(-1,-1)(4.5,2) \rput[bl](0,-1){\rnode{A}{\psframebox{Nodo A}}} \rput[tr](4,2){\ovalnode{B}{Nodo B}} \nccurve[angleB=180,ncurvA=3,ncurvB=.7]{A}{B} \end{pspicture}

Nodo A

\nccircle[parmetros]{setas}{nodoA}{raio} desenha um crculo, ou parte de um crculo, que, se completa, passando pelo centro do nodo no sentido antihorrio, com um ngulo de angleA. \nccircle s pode ser usado para conectar um nodo a si mesmo, ele a nica conexo de nodo com est propriedade; e tambm especial pelo argumento adicional usado para especicar o raio do crculo.

by Geovane Krger

.................................................................................................... 123

Cap. 6 O Pacote pst-node

6.2 Conexes de Nodo

Exemplo 189
1 2 3

\begin{pspicture}(-1,-1)(4.5,2) \rput[bl](0,0){\rnode{A}{\textbf{Nodo}}} \rput[bl](3,0){\rnode{B}{\textbf{Nodo}}} \nccircle{->}{A}{.7cm} \nccircle[angleA=90,,nodesep=2pt]{->}{B}{.7cm} \end{pspicture}

Nodo

Nodo

4 5 6

As ltimas duas conexes de nodos tambm so especiais. Estas no conectam os nodos com uma curva aberta, elas colocam os nodos dentro de um box, ou um box curvado. Em ambos os casos, a metade da largura do box dado pelo parmetro boxsize=dimenso Padro 0.4cm. Ns devemos sempre ajustar esse valor corretamente para que os nodos quem dentro do box. O parmetro boxsize na verdade xa j os parmetros boxheight e boxdepth. O m do box pode ser extendido alm dos nodos pelos parmetros nodesepA e nodesepB. Os comandos so: \ncbox[parmetros]{nodoA}{nodoB} Este coloca os nodos dentro de um box com linhas retas. Exemplo 190
1

\begin{pspicture}(-1,-.5)(4.5,3) \rput[bl](3.5,2){\rnode{A}{\textbf{Idia 1}}} \rput[bl](.5,0){\rnode{B}{\textbf{Idia 2}}} \ncbox[nodesep=.5cm,boxsize=.6,linearc=.25, linestyle=dashed]{A}{B} \end{pspicture}

Idia 1

2 3 4

Idia 2

\ncarcbox[parmetros]{nodoA}{nodoB} Este coloca os nodos dentro de um box curvado, com arcangle de afastamento da linha direta entre os dois nodos.

by Geovane Krger

.................................................................................................... 124

Cap. 6 O Pacote pst-node

6.2 Conexes de Nodo

Exemplo 191
1

\begin{pspicture}(-1,0)(4.5,2.5) \rput[bl](3.5,2){\rnode{A}{\textbf{1}}} \rput[bl](.5,0){\rnode{B}{\textbf{2}}} \ncarcbox[nodesep=.2cm,boxsize=.4,linearc=.4, arcangle=60]{A}{B} \end{pspicture}

2 3 4

O arco desenhado no sentido anti-horrio do nodo A para o nodo B. Existe ainda um outro parmetro para todos os tipos de conexes de nodo, exceto \ncarcbox, offset=dimenso que desloca o ponto onde feito a conexo para cima por dimenso (isto, assumindo que as conexes partem sempre da da esquerda para a direita). Padro 0pt. Tambm pode ser feito individualmente para cada nodo: offsetA=dimenso offsetB=dimenso Existe dois maneiras principais de se usar este parmetro. Primeira, nos deixa fazer duas linhas paralelas como o comando \ncline: Exemplo 192 Y
1 2 3 4

\begin{pspicture}(-1,0)(4.5,2) \cnodeput(0,0){A}{X} \cnodeput(4,2){B}{Y} \psset{nodesep=3pt,offset=4pt,arrows=->>} \ncline{A}{B} \ncline{B}{A} \end{pspicture}

5 6

Segundo, quando zermos vrias conexes com um mesmo nodo: Exemplo 193
1 2 3 4 5

\begin{pspicture}(-1,0)(0,0) \rnode{A}{Palavra 1} e \rnode{B}{Palavra 2} e \rnode{C}{Palavra 3} \ncbar[offsetB=4pt,angleA=-90,nodesep=3pt]{->}{A}{B} \ncbar[offsetA=4pt,angleA=-90,nodesep=3pt]{->}{B}{C} \end{pspicture}

Palavra 1 e Palavra 2 e Palavra 3

by Geovane Krger

.................................................................................................... 125

Cap. 6 O Pacote pst-node

6.3 Rtulos de Conexes de Nodo I

Mais um parmetro de truque: usando o parmetro de borda, border=dimenso ns podemos criar a impresso de que uma conexo de nodo passa por sobre a outra. Padro 0pt. Exemplo 194
1

\begin{pspicture}(-1,0)(4.5,2.5) \rput[bl](3.5,2){\rnode{A}{\textbf{1}}} \rput[bl](.5,0){\rnode{B}{\textbf{2}}} \ncarcbox[nodesep=.2cm,boxsize=.4,linearc=.4, arcangle=60,border=1.5pt,linecolor=white, bordercolor=gray]{A}{B}

2 3 4

2
5

\end{pspicture}

Observao 6.3 Ns descrevemos nesta seo todos os tipos de comandos especiais para a unio de nodos, mas tambm podemos usar qualquer um dos outros comandos de grcos do pacote pstricks, como \psline em outros.

6.3 Rtulos de Conexes de Nodo I


Agora ns veremos comandos para colocar rtulos (textos) nas conexes de nodo. Os comandos de rtulos devem sempre ser colocados respectivamente logo aps o comando de conexo de nodo que receber o rtulo. Temos dois grupos de rtulos para conexes, os quais diferem em como eles selecionam o ponto onde vai o rtulo na conexo de nodo. Nesta seo ns descreveremos o primeiro grupo: \ncput[parmetros]{coisas} \naput[parmetros]{coisas} \nbput[parmetros]{coisas} Este trs comandos diferem em onde os rtulos cam posicionados com respeito a linha (considerando que as conexes de nodo vo da esquerda para a direita): ncput entre da linha naput acima da linha .................................................................................................... 126

by Geovane Krger

Cap. 6 O Pacote pst-node

6.3 Rtulos de Conexes de Nodo I

nbput abaixo a linha Exemplo 195


1 2

\begin{pspicture}(-1,-2)(4.5,2) \cnode(0,0){.5cm}{R} \cnode*(4,2){4pt}{A} \cnode*(4,0){4pt}{B} \cnode*(4,-2){4pt}{C} \ncline[nodesep=3pt]{R}{A} \naput{acima} \ncline[nodesep=3pt]{R}{B} \ncput*{entre} \ncline[nodesep=3pt]{R}{C} \nbput{abaixo} \end{pspicture}

acima

3 4 5

entre

6 7 8

abaixo

9 10 11 12

A verso estrelada faz com que no aparea nenhuma linha cruzando o texto. \naput e \nbput usam o mesmo algoritmo de \uput para colocar os rtulos, e a distncia entre a linha e os rtulos dado por labelsep (pelos menos se as linhas forem retas). \ncput usa o mesmo sistema de \rput para selecionar o ponto de referncia. Ns podemos escolher este ponto de referncia usando o parmetro ref=referncia Padro c. A rotao dos rtulos controlado pelo parmetro grco nrot=rotao Padro 0. rotao pode ser qualquer forma de ngulo, pode ser tambm as formas que so usadas para o comando \rput e ainda pode ser da forma {:ngulo} onde ngulo pode ser :U para up=0o , :L para left=90o , :D para down=180o e :R para right=270o . Estes modelos de ngulos tambm podem ser usados com o comando \rput. O ngulo medido com respeito conexo de nodo. Por exemplo, se o ngulo {:U}, ento o rtulo colocado paralelamente a conexo de nodo. Com outros comandos que temos para colocar rtulos, ns realmente temos muito controle sobre a posio deles.

by Geovane Krger

.................................................................................................... 127

Cap. 6 O Pacote pst-node

6.3 Rtulos de Conexes de Nodo I

Exemplo 196
1

\begin{pspicture}(-1,0)(4.5,3) \pspolygon(0,0)(4,2)(4,0) \pcline[offset=12pt]{|-|}(0,0)(4,2)

p com

n ime

to

2 3 4

\ncput*[nrot=:U]{comprimento} 5 \end{pspicture}

A posio do rtulo na conexo de nodo controlado pelo parmetro npos=nmero bruscamente, nmero funciona de acordo com o seguinte esquema: Cada conexo de nodo tem um ou mais segmentos, incluindo os braos e as linhas de conexo. Um nmero entre 0 e 1 coloca um rtulo no primeiro segmento do nodo A para B, onde os valores intermedirios vo do incio do segmento para o m, isto , 0,5 o meio do segmento. Um nmero entre 1 e 2 coloca um rtulo no segundo segmento, e assim por diante. Cada tipo de conexo de nodo tem seu valor padro prprio para npos. Na tabela a seguir temos os valores padro para cada conexo de nodo. Conexo \ncline \nccurve \ncarc \ncbar \ncdiag \ncdiagg \ncangle \ncangles \ncloop \nccircle \ncbox \ncarcbox Veja um exemplo: Segmentos 1 1 1 3 3 2 3 4 5 1 4 4 0 0 0 0 0 0 0 0 0 0 0 0 Alcance pos pos pos pos pos pos pos pos pos pos pos pos 1 1 1 3 3 2 3 4 5 1 4 4 Padro 0.5 0.5 0.5 1.5 1.5 0.5 1.5 1.5 2.5 0.5 0.5 0.5

by Geovane Krger

.................................................................................................... 128

Cap. 6 O Pacote pst-node

6.3 Rtulos de Conexes de Nodo I

Exemplo 197 Nodo A d aqui


1 2 3 4 5 6 7

\begin{pspicture}(-1,0)(4.5,3) \rput[tl](0,3){\rnode{A}{\psframebox{Nodo A}}} \rput[br](3.5,0){\ovalnode{B}{Nodo B}} \ncangles[angleA=-90,arm=.4cm,linearc=.15]{A}{B} \ncput*{d} \nbput[nrot=:D,npos=2.5]{aqui} \end{pspicture}

Nodo B

Com \ncbox e \ncarcbox, os segmentos correm no sentido anti-horrio, comeando no lado mais baixo do box. Entretanto, com \nbput o rtulo ca na parte externa do box, e com \naput o rtulo ca na parte interna do box. Exemplo 198
1 2

\begin{pspicture}(-1,0)(4.5,3) \rput[bl](.5,0){\rnode{A}{1}} \rput[tr](3.5,2){\rnode{B}{2}} \ncarcbox[nodesep=.2cm,boxsize=.4,linearc=.4, arcangle=50,linestyle=dashed]{<->}{A}{B} \nbput[npos=2]{Fora} \naput[nrot=:U]{Dentro} \end{pspicture}

Fora

De

o ntr

5 6 7

Se ns selecionarmos o parmetro shortput=none/nab/tablr/tab (padro none), para nab, ento imediatamente aps a conexo de nodo ns podemos usar em vez de \naput e _ em vez de \nbput. Exemplo 199
1

\begin{pspicture}(-1,-1.5)(4.5,1.5) \cnode(0,0){.5cm}{r} \cnode*(3,1.5){4pt}{A} \cnode*(3,-1.5){4pt}{B} \psset{nodesep=3pt,shortput=nab} \ncline{r}{A}^{$x$} \ncline{r}{B}_{$y$} \end{pspicture}

2 3 4 5 6

7 8

by Geovane Krger

.................................................................................................... 129

Cap. 6 O Pacote pst-node

6.4 Rtulos de Conexes de Nodos II

As opes shortput=tablr e shortput=tab sero descritas nas sees a seguir.

6.4 Rtulos de Conexes de Nodos II


O segundo grupo descrito pelos seguintes comandos: \tvput[parmetros]{coisas} \tlput[parmetros]{coisas} \tr[parmetros]{coisas} \th[parmetros]{coisas} \ta[parmetros]{coisas} \tb[parmetros]{coisas} A diferena destes comandos para o primeiro grupo que estes encontram a posio como um ponto intermedirio entre o centro dos nodos, tanto na horizontal como na vertical. Este grupo de comandos so bons para rvores e diagramas matemticos. Ns especicamos a posio xando o parmetro tpos=nmero Padro 0.5. Os trs primeiros comandos encontram a posio na direo vertical de acordo com uma frao de tpos do nodo superior para o nodo inferior. Os outros trs comandos encontram a posio na direo horizontal, da esquerda para a direita. Ento os comandos colocam os rtulos na linha ou prximo a linha como segue abaixo: Comando \tvput \tlput \trput \thput \taput \tbput Direo vertical vertical vertical horizontal horizontal horizontal Posio meio esquerda direita meio acima abaixo

by Geovane Krger

.................................................................................................... 130

Cap. 6 O Pacote pst-node

6.4 Rtulos de Conexes de Nodos II

Exemplo 200
1 2 3 4

\begin{pspicture}(-1,0)(-1,1.5) \setlength{\arraycolsep}{1.1cm} $\begin{matrix} \Rnode{a}{(X-A)} & \Rnode{b}{A}\\[2cm] \Rnode{c}{x} & \Rnode{d}{\tilde{X}} \end{matrix} \psset{nodesep=5pt,arrows=->} \ncline{a}{c}\tlput{\scriptstyle r} \ncline{a}{b}\taput{\scriptstyle u} \ncline[linestyle=dashed]{c}{d}\tbput{\scriptstyle b} \ncline{b}{d}\trput{\scriptstyle s}$ \end{pspicture}

(X A)

5 6 7

8 9

10 11 12

Estes comandos no possuem argumentos ou parmetros de rotao. Entretanto, ns podemos rotacionar as coisas usando rotao de um box, por exemplo \rotateleft. Se ns usarmos o parmetro que foi visto no m da seo anterior, shortput=none/nab/tablr/tab com shortput=tablr, ento ns podemos usar os seguintes caracteres de abreviao para os comandos vistos nesta seo: Caractere _ < > Abreviao de \taput \tbput \tlput \trput

6.4.1 Anexando Rtulos Nos Prprios Nodos


O comando \nput[parmetros]{ngulo de referncia}{nome}{coisas} anexa coisas no nodo nome. Isto posicionado a uma distncia labelsep do nodo, na direo ngulo de referncia a partir do centro do nodo. Se ns quisermos rotacionar o nodo, usamos o parmetro rot=rotao .................................................................................................... 131

by Geovane Krger

Cap. 6 O Pacote pst-node

6.5 Diagramas Matemticos e Grcos

onde rotao qualquer tipo de rotao vlida para \rput (Padro 0). A posio do rtulo tambm leva em conta o parmetro offsetA. No exemplo a seguir, mostraremos como marcar um ngulo usando \nput. Exemplo 201
1 2

\begin{pspicture}(-1,0)(4.5,3) \rput[br](4,0){\ovalnode{B}{Nodo B}} \rput[tl](0,3){\rnode{A}{\psframebox{Nodo A}}} \nput[labelsep=0]{-70}{A}{ \psarcn(0,0){.4cm}{0}{-70} \uput{.4cm}[-35](0,0){\texttt{ngulo A}}} \ncangle[angleA=-70,angleB=90,armB=1cm,linewidth=1.2 pt]{A}{B} \ncput[nrot=:U,npos=1]{\psframe[dimen=middle](0,0) (.35,.35)} \end{pspicture}

Nodo A ngulo A

3 4 5 6 7

Nodo B
8

6.5 Diagramas Matemticos e Grcos


Para muitas aplicaes, como os diagramas matemticos, til organizar os nodos em uma grade. Ns at poderamos fazer isso com ambientes de alinhamento ou matrizes do pacote AMS, mas isso muito primitivo. Neste caso, PSTricks contm seu prprio ambiente de alinhamento especialmente adaptado para este propsito: \psmatrix[parmetros] ... \endpsmatrix Exemplo 202 A
1 2 3

\begin{pspicture}(-1,0)(0,3) $\psmatrix[colsep=1cm,rowsep=1cm] & A &\\ B & E & C\\ & D & \endpsmatrix$ \end{pspicture}

4 5 6

O ambiente \psmatrix semelhante ao ambiente \matrix do pacote AMS. No existe argumento para especicar a quantidade de colunas usadas, ou seja, podemos usar quantas precisarmos. As entradas
by Geovane Krger

.................................................................................................... 132

Cap. 6 O Pacote pst-node

6.5 Diagramas Matemticos e Grcos

so horizontalmente centralizadas. As linhas so terminadas por duas \\ e ainda, podemos usar o ambiente \psmatrix tanto no modo matemtico ou fora dele. O primeiro exemplo no teve interesse pois no foi usado nodos. Na verdade, cada entrada um nodo. O nome dos nodos neste caso so da forma {linha,coluna} sem espaos aps a vrgula. Veja o prximo exemplo. Exemplo 203
1 2 3 4

\begin{pspicture}(-1,0)(0,3) $\psmatrix[colsep=1cm] & X\\ Y & Z \endpsmatrix \everypsbox{\scriptstyle} \psset{nodesep=3pt,arrows=->} \ncline{1,2}{2,1} \tlput{f} \ncline{1,2}{2,2} \trput{g} \ncline[linestyle=dotted]{2,1}{2,2} \tbput{h}$ \end{pspicture}

X
f g

5 6 7 8

9 10 11

Ns podemos incluir as conexes de nodo dentro do ambiente \psmatrix aps a ltima entrada e antes de \endpsmatrix. Uma vantagem em fazer isto que shortput=tab padro dentro de um ambiente \psmatrix. Exemplo 204
1

\begin{pspicture}(-.5,0)(0,3) $\psmatrix U\\ & X\times_z Y & X\\ & Y & Z \everypsbox{\scriptstyle} \psset{nodesep=3pt,arrows=->} \ncline{1,1}{2,2}_{y} \ncline[doubleline=true,linestyle=dashed ]{-}{1,1}{2,3}^{x} \ncline{2,2}{3,2}<{q} \ncline{2,2}{2,3}_{p} \ncline{2,3}{3,3}>{f} \ncline{3,2}{3,3}_{g} \endpsmatrix$ \end{pspicture}

U
x y

2 3 4 5

X z Y
q

X
f

6 7 8 9

10 11 12 13

by Geovane Krger

.................................................................................................... 133

Cap. 6 O Pacote pst-node

6.5 Diagramas Matemticos e Grcos

Ns podemos escolher tambm o tipo de nodo produzido usando o parmetro mnode=tipo Os tipos vlidos so R, r, C, f, p, circle, oval, dia, tri, dot, none que equivalem a \Rnode, \rnode, \Cnode, \fnode, \pnode, \circlenode, \ovalnode, \dotnode e nenhum nodo, respectivamente. Note que para crculos, usamos mnode=C e xamos o raio com o parmetro radius. O tipo padro mnode=R. Exemplo 205
1 2

\begin{pspicture}(-.5,0)(0,3) $\psmatrix[mnode=circle,colsep=1] & A\\ B & E & C\\ & D & \endpsmatrix$ \psset{shortput=nab,labelsep=3pt,arrows=->} \small \ncline{2,2}{2,3}^[npos=.75]{a} \ncline{2,2}{2,1}^{b} \ncline{3,2}{2,1}^{c} \ncarc[arcangle=-40,border=3pt]{3,2}{1,2}_[npos =.3]{d}^[npos=.7]{e} \ncarc[arcangle=12]{1,2}{2,1}^{f} \ncarc[arcangle=12]{2,1}{1,2}^{g} \end{pspicture}

A
g f e

3 4 5 6

B
c

a d

7 8 9 10

11 12

13 14 15

Note que um nodo feito somente para entradas no vazias. Ns podemos especicar tambm um nodo para entradas vazias usando o parmetro emnode=tipo tipo so os mesmos vistos para o parmetro acima. Padro none. Ns tambm podemos escolher parmetros para cada uma das entradas, iniciando a entrada com os parmetros entre colchetes. Observao 6.4 Note que, as escolhas afetam o modo como os nodos so feitos, no o que contm em cada entrada, neste caso devemos usar \psset.

by Geovane Krger

.................................................................................................... 134

Cap. 6 O Pacote pst-node

6.5 Diagramas Matemticos e Grcos

Exemplo 206
1 2

\begin{pspicture}(-1,0)(0,3) $\psmatrix[colsep=1cm] & [mnode=circle] X\\ Y & [mnode=tri] Z \endpsmatrix \psset{nodesep=3pt,arrows=->} \ncline{1,2}{2,1} \ncline{1,2}{2,2} \ncline[linestyle=dotted]{2,1}{2,2}$ \end{pspicture}

3 4 5 6 7

8 9 10

Tambm podemos xar um nome prprio para um nodo usando o parmetro name=nome no incio das entradas. Ns ainda assim podemos referenciar um nodo por {linha,coluna}, mas usar os nodos dando nomes a eles melhor pelas seguinte razes: O nome mais fcil de ser lembrado; Ao contrrio dos nomes {linha,coluna}, os nomes dados por ns permanecem vlidos mesmo quando adicionarmos alguma coluna ou linha extra. A seguir temos mais alguns parmetros para encerrar essa seo. mcol=l/r/c Com este parmetro ns podemos escolher como os nodos so justicados, onde l esquerda, r direita e c centro. Padro c. rowsep=dimenso colsep=dimenso O espao entre as linhas e colunas. Padro 1.5cm em ambos. mnodesize=dimenso Se ns quisermos que os nodos tenham uma tamanho xo, devemos usar um valor positivo. Padro -1pt. Se ns quisermos que uma entrada se extenda atravs de vrias colunas, podemos usar o comando
by Geovane Krger

.................................................................................................... 135

Cap. 6 O Pacote pst-node

6.5 Diagramas Matemticos e Grcos

\psspan{valor inteiro}
A no nal da entrada. Esta opo como o comando \multicolumn do LTEX.

Exemplo 207
1 2 3

\begin{pspicture}(-.1,0)(0,3) $\psmatrix[rowsep=1,colsep=1] &[name=SL] \Sigma^L &&&& [name=SR] \Sigma^R\\[0cm] [name=L] L && [name=Lr] L_r && [name= R] R\\[1.5cm] [name=Lm] L_m && [name=Krm] K_{r,m} && [name=Rm] R_{m^*}\\ & [name=SG] \Sigma^G &&&& [name=SH] \ Sigma^H\\[0cm] [name=G] G && [name=Gr] G_{r^*} && [ name=H] H

L
L R i1

Lr

R
7

i2

i4

i6

8 9 10

%
\everypsbox{\scriptstyle} \psset{arrows=->,nodesep=2mm,border=3 pt} \ncline{Lr}{R}^{r} \ncline{Krm}{Rm}^{r} \ncline{Gr}{H}_{r^*} \ncline{Lr}{L}^[tpos=0.3]{i_1} \ncline{Krm}{Lm}^[tpos=0.3]{i_3} \ncline{Gr}{G}_{i_5} \ncline{SL}{SR}^{\varphi^r} \ncline{SG}{SH}_{\varphi^{r^*}} \ncline{SR}{SH}>{\varphi^{m^*}} \ncline{SL}{SG}<{\varphi^m} \ncline{Lm}{G}<{m} \ncline{Krm}{Lr}>{i_4} \ncline{Rm}{H}>[tpos=0.3]{m^*} \ncline{Lm}{L}<{i_2} \ncline{Krm}{Gr}>[tpos=0.3]{m} \ncline{Rm}{R}>{i_6} \ncline{L}{SL}<[tpos=0.3]{\lambda^L} \ncline{R}{SR}>[tpos=0.6]{\lambda^R} \ncline{G}{SG}<[tpos=0.3]{\lambda^G} \ncline[linestyle=dashed]{H}{SH}>[ tpos=0.6]{\lambda^H} \endpsmatrix$ \end{pspicture}

i3

Lm

Kr,m
m

Rm
m

11 12 13

m G

G
r

H
H

14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

i5

31 32

by Geovane Krger

.................................................................................................... 136

Captulo

O Pacote pst-grad
Todos os parmetros do pacote \usepackage{pst-grad} esto disponveis somente quando o gradiente usado com a opo lltstyle=gradient. Existe ainda outro pacote que funciona como se fosse um adicional a este pacote, o qual pode ser usado para preenchimentos em gradiente circulares. Este pacote visto no Captulo ??. O preenchimento padro da opo gradient em tons de azul, como no exemplo a seguir: Exemplo 208
1 2 3

\begin{pspicture}(-1,0)(5,2) \psframe[fillstyle=gradient](0,0)(5,2) \end{pspicture}

Para alterarmos as cores do preenchimento e outros detalhes temos uma lista de opes que veremos no que segue, sempre com um exemplo de cada opo. Observao 7.1 Um dos problemas deste pacote, que cores no formato CMYK muitas vezes podem no funcionar corretamente, o melhor usar o formato RGB.

7.1 Opes
gradbegin=cor 137

Cap. 7 O Pacote pst-grad

7.1 Opes

Esta opo ns podemos usar para escolher a cor que dar incio ao gradiente. A cor nal usando s essa opo contnua sendo ainda um ton de azul. E para alterarmos a cor que dar m ao gradiente podemos usar a opo gradend=cor Exemplo 209
1 2

\begin{pspicture}(-1,0)(5,2) \psframe[fillstyle=gradient,gradbegin=white](0,0) (5,2) \end{pspicture}

Exemplo 210
1 2

\begin{pspicture}(-1,0)(5,2) \psframe[fillstyle=gradient,gradend=white](0,0) (5,2) \end{pspicture}

Exemplo 211
1 2

\begin{pspicture}(-1,0)(5,2) \psframe[fillstyle=gradient,gradbegin=red,gradend= yellow](0,0)(5,2) \end{pspicture}

Uma gradiente no nada mais que uma seqncia de linhas coloridas, e largura destas linhas depende muito da resoluo suportada pelo driver de video ou impressora que ser impresso, mas isto um caso a parte. No nosso caso, a opo gradlines=nmero permite escolher a quantidade de linhas coloridas que devem ser produzidas. Exemplo 212
1 2 3

\begin{pspicture}(-1,0)(5,2) \psframe[fillstyle=gradient,gradlines=6](0,0)(5,2) \end{pspicture}

by Geovane Krger

.................................................................................................... 138

Cap. 7 O Pacote pst-grad

7.1 Opes

A opo gradmidpoint= denota o ponto relativo onde a cor nal xada. Este valor deve ser nmeros entre 0 e 1. Exemplo 213
1 2

\begin{pspicture}(-1,0)(5,2) \psframe[fillstyle=gradient,gradmidpoint=0](0,0) (5,2) \end{pspicture}

Exemplo 214
1 2

\begin{pspicture}(-1,0)(5,2) \psframe[fillstyle=gradient,gradmidpoint=.5](0,0) (5,2) \end{pspicture}

Exemplo 215
1 2

\begin{pspicture}(-1,0)(5,2) \psframe[fillstyle=gradient,gradmidpoint=1](0,0) (5,2) \end{pspicture}

gradangle=ngulo determina o ngulo do gradiente da linha reta. Exemplo 216


1 2 3

\begin{pspicture}(-1,0)(5,2) \psframe[fillstyle=gradient,gradangle=90](0,0)(5,2) \end{pspicture}

by Geovane Krger

.................................................................................................... 139

Cap. 7 O Pacote pst-grad

7.1 Opes

Exemplo 217
1 2

\begin{pspicture}(-1,0)(5,2) \psframe[fillstyle=gradient,gradmidpoint=.5, gradangle=45](0,0)(5,2) \end{pspicture}

Com a opo GradientCircle=true podemos criar gradientes circulares. O raio do crculo pode ser alterado com a opo GradientScale e a posio do centro do crculo pode ser modicada com a opo GradientPos A posio das coordenada referente a base do sistema de coordenadas, que determinado pelo ambiente pspicture como uma regra. Exemplo 218
1 2

\begin{pspicture}(-1,0)(5,2) \psframe[fillstyle=gradient,GradientCircle=true ](0,0)(5,2) \end{pspicture}

Exemplo 219
1 2

\begin{pspicture}(-1,0)(5,2) \psframe[fillstyle=gradient,GradientCircle=true, GradientScale=3](0,0)(5,2) \end{pspicture}

Exemplo 220
1 2

\begin{pspicture}(-1,0)(5,2) \psframe[fillstyle=gradient,GradientCircle=true, GradientScale=2,GradientPos={(1,1.5)}](0,0) (5,2) \end{pspicture}

by Geovane Krger

.................................................................................................... 140

Cap. 7 O Pacote pst-grad

7.1 Opes

A ltima opo deste pacote permite que ns usemos cores no formato HSB. gradientHSB=true Exemplo 221
1 2 3 4

\newhsbcolor{cor1}{.5 0.8 0} \newhsbcolor{cor2}{.5 0.8 1} \begin{pspicture}(-1,0)(5,3) \psframe[fillstyle=gradient,gradientHSB=true, gradmidpoint=0.5,gradbegin=cor1,gradend=cor 2](0,0)(5,3) \end{pspicture}

Exemplo 222
1 2 3 4

\newhsbcolor{cor1}{1 1 1} \newhsbcolor{cor2}{.9999 .9999 .9999} \begin{pspicture}(-1,0)(5,3) \psframe[fillstyle=gradient,gradientHSB=true, gradmidpoint=1,gradbegin=cor1,gradend=cor 2](0,0)(5,3) \end{pspicture}

Exemplo 223
1 2 3 4

\newhsbcolor{cor1}{.1 0.7 0.3} \newhsbcolor{cor2}{.1 0.7 1} \begin{pspicture}(-1,0)(5,3) \psframe[fillstyle=gradient,gradientHSB=true, gradmidpoint=0.5,gradangle=45,gradbegin=cor1, gradend=cor2](0,0)(5,3) \end{pspicture}

by Geovane Krger

.................................................................................................... 141

Captulo

O Pacote pst-slpe
O pacote \usepackage{pst-slpe} pode ser considerado um adicional ao pacote pst-grad. Este pacote surgiu devido a vrias coisas que o pacote pst-grad deixava a desejar. Outra vantagem que que este pacote trabalha em torno de 30% mais rpido que o pacote pst-grad. pst-slpe dispe de seis novos estilos de preenchimento que so: slope slopes usados para simples preenchimentos em gradiente. Exemplo 224
1 2 3

\begin{pspicture}(-1,0)(5,2) \psframe[fillstyle=slope](0,0)(5,2) \end{pspicture}

Exemplo 225
1 2 3

\begin{pspicture}(-1,0)(5,2) \psframe[fillstyle=slopes](0,0)(5,2) \end{pspicture}

142

Cap. 8 O Pacote pst-slpe

ccslope ccslopes este estilo tem um preenchimento circular. Exemplo 226


1 2 3

\begin{pspicture}(-1,0)(5,2) \psframe[fillstyle=ccslope](0,0)(5,2) \end{pspicture}

Exemplo 227
1 2 3

\begin{pspicture}(-1,0)(5,2) \psframe[fillstyle=ccslopes](0,0)(5,2) \end{pspicture}

radslope radslopes e estes dois ltimos estilos tem um preenchimento radial. Exemplo 228
1 2 3

\begin{pspicture}(-1,0)(5,2) \psframe[fillstyle=radslope](0,0)(5,2) \end{pspicture}

Exemplo 229
1 2 3

\begin{pspicture}(-1,0)(5,2) \psframe[fillstyle=radslopes](0,0)(5,2) \end{pspicture}

by Geovane Krger

.................................................................................................... 143

Cap. 8 O Pacote pst-slpe

8.1 Opes

8.1 Opes
Este pacote ainda trs vrios parmetros que ns podemos usar para controlar como os objetos so preenchidos. slopebegin slopeend Com estes dois parmetros podemos escolher qual a cor inicial e a nal que iro interpolar entre si com qualquer um dos trs estilos ..slope. Exemplo 230
1 2

\begin{pspicture}(-1,0)(5,2) \psframe[fillstyle=slope,slopebegin=blue,slopeend= yellow](0,0)(5,2) \end{pspicture}

Exemplo 231
1 2

\begin{pspicture}(-1,0)(5,2) \psframe[fillstyle=ccslope,slopebegin=Tan,slopeend= green](0,0)(5,2) \end{pspicture}

Exemplo 232
1 2

\begin{pspicture}(-1,0)(5,2) \psframe[fillstyle=radslope,slopebegin=red,slopeend =green](0,0)(5,2) \end{pspicture}

slopecolors Para interpolarmos mais do que duas cores, mas com esta opo devemos usar qualquer um dos trs estilos ..slopes e ainda temos um modo correto de se usar. Para usar este estilo de preenchimento, imagine um escala linear comeando na extremidade esquerda e indo para a extremidade direita. A extremidade esquerda sempre deve receber a coordenada 0. A extremidade direita pode receber qualquer valor arbitrrio, por exemplo, digamos 23. Agora, ns queremos que na
by Geovane Krger

.................................................................................................... 144

Cap. 8 O Pacote pst-slpe

8.1 Opes

extremidade esquerda tenha um azul claro, na posio 10/23 um azul mediano, na posio 17/23 a cor azul e na extremidade direita um azul escuro, como na gura abaixo:

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

Para isso, usamos quatro cores RGB que so (.9,.9,1), (.6,.6,1), (0,0,1) e (0,0,.4). Os valores para o parmetro slopecolors consistem de uma lista de informao das cores contendo os nmeros que produzem a cor, como a lista acima, e estas cores sempre devem ser valores no formato RGB. O uso correto desta lista deve ser feito sem o uso deve vrgulas, como segue abaixo: slopecolors=0 .9 .9 1 10 .6 .6 1 17 0 0 1 23 0 0 .4 4

onde 0 representa a cor na extremidade esquerda, 10 e 17 na posio respectiva de cada cor, 23 a extremidade direita e o nmero 4 no m da lista representa a quantidade de cores. Para ccslopes, as cores iniciam-se do centro para fora e para radslopes (sem nenhuma rotao especicada), 0 representa o raio indo para o leste. Especique as cores no sentido anti-horrio. Se ns esquecermos algum nmero ou especicarmos algum nmero errado de argumentos, provavelmente teremos algum erro. O valor padro para slopecolors especica um arco-iris. O parmetro slopesteps controla o nmero de cores distintas feitas. Quanto maior o valor para este parmetro, melhor a qualidade do resultado, mas proporcionalmente a isto, o processamento ca mais lento. Por exemplo, slopesteps=5 resulta em apenas 5 cores no preenchimento: Exemplo 233
1 2 3

\begin{pspicture}(-1,0)(5,2) \psframe[fillstyle=slope,slopesteps=5](0,0)(5,2) \end{pspicture}

by Geovane Krger

.................................................................................................... 145

Cap. 8 O Pacote pst-slpe

8.1 Opes

Exemplo 234
1 2 3

\begin{pspicture}(-1,0)(5,2) \psframe[fillstyle=slope,slopesteps=200](0,0)(5,2) \end{pspicture}

Os estilos slope(s) e radslope(s) padres podem ser rotacionados com o parmetro slopeangle Os ngulos so dados no sentido anti-horrio. Exemplo 235
1 2 3

\begin{pspicture}(-1,0)(5,2) \psframe[fillstyle=slopes,slopeangle=30](0,0)(5,2) \end{pspicture}

Exemplo 236
1 2

\begin{pspicture}(-1,0)(5,2) \psframe[fillstyle=radslope,slopeangle=45](0,0) (5,2) \end{pspicture}

Para os estilos cc... e rad..., possvel especicar o centro do desenho com o parmetro slopecenter Este centro como uma coordenada que funciona do seguinte modo: A coordenada x deve ser separada da coordenada y por um espao em branco, no use vrgula. As coordenadas devem ser valores entre 0 e 1. O centro padro 0.5 0.5, isto , meio entre 0 e 1. Agora imagine que a gura sempre est dentro de uma caixa quadrada, que toca cada extremidade da gura em cada lado da caixa. Deste modo calculado o centro do preenchimento, ele relativo a esta caixa. .................................................................................................... 146

by Geovane Krger

Cap. 8 O Pacote pst-slpe

8.1 Opes

Observe estes detalhes acima no exemplo a seguir: 1.0 0.8 0.6 0.4 0.2 0 0 0.1 0.2 Para este exemplo ns usamos 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0

fillstyle=radslope,slopecenter=.2 .4 E a ltima opo deste pacote sloperadius que ns podemos usar com os estilos cc... e rad.... Por padro, estes estilos distribuem as cores dadas de modo que o centro pintado com a primeira cor dada e os pontos mais longe do centro com a ltima cor dada. Em outras palavras, o preenchimento comea pela primeira cor no incio do raio e ltima cor est no ponto onde o raio alcana a maior distncia no permetro da gura. O valor padro neste parmetro 0. Exemplo 237
1 2

\begin{pspicture}(-1,0)(5,2) \psframe[fillstyle=ccslope,sloperadius=0.6cm](0,0) (5,2) \end{pspicture}

Exemplo 238

1 2 3 4 5

\psset{unit=.75} \begin{pspicture}(-4,-4)(4,4) \multido{\in=0+36,\im=25+36}{10}{ \pswedge[fillstyle=radslopes](0,0){4}{\in}{\im}}

\pscircle*[linecolor=white](0,0){.5} 6 \end{pspicture}

by Geovane Krger

.................................................................................................... 147

Captulo

O Pacote pst-blur
A funo de colocar sombras em objetos quaisquer e uma caracterstica dos PSTricks. Entretanto, est sombras so sempre duras, rigorosas:

Mas com o pacote \usepackage{pst-blur} ns podemos fazer com que est sombras quem obscurecidas, ou fora de foco, para objetos fechados feitos com os pacotes PSTricks:

Para produzirmos objetos com sombras obscurecidas os parmetros grcos shadow=true blur=true 148

Cap. 9 O Pacote pst-blur

sempre devem estar como verdadeiros. O parmetro blur no far diferena nenhuma se shadow estiver como falso. O tamanho da sombra e o ngulo de projeo da sombra so controlados pelas opes shadowsize=tamanho shadowangle=ngulo O tamanho do efeito de obscurecimento controlado pela opo blurradius=tamanho Onde o tamanho padro para blurradius=1.5pt quando o tamanho da sombra tambm o padro que shadowsize=3pt. Exemplo 239
1 2

\begin{pspicture}(-1,0)(5,2) \psframe[shadow=true,blur=true,shadowsize=7pt, shadowangle=45,blurradius=6pt](0,0)(5,2) \end{pspicture}

A cor da sombra controlada pela opo shadowcolor=cor e ainda podemos escolher a cor de fundo que vai enfraquecendo gradualmente com a opo blurbf=cor Exemplo 240
1 2

\begin{pspicture}(-1,0)(5,4) \psset{fillstyle=radslope,slopebegin=BrickRed, slopeend=Red} \psframe[shadow=true,blur=true,shadowsize=10pt, shadowangle=45,blurradius=7pt,shadowcolor= white,blurbg=BrickRed](0,0)(4,3) \end{pspicture}

E a ltima opo .................................................................................................... 149

by Geovane Krger

Cap. 9 O Pacote pst-blur

blursteps=nmero controla o nmero distinto de cores usadas entre shadowcolor e blurbg. O valor padro para esta opo 20, que normalmente mais que suciente. Note que valores maiores para blursteps pode deixar lento o sistema. Exemplo 241
1 2

\begin{pspicture}(-1,-1)(5,3) \psset{fillstyle=radslope,slopebegin=OliveGreen, slopeend=SpringGreen} \psframe[shadow=true,blur=true,shadowsize=20pt, blurradius=10pt,shadowcolor=OliveGreen, blursteps=5](0,0)(4,3) \end{pspicture}

A gura a seguir mostra as opes para sombras obscurecidas.

shadowcolor blurbg

shadowangle

shadowsize blurradius

by Geovane Krger

.................................................................................................... 150

Captulo

10

O Pacote pst-light3d
Usando o pacote \usepackage{pst-ligth3d} podemos adicionar efeitos visuais tridimensionais em caracteres e grcos como ser visto nas duas sees deste captulo.

10.1 Efeitos Tridimensionais em Caracteres


Para colocarmos efeitos em caracteres usamos o macro \PstLightThreeDText[parmetros]{Caracteres} e os parmetros disponveis so todos os tipos de preenchimentos j vistos anteriormente e mais alguns que sero vistos a seguir. Exemplo 242
\DeclareFixedFont{\G}{T1}{ptm}{b}{n}{3cm} \PstLightThreeDText[fillstyle=solid,fillcolor =white]{\G Teste}

1 2

Tambm podemos rotacionar os objetos usando o parmetro LightThreeDAngle=ngulo onde ngulo qualquer valor em graus. Padro 45. 151

Cap. 10 O Pacote pst-light3d

10.1 Efeitos Tridimensionais em Caracteres

Exemplo 243

1 2

\DeclareFixedFont{\G}{T1}{ptm}{b}{n}{3cm} \PstLightThreeDText[fillstyle=slope, LightThreeDAngle=0]{\G Teste}\\[.5cm] \PstLightThreeDText[fillstyle=ccslopes, LightThreeDAngle=180]{\G Teste}

Com os parmetros LightThreeDXLength=valor LightThreeDYLength=valor podemos alterar a direo do efeito e conseqentemente o comprimento. Exemplo 244

1 2

\DeclareFixedFont{\G}{T1}{ptm}{b}{n}{3cm} \PstLightThreeDText[fillstyle=solid,fillcolor =Orange,LightThreeDXLength=0.5, LightThreeDYLength=-1]{\G Teste}\\[1.2cm] \PstLightThreeDText[fillstyle=solid,fillcolor =Dandelion,LightThreeDXLength=1, LightThreeDYLength=0.5]{\G Teste}

Observao 10.1 O parmetro que ser visto a seguir usa cdigos de PostScript para alterar a cor dos efeitos produzidos. O primeiro cdigo, nmero div, serve para dividir a tonalidade e quanto mais prximo do 0 mais fraca a cor e quanto maior o nmero mais forte. O outro comando usado, nmero exch, no sei dizer como ele funciona, mas possvel perceber que ele faz uma mistura de tonalidades, assim, vou somente colocar os exemplos para que ao menos possamos visualizar o que este parmetro faz. O ltimo comando para dizer que tipo de paleta de cores para ser usada, setgray, sethsbcolor, setrgbcolor ou setcmykcolor. LightThreeDColorPsCommand=cdigos
by Geovane Krger

.................................................................................................... 152

Cap. 10 O Pacote pst-light3d

10.1 Efeitos Tridimensionais em Caracteres

Exemplo 245

1 2

\DeclareFixedFont{\G}{T1}{phv}{b}{n}{2cm} \psset{linestyle=none,fillstyle=solid,fillcolor= ProcessBlue} \PstLightThreeDText[LightThreeDColorPsCommand=0.5 div setgray]{\G 1234}\\[.4cm] \PstLightThreeDText[LightThreeDColorPsCommand=1.5 div setgray]{\G 1234}\\[.4cm] \PstLightThreeDText[LightThreeDColorPsCommand=2.5 div setgray]{\G 1234}\\[.4cm] \PstLightThreeDText[LightThreeDColorPsCommand=3.5 div setgray]{\G 1234}\\[.4cm] \PstLightThreeDText[LightThreeDColorPsCommand=4.5 div setgray]{\G 1234}

Exemplo 246

1 2

\DeclareFixedFont{\G}{T1}{ptm}{b}{n}{3cm} \psset{fillstyle=slope,slopebegin=yellow, slopeend=blue} \PstLightThreeDText[LightThreeDXLength=1, LightThreeDYLength=.5, LightThreeDColorPsCommand=1 mul setgray ]{\G Teste}\\[1.2cm] \PstLightThreeDText[LightThreeDXLength=1, LightThreeDYLength=.5, LightThreeDColorPsCommand=1.5 div setgray ]{\G Teste}\\[1.2cm] \PstLightThreeDText[LightThreeDXLength=1, LightThreeDYLength=0.5, LightThreeDColorPsCommand=2 div .05 exch .99 exch sethsbcolor]{\G Teste}

by Geovane Krger

.................................................................................................... 153

Cap. 10 O Pacote pst-light3d

10.1 Efeitos Tridimensionais em Caracteres

Exemplo 247

1 2

\DeclareFixedFont{\G}{T1}{phv}{b}{n}{2cm} \psset{linestyle=none,fillstyle=solid,fillcolor= Violet} \PstLightThreeDText[LightThreeDColorPsCommand=2.5 div 1 exch 0.9 sethsbcolor]{\G 1234}\\[.4cm] \PstLightThreeDText[LightThreeDColorPsCommand=2.5 div 0.9 exch 0.9 sethsbcolor]{\G 1234}\\[.4cm] \PstLightThreeDText[LightThreeDColorPsCommand=2.5 div 0.8 exch 0.9 sethsbcolor]{\G 1234}\\[.4cm] \PstLightThreeDText[LightThreeDColorPsCommand=2.5 div 0.7 exch 0.9 sethsbcolor]{\G 1234}\\[.4cm] \PstLightThreeDText[LightThreeDColorPsCommand=2.5 div 0.6 exch 0.9 sethsbcolor]{\G 1234}\\[.4cm] \PstLightThreeDText[LightThreeDColorPsCommand=2.5 div 0.5 exch 0.9 sethsbcolor]{\G 1234}\\[.4cm] \PstLightThreeDText[LightThreeDColorPsCommand=2.5 div 0.4 exch 0.9 sethsbcolor]{\G 1234}\\[.4cm] \PstLightThreeDText[LightThreeDColorPsCommand=2.5 div 0.3 exch 0.9 sethsbcolor]{\G 1234}\\[.4cm] \PstLightThreeDText[LightThreeDColorPsCommand=2.5 div 0.2 exch 0.9 sethsbcolor]{\G 1234}\\[.4cm] \PstLightThreeDText[LightThreeDColorPsCommand=2.5 div 0.1 exch 0.9 sethsbcolor]{\G 1234}\\[.6cm] \PstLightThreeDText[fillcolor=white,linestyle= solid,linecolor=BrickRed, LightThreeDColorPsCommand=2 div 0.01 exch 0.9 exch 1 exch setcmykcolor]{\fontsize{85}{90}{\ Fontauri PSTricks}}

10

11

12

13

14

by Geovane Krger

.................................................................................................... 154

Cap. 10 O Pacote pst-light3d

10.2 Efeitos Tridimensionais em Grcos

10.2 Efeitos Tridimensionais em Grcos


Para colocarmos efeitos em grcos usamos o macro \PstLightThreeDGraphic[parmetros]{Grco} e os parmetros disponveis so todos os tipos de preenchimentos j vistos anteriormente e mais os parmetros vistos na seo anterior. Exemplo 248
1 2 3

\psset{unit=0.5cm} \begin{pspicture}(-1,-3.5)(9.2,3) \PstLightThreeDGraphic[LightThreeDXLength=0.4, LightThreeDColorPsCommand=1.2 div 0.8 exch 0.7 sethsbcolor]{\pscurve(0,2)(1,-3)(2,2)(4,3)(7,0) (8,3)(9,-2)(3,1)} \end{pspicture}

Exemplo 249
1 2

\begin{pspicture}(-8,-1.5)(7,1.5) \psaxes[trigLabels,trigLabelBase=2,dx=\psPiH,xunit=\psPi]{->}(0,0)(-2.2,-1.5) (2.2,1.5) \PstLightThreeDGraphic[LightThreeDColorPsCommand=2 div 0.2 exch 0.9 sethsbcolor]{ \psplot[linewidth=1.5pt,plotpoints=1000]{-7}{7}{x dup mul RadtoDeg sin}} \end{pspicture}

3 4 5

3 2

3 2

by Geovane Krger

.................................................................................................... 155

Captulo

11

O Pacote pst-gr3d
O pacote \usepackage{pst-gr3d} permite desenhar grades tridimensionais. Este pacote possui um nico macro com muitos parmetros prprios alm de muitos parmetros do pacote pstricks que podemos usar para mudar as caractersticas das linhas, etc. O macro denido pelo seguinte comando \PstGridThreeD[parmetros](x, y, z) Mais abaixo ainda veremos como denir outros macros, com a mesma sintaxe do macro acima, mas que podem ser usados para causar efeitos visuais especiais. O ponto de vista padro (viewpoint) (1.2,-0.6,0.8), o qual podemos alterar do modo que quisermos usando o parmetro viewpoint=pos1 pos2 pos3 sem usar vrgulas, apenas as posies relativas. Observao 11.1 O pacote tenta computar aproximadamente o tamanho dos objetos (pensando no ambiente pspicture), mas para grades tridimensionais uma tarefa praticamente impossvel no caso geral (no caso que no exista alterao do ponto de vista padro at que funciona bem). Assim, se o tamanho exato necessrio ou se ns escolhermos outro pontos de vista para o grco, o tamanho pode ser computado manualmente usando o macro \psframebox[framsep=0]... atravs de tentativas de construes por acertos e erros at encontrar o tamanho exato.

156

Cap. 11 O Pacote pst-gr3d

11.1 Usando o Pacote

11.1 Usando o Pacote


Os trs parmetros (x, y, z) do macro so para especicar o comprimento na direes x, y e z, respectivamente, ou seja, eles no funcionam como coordenadas. Exemplo 250
1

\PstGridThreeD(3,1,1)\hfill \PstGridThreeD(1,3,1)\hfill \PstGridThreeD(1,1,3)

Outros exemplos usando parmetros genricos de PSTricks especiais para grades. Exemplo 251
1 2 3 4

\PstGridThreeD[unit=1.5](1,1,1)\hfill \PstGridThreeD[viewpoint=1.2 -1.5 0.4,griddots=7](1,3,2)\hfill \PstGridThreeD[gridwidth=0.08,gridcolor=red](3,2,2)\hfill \PstGridThreeD[viewpoint=-0.4 -0.6 0.8](1,3,2)

observe acima, que alterando o ponto de vista, o tamanho do objeto computado pelo pacote no funciona corretamente. Para fazermos com que o objeto seja posicionado corretamente, devemos usar o ambiente pspicture junto com um parmetro que ser visto logo aps o prximo exemplo. Tambm podemos desenhar grades em uma ou duas dimenses, usando casos degenerados:

by Geovane Krger

.................................................................................................... 157

Cap. 11 O Pacote pst-gr3d

11.1 Usando o Pacote

Exemplo 252
1 2 3

\PstGridThreeD(0,4,0)\hfill \PstGridThreeD[linewidth=.05](0,3,1)\hfill \PstGridThreeD[griddots=5](3,1,0)

PstPicture=true/false como mencionado acima, este parmetro usado para denir ou no um ambiente pspicture para a grade. Ns devemos denir este parmetro para false principalmente se escolhermos outro ponto de vista que no seja o padro. Padro true e assim o pacote tenta denir um ambiente pspicture de acordo com o objeto, o que nem sempre funciona, e ainda, sempre ca rente a margem. Observe no exemplo a seguir, onde usamos o mesmo objeto que no outro exemplo acima ultrapassou as margens e cou por cima do quadro de comandos, como podemos alterar a posio dele corretamente com o parmetro acima. Exemplo 253
1 2 3 4 5 6

\PstGridThreeD[unit=1.5](1,1,1)\hfill \PstGridThreeD[viewpoint=1.2 -1.5 0.4,griddots=7](1,3,2)\hfill \PstGridThreeD[gridwidth=0.08,gridcolor=red](3,2,2)\hfill \begin{pspicture}(-1.7,0)(.8,3.6) \PstGridThreeD[viewpoint=-0.4 -0.6 0.8,PstPicture=false](1,3,2) \end{pspicture}

O parmetro PstDebug=0 ou 1
by Geovane Krger

.................................................................................................... 158

Cap. 11 O Pacote pst-gr3d

11.1 Usando o Pacote

obtm informaes internas, e usando 1, desenha uma caixa em torno do box usado pelo ambiente pspicture caso ele fosse desenhado. Padro 0, ou seja, nenhuma caixa desenhada. Exemplo 254
1 2

\hspace{5cm} \PstGridThreeD[PstDebug=1](3,2,2)

observe como j mencionamos antes, que o pacote tenta calcular o tamanho do objeto, mas por ser em trs dimenses isto aproximado. Os parmetros GridThreeDXunit=inteiro GridThreeDYunit=inteiro GridThreeDZunit=inteiro determinam os coecientes unitrios nas direes x, y e z, respectivamente. Lembrando que estes valores devem ser nmeros inteiros e o padro 1. Exemplo 255
1 2 3 4

\hspace{2cm} \PstGridThreeD[GridThreeDXUnit=2](1,1,1)\hspace{2cm} \PstGridThreeD[GridThreeDYUnit=2](1,1,1)\hspace{2cm} \PstGridThreeD[GridThreeDZUnit=4,unit=0.5](4,3,1)

by Geovane Krger

.................................................................................................... 159

Cap. 11 O Pacote pst-gr3d

11.1 Usando o Pacote

GridThreeDXPos=inteiro GridThreeDYPos=inteiro GridThreeDZPos=inteiro Com estes parmetros podemos determinar a posio da origem nas direes x, y e z, respectivamente. Padro 0, e lembrando que devemos sempre usar um nmero inteiro. Os dois grupos de parmetros vistos acima so usados principalmente se quisermos sobrepor grades, o que pode ser feito facilmente usando o macro \PstGridThreeDHookEnd o qual descrito nos exemplos abaixo. Exemplo 256
1 2 3 4 5 6 7 8 9 10 11 12

\hspace{1cm}

%Primeira Grade
\def\PstGridThreeDHookEnd{ \PstGridThreeD[PstPicture=false,gridwidth=0.1,GridThreeDXPos=1](0,2,1)} \PstGridThreeD(1,3,2)\hspace{1cm}

%Segunda Grade
\def\PstGridThreeDHookEnd{ \PstGridThreeD[PstPicture=false,gridwidth=0.1,GridThreeDYPos=1](1,2,1)} \PstGridThreeD(1,3,2)\hspace{1cm}

%Terceira Grade
\def\PstGridThreeDHookEnd{ \PstGridThreeD[PstPicture=false,gridwidth=0.1,gridcolor=green,GridThreeDYPos=2, GridThreeDZPos=1](1,1,1)} \PstGridThreeD(1,3,2)\hspace{1cm}

13

GridThreeDNodes=true/false Com este macro podemos denir as interconexes das grades como cada uma delas sendo nodos. Os nodos recebem os nomes Gr3dNodeXYZ. Padro false, ou seja, nenhum nodo denido.
by Geovane Krger

.................................................................................................... 160

Cap. 11 O Pacote pst-gr3d

11.1 Usando o Pacote

Exemplo 257
1

\hspace{1cm} \PstGridThreeD[GridThreeDNodes=true](1,3,1) \SpecialCoor \rput*(Gr3dNode130){\scriptsize 130} \rput*(Gr3dNode131){\scriptsize 131}

131 130

2 3 4 5

Com o macro \PstGridThreeDHookNode podemos denir a forma, modelo, dos nodos. Existe um macro pr-denido \PstGridThreeDNodeProcessor{cor} o qual dene um crculo com a cor cor e com um pequeno crculo branco dentro. Observe nos exemplos abaixo o uso deste comando. Exemplo 258
1 2 3 4 5 6 7 8 9 10 11 12 13

\hspace{1cm} \def\PstGridThreeDHookNode{ \begin{pspicture}(-0.15,-0.15)(0.15,0.15) \pscircle*[linecolor=magenta]{0.15} \end{pspicture}} \PstGridThreeD(1,2,2)\hspace{2cm} \definecolor{LightBlue}{rgb}{0.68,0.85,0.9} \def\PstGridThreeDHookNode{ \PstGridThreeDNodeProcessor{LightBlue}} \PstGridThreeD[unit=0.7](2,3,4)\hspace{2cm} \def\PstGridThreeDHookNode{ \PstGridThreeDNodeProcessor{SpringGreen}} \PstGridThreeD[unit=1.5](2,2,1)

by Geovane Krger

.................................................................................................... 161

Cap. 11 O Pacote pst-gr3d

11.1 Usando o Pacote

Ns podemos usar tambm o contador \iy para diferenciar os nodos de acordo com as faces Y mas ns no podemos usar para fazer a mesma coisa para as faces X e Z. Padro vazio. O uso fcil basta observar os exemplos. Exemplo 259
1 2 3 4 5 6 7 8 9 10 11 12

\hspace{3cm} \def\PstGridThreeDHookNode{ \ifcase\iy \PstGridThreeDNodeProcessor{magenta} \or\PstGridThreeDNodeProcessor{yellow} \or\PstGridThreeDNodeProcessor{cyan} \or\PstGridThreeDNodeProcessor{green} \or\PstGridThreeDNodeProcessor{orange} \or\PstGridThreeDNodeProcessor{Periwinkle} \else\PstGridThreeDNodeProcessor{Gray} \fi} \PstGridThreeD(1,6,1)

Exemplo 260
1 2 002 3 222 4 221 5 6

\hspace{.5cm} \PstGridThreeD[GridThreeDNodes=true](2,2,2) \SpecialCoor \rput*(Gr3dNode002){\tiny 002} \rput*(Gr3dNode221){\tiny 221} \rput([Rx=0.3]Gr3dNode222){\tiny 222} \multido{\i=0+1}{3}{ \rput([Rx=0.3,Ry=-0.3]Gr3dNode2\i0){2\i0}}

200

210

220

7 8

by Geovane Krger

.................................................................................................... 162

Cap. 11 O Pacote pst-gr3d

11.1 Usando o Pacote

Exemplo 261
1 2 3 4 5 6 7 8 9

\hspace{1cm} \def\PstGridThreeDHookNode{ \PstGridThreeDNodeProcessor{orange}} \psset{unit=1.3} \PstGridThreeD[GridThreeDNodes=true](1,2,2) \SpecialCoor \psset{arrows=<->,arrowscale=2} \ThreeDput[normal=0 0 -1](0,0,0){ \ncloop[linecolor=red,arm=0.35,loopsize=0.6,angleA =-90,angleB=90]{Gr3dNode022}{Gr3dNode002} \ncloop[linecolor=green,arm=0.7,nodesepA=0.18, nodesepB=0.12,loopsize=-0.5,angleA=180]{Gr3 dNode002}{Gr3dNode102}}

10

Exemplo 262
1 2 3 4 5 6 7 8 9 10 11 12 13

\hspace{4cm} \def\PstGridThreeDHookEnd{{ \psset{PstPicture=false,gridwidth=0.1} {\def\PstGridThreeDHookNode{ \PstGridThreeDNodeProcessor{blue}} \PstGridThreeD[gridcolor=blue,GridThreeDZPos=3](0,6,0)} {\def\PstGridThreeDHookNode{ \PstGridThreeDNodeProcessor{red}} \PstGridThreeD[gridcolor=red,GridThreeDXPos=1,GridThreeDZPos=1](0,3,1)} {\def\PstGridThreeDHookNode{ \PstGridThreeDNodeProcessor{green}} \PstGridThreeD[gridcolor=green,GridThreeDYPos=5](1,1,1)}}} \PstGridThreeD(1,6,3)

by Geovane Krger

.................................................................................................... 163

Cap. 11 O Pacote pst-gr3d

11.1 Usando o Pacote

O ltimo grupo de macros adicional deste pacote um pouco mais complicado, mas ele pode ser usado para preencher as faces das grades. \PstGridThreeDHookXFace \PstGridThreeDHookYFace \PstGridThreeDHookZFace Estes, permitem executar um macro antes de desenhar as faces x, y e z, respectivamente. Mas isto no to poderoso assim, porque no podemos controlar a ordem das faces desenhadas como poderia ser o nosso sonho. Por exemplo, no podemos usar est tcnica para desenhar objetos que possuem somente linhas visveis. Tambm devemos ter cuidado com as faces y, a direo negativa na horizontal, assim as coordenadas devem levar em conta este fato. Exemplo 263
1 2 3 4 5 6 7 8 9 10 11 12 13 14

\hspace{1cm} {\def\PstGridThreeDHookXFace{ \ifnum\multidocount=1\psframe*[linecolor=cyan](3,2)\fi} \PstGridThreeD(1,3,2)}\hfill {\def\PstGridThreeDHookYFace{ \ifnum\multidocount=2\psframe*[linecolor=yellow](-3,0)(0,2)\fi} \PstGridThreeD(3,1,2)}\hfill {\def\PstGridThreeDHookZFace{ \ifnum\multidocount=3 \psframe*[linecolor=blue](3,3) \else\psframe*[linecolor=yellow](3,3)\fi \ifnum\multidocount=1 \psframe*[linecolor=red](3,3)\fi} \PstGridThreeD(3,3,2)}

O comando \multidocount= representa qual face deve ser usada. .................................................................................................... 164

by Geovane Krger

Captulo

12

O Pacote pst-poly
O pacote \usepackage{pst-poly} oferece um nico macro, mas adicionado de vrios parmetros para interagir, podemos denir inmeros tipos de polgonos, tanto regulares como irregulares. Tambm podemos usar vrios dos parmetros de PSTricks usuais j vistos anteriormente, como caractersticas das linhas, preenchimentos, etc. Os polgonos so sempre desenhados no sentido horrio. A sintaxe do macro uma das mais simples: \PstPolygon[parmetros] A verso estrelada (*) tambm pode ser usada para preencher os polgonos de acordo com a cor da linha usada.

12.1 Parmetros
Existem oito parmetros especcos para escolher como que os polgonos so denidos: PstPicture=true/false usado para denir ou no um ambiente pspicture para os polgonos. Ns podemos escolher este parmetro para false se quisermos mixar o polgono com outros objetos de PSTricks. Padro true. PolyRotation=ngulo ngulo de rotao aplicado aos polgonos. Padro 0.

165

Cap. 12 O Pacote pst-poly

12.1 Parmetros

Exemplo 264
1 2 3 4 5

\hspace{1cm} \PstPolygon\hspace{2cm} \PstPolygon[PolyRotation=18]\hspace{2cm} \PstPolygon[PolyRotation=36]\hspace{2cm} \PstPolygon[PolyRotation=45]

PolyNbSides=nmero de lados Padro 5. Exemplo 265


1 2 3 4 5 6 7 8

\hspace{.5cm} \PstPolygon \PstPolygon[PolyNbSides=3] \PstPolygon[PolyNbSides=4] \PstPolygon[PolyNbSides=5] \PstPolygon[PolyNbSides=8] \PstPolygon[PolyNbSides=12] \PstPolygon[PolyNbSides=50]

PolyOffset=inteiro Nmero de nodos usados para contornar cada lado, ou melhor, nmero de nodo usados para criar cada lado. Padro 1, nenhum nodo. Veja os exemplos:

by Geovane Krger

.................................................................................................... 166

Cap. 12 O Pacote pst-poly

12.1 Parmetros

Exemplo 266
1 2 3 4 5 6 7 8

\hspace{.5cm} \PstPolygon \PstPolygon[PolyOffset=2] \PstPolygon[PolyOffset=3] \PstPolygon[PolyNbSides=7,PolyOffset=2] \PstPolygon[PolyNbSides=7,PolyOffset=3] \PstPolygon[PolyNbSides=9,PolyOffset=4] \PstPolygon[PolyNbSides=17,PolyOffset=6]

PolyIntermediatePoint= valor real Posio do ponto intermedirio usado para unir cada nodo (vrtice). Padro vazio, ou seja, no usado. Exemplo 267
1 2 3 4 5 6 7

\hspace{1cm} \PstPolygon \PstPolygon[PolyIntermediatePoint=0.38] \PstPolygon[PolyIntermediatePoint=0.2]\hspace{.5cm} \PstPolygon[PolyIntermediatePoint=1.1]\hspace{.5cm} \PstPolygon[PolyNbSides=7,PolyOffset=2,PolyIntermediatePoint=0.38]\hspace{.5cm} \PstPolygon[PolyNbSides=21,PolyOffset=2,PolyIntermediatePoint=-1.25]

PolyCurves=true/false Usado para escolher se cada nodo unido at o prximo por uma linha reta ou uma curva. Padro false, linha reta.

by Geovane Krger

.................................................................................................... 167

Cap. 12 O Pacote pst-poly

12.1 Parmetros

Exemplo 268
1 2 3 4 5 6 7

\hspace{1cm} \psset{PolyCurves=true} \PstPolygon[PolyNbSides=7,PolyIntermediatePoint=0.38]\hspace{.5cm} \PstPolygon[PolyNbSides=11,PolyIntermediatePoint=0.6]\hspace{.5cm} \PstPolygon[PolyNbSides=7,PolyIntermediatePoint=0.2,PolyOffset=2]\hspace{.5cm} \PstPolygon[PolyNbSides=9,PolyIntermediatePoint=0.1]\hspace{.5cm} \PstPolygon[PolyNbSides=15,PolyIntermediatePoint=1.2]

PolyEpicycloid=true/false Para escolher entre polgonos e epicycloid. Padro false, polgono. Exemplo 269
1 2 3 4 5

\hspace{.2cm} \psset{linewidth=0.001,PolyNbSides =72,PolyEpicycloid =true} \multido{\i=2+1}{5}{\PstPolygon[PolyOffset=\i]\hspace{.2cm}} \PstPolygon[PolyOffset=72]\hspace{.2cm} % Epicycloid de fator 71 \PstPolygon[PolyOffset=73] % Epicycloid de fator 72

PolyName=caractere Nome dos polgonos, til ter nomes diferentes para unir os nodos de diferentes polgonos. Padro vazio, ou seja, nenhum nome. O centro do polgono tem nome PolyNameO e os nodos (vrtices) tem nomes PolyName1 at PolyNameN. Com este parmetro, ns podemos conectar nodos de diferentes polgonos.

by Geovane Krger

.................................................................................................... 168

Cap. 12 O Pacote pst-poly

12.1 Parmetros

Exemplo 270
1 2 3 4 5 6

\psset{PstPicture=false} \begin{pspicture}(-3,-1)(1,1) \PstPolygon[unit=0.8,PolyName=A,PolyNbSides=6] \PstPolygon[unit=1.2,PolyName=B,PolyNbSides=12] \end{pspicture} \multido{\i=1+2}{6}{\ncline{A\the\multidocount}{B\i }}

Este tambm pode ser um modo (limitado na verdade) de denir objetos tridimensionais em perspectiva. Exemplo 271
1 2 3 4 5 6

\psset{unit=0.8} \begin{pspicture}(-2,0)(3,2.5) \rput[lb](0,0){\PstSquare[PolyName=A]} \rput[lb](2.5,2){\PstSquare[unit=0.5,PolyName=B]} \multido{\i=1+1}{4}{\ncline{A\i}{B\i}} \end{pspicture}

A seguir mais alguns exemplos. Exemplo 272


1 2 3 4 5

\hspace{.5cm} \PstPolygon[unit=1.5,linestyle=dashed]\hspace{.5cm} \PstPolygon[linewidth=1mm]\hspace{.5cm} \PstPolygon[fillstyle=crosshatch,PolyNbSides=6]\hspace{.5cm} \PstPolygon[linecolor=red,fillstyle=solid,fillcolor=yellow,PolyRotation=18, PolyOffset=2]\hspace{.5cm} \PstPolygon*[linecolor=cyan,PolyNbSides=7,PolyOffset=2]

by Geovane Krger

.................................................................................................... 169

Cap. 12 O Pacote pst-poly

12.2 Polgonos Pr-Denidos

Exemplo 273
1 2

\hspace{1cm} \multido{\i=5+2}{7}{\PstPolygon[PolyNbSides=\i,PolyCurves=true,PolyIntermediatePoint =0.1,PolyOffset=3]}

12.2 Polgonos Pr-Denidos


Nesta seo temos apenas um exemplo com os vrios polgonos e outros objetos geomtricos relacionados que so pr-denidos para uso imediato: Exemplo 274
1 2 3 4 5 6 7 8 9 10 11 12 13 14

\hspace{1cm} \PstTriangle \PstSquare \PstPentagon[linestyle=dotted] \PstHexagon[fillstyle=hlines,hatchangle=90] \PstHeptagon[fillstyle=vlines] \PstOctogon*[linecolor=red] \hspace{1cm} \PstNonagon\hspace{.5cm} \PstDecagon\hspace{.5cm} \PstDodecagon[linecolor=green] \PstStarFiveLines \PstStarFive

by Geovane Krger

.................................................................................................... 170

Cap. 12 O Pacote pst-poly

12.3 Polgonos Irregulares

12.3 Polgonos Irregulares


At agora, ns descrevemos s os polgonos regulares, os quais so mais teis. No entanto, no difcil extender estes polgonos para polgonos irregulares, usando apenas valores diferentes para as unidades horizontais e verticais. Exemplo 275
1 2 3 4 5

\hspace{1cm} \PstPentagon[xunit=0.5]\hspace{2cm} \PstHexagon[yunit=0.5]\hspace{2cm} \PstStarFive[xunit=0.5,yunit=1.5]\hspace{2cm} \PstPolygon[xunit=0.8,yunit=1.5,PolyNbSides=9,PolyOffset=2,PolyIntermediatePoint =0.1,PolyCurves=true]

12.4 Nodos (vrtices)


Outro possibilidade que temos, denir o comando \PstPolygonNode o qual ser executado em cada nodo. Padro vazio, nada executado. O contador dos nodos \INode o qual inicia no 0. O contador \multidocount, inicia em 1. Exemplo 276
1 2

\hspace{1cm} \providecommand{\PstPolygonNode}{\psdots[dotsize =0.2,linecolor=cyan](1;\INode)} \PstPentagon

by Geovane Krger

.................................................................................................... 171

Cap. 12 O Pacote pst-poly

12.5 Polgonos Com Textos Embutidos

Exemplo 277
F D B G E
4 1

\hspace{1cm} \newcounter{Letter} \providecommand{\PstPolygonNode}{\setcounter{ Letter}{\the\multidocount}\rput*{*0}(1;\INode) {\small\Alph{Letter}}} \PstHeptagon[PolyOffset=3]

A C

2 3

Exemplo 278
1 2

\hspace{1cm} \providecommand{\PstPolygonNode}{\psdots[dotstyle= o,dotsize=0.2](1;\INode)\psline[linecolor=red ]{->}(0.9;\INode)} \PstPolygon[PolyNbSides=8]

Exemplo 279
\hspace{1cm} \newbox{\Star} \savebox{\Star}{\PstStarFive*[unit=0.15,linecolor= red]} \providecommand{\PstPolygonNode}{\rput{*0}(1;\ INode){\usebox{\Star}}}
5

1 2 3

\shortstack{\PstNonagon\\[5mm] \PstDodecagon[ linestyle=none]}

12.5 Polgonos Com Textos Embutidos


O macro \pspolygonbox[parmetros]{texto} e os parmetros vlidos para este comando so PolyNbSides=inteiro PolyRotation=ngulo
by Geovane Krger

.................................................................................................... 172

Cap. 12 O Pacote pst-poly

12.5 Polgonos Com Textos Embutidos

onde o padro 3 e 0, respectivamente. Exemplo 280


1

\multido{\nA=3+1}{8}{\pspolygonbox[PolyNbSides=\nA,framesep=3mm]{Texto}~}

Texto

Texto

Texto

Texto

Texto

Texto

Texto

Texto

Exemplo 281
1

\multido{\nA=3+1}{8}{\pspolygonbox[PolyNbSides=\nA,framesep=2mm,doubleline=true]{ Texto}~}

Texto

Texto

Texto

Texto

Texto

Texto

Texto

Texto

Exemplo 282
1 2

\multido{\nA=0+60}{8}{ \pspolygonbox[PolyRotation=\nA,PolyNbSides=4,framesep=2mm,doubleline=true,linecolor= red,doublecolor=blue]{\magenta Texto}~}

Texto

Texto

Texto

Texto

Texto

Texto

Texto

Texto

Exemplo 283
1

\multido{\nA=0+60,\nB=45+60}{8}{\pspolygonbox[PolyRotation=\nA,framesep=2mm, doubleline=true,linecolor=red,doublecolor=blue,linearc=0.4] {\rotatebox{\nB}{\blue Texto}}~}

Texto

by Geovane Krger

.................................................................................................... 173

Texto

Texto

Te xt o

Te xt o

Texto

Te xt o

Texto

Cap. 12 O Pacote pst-poly

12.5 Polgonos Com Textos Embutidos

Exemplo 284
1

\multido{\nA=3+1}{8}{\pspolygonbox[PolyNbSides=\nA,rot=60,framesep=2pt,doubleline= true,linearc=0.2]{Texto}~}

Texto

Texto

Texto

Texto

Texto

Texto

Texto

Texto

Exemplo 285
1

\multido{\nA=3+1}{8}{\pspolygonbox[PolyNbSides=\nA,framesep=10pt,fillstyle=solid, fillcolor=cyan,linearc=0.2]{Texto}~}

Texto

Texto

Texto

Texto

Texto

Texto

Texto

Texto

Exemplo 286
1 2

\hspace{1cm} \multido{\nA=-5+5}{8}{\pspolygonbox[framesep=\nA pt,PolyRotation=90]{\Huge\red T}~}

TT T T
Exemplo 287
\vspace*{1.5cm} 2 \hspace{4cm}
1 3

\multido{\nA=-5+5}{8}{\pspolygonbox[framesep=\nA pt,PolyRotation=90,boxsep=false]{\ Huge\red T}~}

TTTTTTTT
by Geovane Krger

.................................................................................................... 174

Referncias Bibliogrcas

A [1] KRGER, Geovane. LTEX 2 : Uma Introduo. Guarapuava PR, 2006. A [2] MITTELBACH, Frank; GOOSSENS, Michel. The LTEX Companion. Pearson Education, Inc., 2nd Ed., 2004 ISBN 0-201-36299-6. A [3] GOOSSENS, Michel; RAHTZ, Sebastian; MITTELBACH, Frank. The LTEX Graphics Companion: Illustrating Documents With TEX and PostScript. Addison-Wesley Longhman, Inc., 1997 ISBN 0-201-

54199-8.
A [4] LAMPORT, Leslie. LTEX: A Document Preparation System. Addison-Wesley Publishing Company, Inc.,

2nd Ed., 1994 ISBN 0-201-52983-1 [5] ZANDT, Timothy Van. Documentation for multido.tex: A loop macro for Generic TEX. Edited by Rolf Niepraschk, Version 1.41, 2004. Disponvel em: <ftp://ftp.das.ufsc.br/pub/ctan/macros/generic/multido/multido.pdf>. Acessado pela ltima vez em 27 de maio de 2007. [6] ZANDT, Timothy Van. PSTricks: PostScript macros for Generic TEX. Department of Economics and Political Science, INSEAD. Boulevard de Constance - France. Verso 97, 2003. [7] VO, Herbert; NIEPRASCHK, Rolf. PSTricks patch 15: new macros and bugxes for pstricks. 2004/05/12. [8] VO, Herbert. PSTricks version 1.10: new macros and bugxes for pstricks. August 20, 2005. Disponvel em: <http://theory.uwinnipeg.ca/scripts/CTAN/graphics/pstricks/base/doc/pstnews1-10.pdf>. Acessado pela ltima vez em 25 de junho de 2007. [9] VO, Herbert. PSTricks version 1.11: new macros and bugxes for pstricks. September 19, 2005. Disponvel em: 175

Referncias Bibliogrcas

Referncias Bibliogrcas

<http://theory.uwinnipeg.ca/scripts/CTAN/graphics/pstricks/base/doc/pstnews1-11.pdf>. Acessado pela ltima vez em 25 de junho de 2007. [10] VO, Herbert. PSTricks version 1.12: new macros and bugxes for pstricks. October 25, 2005. <http://theory.unwinnipeg.ca/scripts/CTAN/graphics/pstricks/base/doc/pstnews1-12.pdf>. Acessado pela ltima vez em 25 de junho de 2007. [11] VO, Herbert. PSTricks version 1.15: new macros and bugxes for pstricks. December 19, 2006. <http://theory.unwinnipeg.ca/scripts/CTAN/graphics/pstricks/base/doc/pstnews1-15.pdf>. Acessado pela ltima vez em 25 de junho de 2007. [12] RODRIGUEZ, Dominique; VO, Herbert. pstricks-add: additionals Macros for pstricks. Version 2.86; June 23, 2007. Disponvel em: < >. Acessado pela ltima vez em [13] ZANDT, Timothy Van; VO, Herbert. The pst-3d package: Tilting and other pseudo-3D tricks with PSTricks. Version 1.00; September 10, 2005. Disponvel em: <http://theory.unwinnipeg.ca/scripts/CTAN/graphics/pstricks/contrib/pst-3d/pst-3d.pdf>. Acessado pela ltima vez em: 8 de julho de 2007. [14] VO, Herbert. pst-grad: Gradients. Version 1.06; November 27, 2006. Disponvel em: <http://ftp.das.ufsc.br/pub/ctan/graphics/pstricks/contrib/pst-grad/pst-grad-doc.pdf>. Acessado pela ltima vez em: 19 de janeiro de 2008. [15] GIESE, Martin. pst-slpe package. Version 1.1; October 05, 2005. Disponvel em: <http://ftp.das.ufsc.br/pub/ctan/graphics/pstricks/contrib/pst-slpe/pst-slpe.pdf>. Acessado pela ltima vez em 20 de janeiro de 2008. [16] GIESE, Martin. pst-blur package. Version 2.0; September 08, 2005. Disponvel em: <http://ftp.das.ufsc.br/pub/ctan/graphics/pstricks/contrib/pst-blur/pst-blur.pdf>. Acessado pela ltima vez em 21 de janeiro de 2008. [17] GIROU, Denis; KLEIWEG, Peter. The pst-light3d package. Version 0.11; August 13, 2007. Disponvel em: <http://ftp.das.ufsc.br/pub/ctan/graphics/pstricks/contrib/pst-light3d/pst-light3d-doc.pdf> Acessado pela ltima vez em 7 de fevereiro de 2008. [18] GIROU, Denis. The pst-gr3d package: A PSTricks package for three dimensional grids. Version 1.34; September 12, 2005; Revised by Herbert Voss. Disponvel em: .................................................................................................... 176

by Geovane Krger

Referncias Bibliogrcas

Referncias Bibliogrcas

<http://ftp.das.ufsc.br/pub/ctan/graphics/pstricks/contrib/pst-gr3d/pst-gr3d.pdf>. Acessado pela ltima vez em 12 de fevereiro de 2008. [19] GIROU, Denis. The pst-poly package: A PSTricks package for polygons. November 21, 2004; Revised by Herbert Voss. Disponvel em: <http://ftp.das.ufsc.br/pub/ctan/graphics/pstricks/contrib/pst-poly/pst-poly.pdf>. Acessado pela ltima vez em 14 de fevereiro de 2008.

by Geovane Krger

.................................................................................................... 177