Story Transcript
Algunos ejemplos con pstricks
´Indice 1 Paquetes para pintar. Nociones elementales 1.1 Nociones elementales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Mallados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 2 2
2 Papel milimetrado 2.1 Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 3
3 Rectas y figuras elementales 3.1 Ejemplos . . . . . . . . . . 3.2 Opciones y par´ ametros . . . 3.3 Figuras elementales . . . . . 3.4 Ejemplos . . . . . . . . . .
. . . .
3 4 4 5 5
Representaci´ on de curvas 4.1 Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Par´ametros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7 7 8
4
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
5 Operadores aritm´ eticos y matem´ aticos en postscript
8
6 Ejes 6.1 Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8 9
7 Nodos y conexiones 7.1 Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9 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
1.1
Nociones elementales
\begin{pspicture}(x,y) \end{pspicture} Dentro de ese entorno generamos los objetos g´aficos, las coordenadas (x,y) indica las coordenadas del ´angulo superior derecho del marco (en cent´ımetros) tomando como origen el ´angulo inferior izquierdo del marco. [?]
1.2
Mallados
Este conjunto de paquetes permite generar mallados muy precisos como papel milimetrado y otro tipo de papeles para gr´aficos. \psgrid crea un mallado del tama˜ no del marco con separaciones de 1 cent´ımetro y subdivisiones de 2 mil´ımetros, por supuesto este mallado se puede generar a voluntad con separaciones de en mil´ımetros reales.
2
Papel milimetrado
\begin{center} \begin{pspicture}(16,7) \psgrid \end{pspicture} \end{center} genera el mallado siguente
7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 El comando completo para generar mallados es:
8
9
10
11
12
13
14
15
\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 n´ umeros de identificaci´ on 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
16
• gridcolor=color (defecto black) • griddots=num (defecto 0), si es diferente de 0 las l´ınes del mallado son punteadas con un n´ umero de puntos entre divisi´on de num • gridlabels=dim (defecto 10pt) tama˜ no de los n´ umeros usados para marcar la malla • gridlabelcolor=color color de los n´ umeros del mallado • subgriddiv=num (defecto 5) n´ umero de las subdivisiones del mallado • subgridwidth=dim (defecto 0.4pt) tama˜ no de las l´ıneas de subdivisi´on del mallado • subgridcolor=color (defecto gray) • subgriddots=num (defecto 0) lo mismo que griddots pero para las subdivisiones.
2.1
Ejemplo
El c´ odigo: \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:
2 1 -3
-2
0 -1 0 -1
1
2
3
4
5
6
7
8
9
-2 -3 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
10 11 12
3.1
Ejemplos
3.2
Opciones y par´ ametros
\psset{param1=valor,param2=valor,...} cambia los valores de los par´ ametros. 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:
4
cb bc bc bc bc
\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}
3.3
cb bc bc bc bc
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 par´ ametros: 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 c´ odigo siguiente: \psframebox{ \begin{pspicture}(3,3) \pscircle(1.5,1.5){1} \end{pspicture} } 5
\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
4
Representaci´ on 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 c´ odigo postscript para calcular los valores de la funci´ on f que se prentende representar, ve´ anse los ejemplos siguientes y la secci´on 5
4.1
Ejemplos
El c´ odigo 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
donde pepe.dat es un fichero que contiene: 12 13 21 10 para entender las definiciones de las funciones v´ease la secci´on 5. Las funciones que se han representado son: f (x) = sen(x) {x(t) = 1.2t , y(t) = 1.2−t } {x(t) = sin(t), y(t) = sin(2t)}
4.2
Par´ ametros
plotstyle=estilo defecto=line estilos: dots, line, polygon,curve,ecurve, ccurve plotpoints=num, defecto=50 showpoints=true/false defecto= false dotstyle=estilo linestyle=estilo defecto=solid estilos: none, solid, dashed y dotted para ver m´ as par´ ametros consultar la hoja de referencia.
5
Operadores aritm´ eticos y matem´ aticos en postscript num1 num2 num1 num2 num1 num2 num1 num2 num1 num1 num1 num1 num1 base exponente num1 num1
6
operador add div mul sub abs neg sqrt cos sin exp ln log
resultado suma cociente producto diferencia valor absoluto negativo ra´ız cuadrada coseno seno potencia logaritmo logaritmo
est´andard num1+num2 num1/num2 num1xnum2 num1-num2 |num1| -num1 √ num1 cos(num1) sen(num1) baseexponente ln(num1) log(num1)
Ejes
En ocasiones es interesante pintar los ejes del gr´afico, 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
6.1
Ejemplo
El c´ odigo 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 0 1
2
3
−1
Para otros par´ ametros ve´ ase la hoja de referencia.
7
Nodos y conexiones
Para representar diagramas diversos son muy u ´tiles 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 c´ odigo 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
\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]{