pstricks

11
Algunos ejemplos con pstricks ´ Indice 1 Paquetes para pintar. Nociones elementales 1 1.1 Nociones elementales ....................................... 2 1.2 Mallados .............................................. 2 2 Papel milimetrado 2 2.1 Ejemplo .............................................. 3 3 Rectas y figuras elementales 3 3.1 Ejemplos ............................................. 4 3.2 Opciones y par´ ametros ...................................... 4 3.3 Figuras elementales ........................................ 5 3.4 Ejemplos ............................................. 5 4 Representaci´ on de curvas 7 4.1 Ejemplos ............................................. 7 4.2 Par´ametros ............................................ 8 5 Operadores aritm´ eticos y matem´ aticos en postscript 8 6 Ejes 8 6.1 Ejemplo .............................................. 9 7 Nodos y conexiones 9 7.1 Ejemplos ............................................. 9 1 Paquetes para pintar. Nociones elementales Estos paquetes funcionan “pasando” a postscript los comandos Debemos cargar algunos paquetes dentro del conjunto conocido como pstricks. Por ahora veremos algunos aspectos simples para los que es suficiente con los paquetes: \usepackage{pstcol} % para color \usepackage{pst-node} % para diagramas \usepackage{pst-plot} % para representacion de datos % funciones, etc Empezamos por crear un mallado de longitud precisa Figuras elementales y rectas Diagramas y conexiones Representaci´on de datos num´ ericos Representaci´on de curvas 1

description

ejemplos con pstricks

Transcript of pstricks

Page 1: pstricks

Algunos ejemplos con pstricks

Indice

1 Paquetes para pintar. Nociones elementales 1

1.1 Nociones elementales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Mallados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Papel milimetrado 2

2.1 Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

3 Rectas y figuras elementales 3

3.1 Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43.2 Opciones y parametros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43.3 Figuras elementales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53.4 Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

4 Representacion de curvas 7

4.1 Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74.2 Parametros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

5 Operadores aritmeticos y matematicos en postscript 8

6 Ejes 8

6.1 Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

7 Nodos y conexiones 9

7.1 Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1 Paquetes para pintar. Nociones elementales

• Estos paquetes funcionan “pasando” a postscript los comandos

• Debemos cargar algunos paquetes dentro del conjunto conocido como pstricks.

• Por ahora veremos algunos aspectos simples para los que es suficiente con los paquetes:

\usepackage{pstcol} % para color

\usepackage{pst-node} % para diagramas

\usepackage{pst-plot} % para representacion de datos

% funciones, etc

• Empezamos por crear un mallado de longitud precisa

• Figuras elementales y rectas

• Diagramas y conexiones

• Representacion de datos numericos

• Representacion de curvas

1

Page 2: pstricks

1.1 Nociones elementales

\begin{pspicture}(x,y)

\end{pspicture}

Dentro de ese entorno generamos los objetos gaficos, las coordenadas (x,y) indica las coordenadas delangulo superior derecho del marco (en centımetros) tomando como origen el angulo inferior izquierdo delmarco. [?]

1.2 Mallados

Este conjunto de paquetes permite generar mallados muy precisos como papel milimetrado y otro tipode papeles para graficos.\psgrid crea un mallado del tamano del marco con separaciones de 1 centımetro y subdivisiones de2 milımetros, por supuesto este mallado se puede generar a voluntad con separaciones de en milımetrosreales.

2 Papel milimetrado

\begin{center}

\begin{pspicture}(16,7)

\psgrid

\end{pspicture}

\end{center}

genera el mallado siguente

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

1

2

3

4

5

6

7

El comando completo para generar mallados es:

\psgrid[opciones](x0,y0)(x1,y1)(x2,y2)

donde (x1,y1) y (x2,y2) son las coordenadas del punto inferior izquierdo y del punto superior derecho(en centımetros) del mallado y (x0,y0) determina el origen para empezar a escribir los numeros deidentificacion de las divisiones, y las opciones posibles son:

• gridwidth=dim anchura de las lıneas que forman el mallado (por defecto es 0.8 pt)

2

Page 3: pstricks

• gridcolor=color (defecto black)

• griddots=num (defecto 0), si es diferente de 0 las lınes del mallado son punteadas con un numerode puntos entre division de num

• gridlabels=dim (defecto 10pt) tamano de los numeros usados para marcar la malla

• gridlabelcolor=color color de los numeros del mallado

• subgriddiv=num (defecto 5) numero de las subdivisiones del mallado

• subgridwidth=dim (defecto 0.4pt) tamano de las lıneas de subdivision del mallado

• subgridcolor=color (defecto gray)

• subgriddots=num (defecto 0) lo mismo que griddots pero para las subdivisiones.

2.1 Ejemplo

El codigo:

\begin{center}

\begin{pspicture}(-3,-3)(12,2)

\psgrid[gridlabels=10pt,gridlabelcolor=red,subgriddiv=10](0,0)(-3,-3)(12,2)

\end{pspicture}

\end{center}

genera:

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

-3

-2

-1

0

1

2

3 Rectas y figuras elementales

\psline[param]{flechas}(x1,y1)...(xn,yn)

\pscurve[param]{flechas}(x1,y1)....(xn,yn)

\psecurve[param]{flechas}(x1,y1)...(xn,yn) (no pasa por el ult. ni prim.)

\psccurve[param](x1,y1)....(xn,yn)

3

Page 4: pstricks

3.1 Ejemplos

3.2 Opciones y parametros

\psset{param1=valor,param2=valor,...}

cambia los valores de los parametros.

xunit=dim (defecto 1cm)

yunit=dim (defecto 1cm)

runit=dim (defecto 1cm)

linewidth=dim (defecto 0.8pt)

linecolor=color (defecto black)

showpoints=true/false (defecto false)

linearc=dim (defecto 0pt)

framearc=num (defecto 0)

dotstyle=estilo (defecto *)

estilos:

* , o, +, triangle

triangle*, square,

square*, pentagon,

pentagon*, |

Los puntos cuando se muestran en un grafico

se rellenan del color definido como fillcolor=color

Ejemplos:

\begin{pspicture}(3,3)

\psccurve[showpoints=true,

dotsize=20pt,

dotstyle=o,

fillcolor=red]

(0,0)(1,1)(1,2)(2,1)(1,0)

\end{pspicture}

genera: bc

bc

bc

bc

bc

4

Page 5: pstricks

\begin{pspicture}(3,3)

\psline[showpoints=true,dotsize=20pt,

dotstyle=o,fillcolor=red]

(0,0)(1,1)

\psline[showpoints=true,dotsize=20pt,

dotstyle=o,fillcolor=green]

(1,1)(1,2)

\psline[showpoints=true,dotsize=20pt,

dotstyle=o,fillcolor=yellow]

(1,2)(2,1)

\psline[showpoints=true,dotsize=20pt,

dotstyle=o,fillcolor=blue]

(2,1)(1,0)

\psline[showpoints=true,dotsize=20pt,

dotstyle=o,fillcolor=magenta]

(1,0)(1,0)

\end{pspicture}

bc

bcbc

bcbc

bcbc

bcbcbc

3.3 Figuras elementales

La mayor parte de las figuras elementales se pueden usar directamente.

\pscircle[param](x0,y0){radio} ((x0,y0)=centro)

\psellipse[param](x0,y0)(a,b)

\psarc[param]{flechas}(x,y){radio}{anguloA}{anguloB}

\parabola[param]{flechas}(x0,y0)(x1,y1)

(x0,y0) pasa por ese punto

max o min en (x1,y1)

\pspolygon[param](x0,y0)(x1,y1)...(xn,yn)

\psframe[param](x0,y0)(x1,y1)

\psdiamond[param](x0,y0)(x1,y1)

\pstriangle[param](x0,y0)(base,alt)

Algunos parametros:

linearc=dim defecto 0pt

framearc=num defeto 0

fillstyle=estilo defecto none

solid, vlines, hlines crosshatch

tambien con estrella

hatchwidth=dim defecto 0.8pt

hatchsep=dim defecto 4pt

hatchcolor=color defecto black

hatchangle=rot defecto 45

fillcolor=color defecto white (fondo)

3.4 Ejemplos

El codigo siguiente:

\psframebox{

\begin{pspicture}(3,3)

\pscircle(1.5,1.5){1}

\end{pspicture}

}

5

Page 6: pstricks

\psframebox{

\begin{pspicture}(3,3)

\psellipse(1.5,1.5)(1,0.5)

\end{pspicture}

}

\psframebox{

\begin{pspicture}(3,3)

\psarc[showpoints=true]{->}(1.5,1.5){1.3}{0}{75}

\end{pspicture}

}

\psframebox{

\begin{pspicture}(3,3)

\parabola(0,0)(1,3)

\end{pspicture}

}

\psframebox{

\begin{pspicture}(3,3)

\pscircle[fillstyle=crosshatch](1.5,1.5){1.5}

\end{pspicture}

}

\noindent \psframebox{

\begin{pspicture}(3,3)

\pscircle[fillstyle=vlines](1.5,1.5){1.5}

\end{pspicture}

}

\psframebox{

\begin{pspicture}(3,3)

\pscircle[fillstyle=hlines*,fillcolor=green](1.5,1.5){1.5}

\end{pspicture}

}

\psframebox{

\begin{pspicture}(3,3)

\pscircle[fillstyle=hlines,hatchsep=2pt](1.5,1.5){1.5}

\end{pspicture}

}

\psframebox{

\begin{pspicture}(3,3)

\psdiamond(1.5,1.5)(0.5,1)

\end{pspicture}

}

\psframebox{

\begin{pspicture}(3,3)

\pstriangle(1.5,1.5)(2,1)

\end{pspicture}

}

genera:

6

Page 7: pstricks

4 Representacion de curvas

Para representar datos y funciones tenemos los siguientes comandos (necesitan el paquete pst-plot).

\fileplot[param]{ficherodatos}

\psplot[param]{xmin}{xmax}{funcion}

\parametricplot[param]{tmin}{tmas}{funcion}

funcion representa el codigo postscript para calcular los valores de la funcion f que se prentende repre-sentar, veanse los ejemplos siguientes y la seccion 5

4.1 Ejemplos

El codigo siguiente

\psframebox{

\begin{pspicture}(3,3)

\fileplot{pepe.dat}

\end{pspicture}

}

\psframebox{

\begin{pspicture}(0,-1.5)(3,1.5)

\psplot{0}{3}{x 300 mul sin}

\end{pspicture}

}

\psframebox{

\begin{pspicture}(3,3)

\parametricplot{-6}{6}{1.2 t exp 1.2 t neg exp}

\end{pspicture}

}

\psframebox{

\begin{pspicture}(-1.5,-1.5)(1.5,1.5)

\parametricplot{0}{3.8}{ t 100 mul sin t 100 mul 2 mul sin}

\end{pspicture}

}

genera:

7

Page 8: pstricks

donde pepe.dat es un fichero que contiene:1 21 32 11 0para entender las definiciones de las funciones vease la seccion 5. Las funciones que se han representadoson:f(x) = sen(x){x(t) = 1.2t, y(t) = 1.2−t}{x(t) = sin(t), y(t) = sin(2t)}

4.2 Parametros

plotstyle=estilo defecto=lineestilos: dots, line, polygon,curve,ecurve, ccurveplotpoints=num, defecto=50showpoints=true/false defecto= falsedotstyle=estilo

linestyle=estilo defecto=solidestilos: none, solid, dashed y dottedpara ver mas parametros consultar la hoja de referencia.

5 Operadores aritmeticos y matematicos en postscript

operador resultado estandardnum1 num2 add suma num1+num2num1 num2 div cociente num1/num2num1 num2 mul producto num1xnum2num1 num2 sub diferencia num1-num2num1 abs valor absoluto |num1|num1 neg negativo -num1

num1 sqrt raız cuadrada√

num1num1 cos coseno cos(num1)num1 sin seno sen(num1)base exponente exp potencia baseexponente

num1 ln logaritmo ln(num1)num1 log logaritmo log(num1)

6 Ejes

En ocasiones es interesante pintar los ejes del grafico, para eso podemos usar:\psaxes[param]{flechas}(x0,y0)(x1,y1)(x2,y2)

con el mismo significado para los tres puntos que en el comando \psgrid

8

Page 9: pstricks

6.1 Ejemplo

El codigo siguiente:

\begin{pspicture}(0,-1.5)(3,1.5)

\psaxes[linewidth=1pt]{<->}(0,0)(0,-1.5)(3.25,1.5)

\psplot{0}{3}{x 300 mul sin}

\end{pspicture}

genera:

1 2 30

1

−1Para otros parametros vease la hoja de referencia.

7 Nodos y conexiones

Para representar diagramas diversos son muy utiles los siguientes comandos:

\psframebox[param]{contenido}

\begin{psmatrix}[rowsep=dist,colsep=dist]

nodos y conexiones diagrama

\end{psmatrix}

\psdiabox[param]{contenido}

\psovalbox[param]{contenido}

\pscirclebox[param]{contenido}

\psdblframebox[param]{contenido}

etc. (hoja referencia)

\ncline[param]{flechas}{nodoA}{nodoB}

\ncbar[param]{flechas}{nodoA}{nodoB}

\ncdiag[param]{flechas}{nodoA}{nodoB}

etc (hoja de referencia)

7.1 Ejemplos

El codigo siguiente:

\begin{center}

Diagrama de flujo\\[5mm]

\psframebox[linearc=5mm,cornersize=absolute]{%

\begin{psmatrix}[rowsep=.5cm,colsep=0.8cm]

\psovalbox[fillstyle=solid,fillcolor=yellow]{Inicio} \\

\psframebox{Inicializaci\’on} \\

\psdiabox[fillstyle=solid,fillcolor=Pink]{Especial} &

\psframebox{Llamada a SP1} & \psframebox{Llamada a SP2} \\

\psframebox{Acci\’on 1} \\

\psframebox{Acci\’on 2} \\

\psovalbox[fillstyle=solid,fillcolor=yellow]{Final}

% Links

\ncline{1,1}{2,1}

\ncline{2,1}{3,1}

\ncline{3,1}{4,1}>{\textcolor{red}{ No}}

\ncline{4,1}{5,1}

9

Page 10: pstricks

\ncline{5,1}{6,1}

% \ncbar[nodesepB=10mm]{->}{1,1}{3,2}

\ncline{->}{3,1}{3,2}^{\textcolor{red}{Si}}

\ncline{->}{3,2}{3,3}

\ncbar[angleA=-90,armB=0,nodesepB=2.5mm]{->}{3,3}{4,1}

\ncdiag[angleA=-90,angleB=90,armA=0.1,armB=0.5]{->}{1,1}{3,2}

\end{psmatrix}

}\\[1cm]

\psframebox[linearc=5mm,cornersize=absolute]{%

\begin{psmatrix}[rowsep=1.5cm,colsep=1.8cm]

\pscirclebox{A} \\

\psframebox{Inicializaci\’on} \\

\psdiabox[fillstyle=solid,fillcolor=Pink]{Especial} &

\psframebox{Llamada a SP1} & \psframebox{Llamada a SP2} \\

\psframebox{Accin 1} \\

\pscirclebox{$\mathcal{B}$} \\

\psovalbox[fillstyle=solid,fillcolor=yellow]{Final}

% Links

\ncline{1,1}{2,1}

\ncline{2,1}{3,1}

\ncline{3,1}{4,1}>{\textcolor{red}{ No}}

\ncline{4,1}{5,1}

\ncline{5,1}{6,1}

\ncbar[nodesepB=8mm,angleA=0,angleB=90,armA=1,armB=0]{->}{1,1}{3,2}

\ncline{->}{3,1}{3,2}^{\textcolor{red}{Si}}

\ncline{->}{3,2}{3,3}

\ncbar[angleA=-90,armB=0,nodesepB=9mm]{->}{3,3}{4,1}

\ncdiag[angleA=90,angleB=-90,armA=0.1,armB=0.5]{<-}{6,1}{3,3}

\end{psmatrix}

}

\end{center}

genera los diagramas siguientes:

Diagrama de flujo

Inicio

Inicializacion

Especial Llamada a SP1 Llamada a SP2

Accion 1

Accion 2

Final

No

Si

10

Page 11: pstricks

A

Inicializacion

Especial Llamada a SP1 Llamada a SP2

Accion 1

B

Final

No

Si

Para mas informacion:http://www.tug.org/applications/PSTricks/index.html

11