Diseño Gráfico en LaTeX

Page 1

Diseño Gráfico en LATEX Gráficos Matemáticos de Alta Calidad z

y

x αϕ1 (·)

x

βϕ2 (·)

ǫy − u1

ǫx − u1 µN

S

λϕ3 (·) λr ϕ4 (·)

µS f αψ1 (·)m + αr ψ1 (·)mr

xr

ǫr xr

y

I

µI βr ϕ5 (·)

yr

ǫr yr

Jorge Mario García Usuga Aníbal Muñoz Loaiza Efraín Alberto Hoyos Salcedo

θ

R

µR


Diseño gráfico en LATEX Jorge Mario García Usuga 14 de diciembre de 2007


J. M. García, A. Muñoz L. E. A. Hoyos

Diseño Gráfico en LATEX Gráficos Matemáticos de Alta Calidad

No está permitida la reproducción total o parcial de esta obra por cualquier medio o método sin autorización escrita de los autores.

Derechos Reservados© Armenia Quindío Colombia 2007 ISBN: 978-958-44-2285-9


PREFACIO

Para muchos usuarios de LATEX , se hace imprescindible la inclusión de material gráfico dentro de sus documentos matemáticos. Generalmente, el tema es algo desagradable para las personas que están dando sus primeros pasos en LATEX , pues se deben tener archivos separados del documento fuente para su posterior compilación. Hasta hace algunos años se empezaron a implementar paquetes con la capacidad de hacer gráficos matemáticos y no matemáticos dentro de nuestros documentos TEX , esto se logró con paquetes como PSTricks y XY-pic entre otros, los cuales permitieron crear gráficos a partir de códigos tipo TeX. Gráficos matemáticos como los ejes coordenados, diagramas de flujo, diagramas conmutativos, gráfico de curvas en R2 y R3 entre otros, se incluían en LATEX , haciéndolos en otros programas y luego exportándolos a un formato compatible como ps o bmp. Esto producía una incompatibilidad entre los tipos de letra usados por el software para hacer las graficas y las fuentes usadas por LaTeX. Paquetes como PSTricks y XY-pic presentan una forma muy “matemática"para realizar este tipo de dibujos y producir artículos, libros y demás producción escrita, con gráficos de excelente calidad. Como ejemplo del poder de dichos paquetes, se presenta la portada de este libro, la cual se hizo enteramente con PSTricks y XY-pic. 3


4

El libro está dividido en tres capítulos. El primero hace una extensa revisión del paquete PSTricks, incluyendo ejemplos con su respectivo código fuente. El segundo muestra dos herramientas muy útiles para aquellas personas que no gustan de la programación en LATEX y el último capítulo, es una recopilación de ejemplos hechos con XY-pic, orientados a la construcción de diagramas de dinámicas ecológicas y epidemiológicas. El libro está dirigido a usuarios avanzados de LATEX , pues, en los ejemplos se usan macros e instrucciones que se asume el usuario ya debe conocer. Si el lector no tiene conocimiento de dichas instrucciones refiérase a los documentos [11],[12],[9] y [6]. Esperamos que este material sirva de apoyo a docentes, alumnos y TEX-nócratas que gusten de gráficos matemáticos de alta calidad en sus documentos.


ÍNDICE GENERAL

1. Gráficos con PSTricks 1.1. El entorno . . . . . . . . . . . . . . . . . . . 1.2. Puntos . . . . . . . . . . . . . . . . . . . . . 1.3. Líneas y polígonos . . . . . . . . . . . . . . 1.3.1. Rectas simples . . . . . . . . . . . . 1.3.1.1. Flechas . . . . . . . . . . . 1.3.2. Rectas con el comando qline . . . . 1.3.3. Polígonos . . . . . . . . . . . . . . . 1.3.4. Frames con \psframes . . . . . . . . 1.4. Círculos, elipses y arcos . . . . . . . . . . . 1.4.1. Círculos . . . . . . . . . . . . . . . . 1.4.2. Sección de círculo . . . . . . . . . . . 1.4.3. Elipses . . . . . . . . . . . . . . . . . 1.4.4. Arcos . . . . . . . . . . . . . . . . . 1.5. Curvas . . . . . . . . . . . . . . . . . . . . . 1.5.1. Los comandos pscurve, psecurve y 1.6. Manejo de Colores . . . . . . . . . . . . . . 1.6.1. Creación de nuevos colores . . . . . . 1.6.2. Texturas . . . . . . . . . . . . . . . . 1.6.3. Degradados . . . . . . . . . . . . . . 1.7. Manejo de objetos . . . . . . . . . . . . . . 5

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . psccurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9 10 12 15 15 16 16 17 18 18 18 19 19 20 21 22 24 24 28 30 32


6

ÍNDICE GENERAL 1.7.1. El comando \rput . . . . . . . . . . . . . . . 1.7.2. Resortes . . . . . . . . . . . . . . . . . . . . . . 1.7.3. Ejes coordenados . . . . . . . . . . . . . . . . . 1.7.4. Grillas . . . . . . . . . . . . . . . . . . . . . . . 1.8. Manejo de texto . . . . . . . . . . . . . . . . . . . . . 1.8.1. El comando \uput . . . . . . . . . . . . . . . . 1.8.2. Texto en recuadros . . . . . . . . . . . . . . . . 1.8.2.1. Sombras . . . . . . . . . . . . . . . . . 1.8.3. Texto sobre curvas . . . . . . . . . . . . . . . . 1.8.4. Texto con efectos especiales . . . . . . . . . . . 1.9. Trazado de curvas . . . . . . . . . . . . . . . . . . . . 1.9.1. Curvas a partir de su ecuación . . . . . . . . . 1.9.2. Curvas Paramétricas . . . . . . . . . . . . . . . 1.9.3. Regiones sombreadas . . . . . . . . . . . . . . . 1.10. Herramientas para árboles, grafos y diagramas . . . . . 1.10.1. Nodos . . . . . . . . . . . . . . . . . . . . . . . 1.10.2. Conectores . . . . . . . . . . . . . . . . . . . . 1.10.3. Etiquetas . . . . . . . . . . . . . . . . . . . . . 1.10.4. Árboles . . . . . . . . . . . . . . . . . . . . . . 1.10.4.1. Etiquetas para los nodos de los árboles 1.11. Manejo de objetos 3D con PSTricks . . . . . . . . . . . 1.11.1. El paquete pst-3dplot . . . . . . . . . . . . . 1.11.2. El eje cordenado 3D . . . . . . . . . . . . . . . 1.11.3. Ubicación de objetos con \pstThreeDPut . . . 1.11.4. Puntos . . . . . . . . . . . . . . . . . . . . . . . 1.11.5. Líneas rectas . . . . . . . . . . . . . . . . . . . 1.11.6. Triángulos . . . . . . . . . . . . . . . . . . . . . 1.11.7. Cuadros y rectángulos . . . . . . . . . . . . . . 1.11.8. Cajas . . . . . . . . . . . . . . . . . . . . . . . 1.11.9. Circunferencias y elipses . . . . . . . . . . . . . 1.11.10.Esferas . . . . . . . . . . . . . . . . . . . . . . . 1.11.11.Curvas paraméntricas en 3D . . . . . . . . . . . 1.11.12.Gráfica de funciones . . . . . . . . . . . . . . .

2. Herramientas para gráficos con PSTricks 2.1. JpicEdt . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1. Ventanas . . . . . . . . . . . . . . . . . . . . .

33 34 37 40 42 42 43 44 44 46 47 48 50 51 54 54 54 59 61 65 66 67 67 69 69 70 71 72 73 74 76 77 80 87 87 89


ÍNDICE GENERAL 2.1.2. Herramientas de edición . . . . . . . . 2.1.3. Preferencias y configuración . . . . . . 2.1.4. Otras herramientas de JpicEdt . . . . 2.1.5. ¿Cómo pasar de JpicEdt a LATEX? . . 2.1.6. Ejemplos en JpicEdt . . . . . . . . . . 2.2. LATEXDraw . . . . . . . . . . . . . . . . . . . 2.2.1. Herramientas de diseño . . . . . . . . 2.2.2. Configuración de objetos . . . . . . . 2.2.3. ¿Cómo pasar de LATEXDraw a LATEX? 2.2.4. Ejemplos en LATEXDraw . . . . . . . .

7 . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

93 96 97 102 102 111 112 114 114 114

3. Conceptos Generales de XY- pic 119 3.1. Diagramas de dinámicas ecológicas y epidemiológicas . 120 3.2. Diagramas conmutativos . . . . . . . . . . . . . . . . . 130


8

ÍNDICE GENERAL


CAPÍTULO 1 Gráficos con PSTricks PSTricks es un paquete que esta incluido en LATEX con base en las librerías macros de TEX- PostScript, fue creado por Timothy Van Zandt de la Universidad de Princeton en 1993. Estas librerías son compatibles con AMS-TEX y AMS-LATEX. El paquete fue diseñado específicamente para gráficos matemáticos de alta calidad, utilizando técnicas de gráficos vectorizados, proporcionando así una calidad que otros paquetes no pueden alcanzar. Con PSTricks se pueden incluir estilos de líneas, objetos geométricos como rectángulos, triángulos; ejes coordenados, herramientas para gráficos de diagramas de flujo, grafos, mayas, objetos 3D, colores y efectos de texto, entre otros. La instalación de PSTricks, es muy fácil, en la versión para Windows MIKTEX 2.5 ya viene pre instalado y no requiere manipular archivos para su configuración; para versiones inferiores, se debe tener cuidado con la ubicación de los archivos. PSTricks también está disponible para Linux, Mac y Unix. Empezaremos por poner las librerías en el preámbulo de nuestro documento \usepackage{pstricks} \usepackage{pst-plot} 9


1.1. El entorno

10 Paquete Pst-plot Pst-char Pst-text Pst-tree Pst-coil Pst-node

Función Útil para gráficos que conlleven rectas, polígonos, ejes y curvas Permite incluir texto con efectos especiales Muy similar al anterior, pero este permite poner texto a lo largo de curvas Útil para la contrucción de árboles Zig-zags y resortes en electrónica Ideal para grafos y diagramas de flujo Cuadro 1.1: Módulos de PSTricks

Sin embargo, es bueno que para trabajar con todas las opciones, hay que usar un paquete que los una a todos, este se incluye de la siguiente manera: \usepackage{pst-all}

PSTrick también incluye paquetes como pst-node especial para grafos, el cuadro 1.1 muestra los diferentes módulos y su uso:

1.1 El entorno Para incluir una gráfica con PSTricks en nuestro documento, debemos invocar el entorno pspicture con la siguiente secuencia de instrucciones: \begin{pspicture}(x,y)(x’,y’) \rput(0,0){hola} \end{pspicture} Los parámetros x, y y x′ , y ′ son las esquinas opuestas de un rectángulo imaginario. Nuestra gráfica se puede salir de dicho rectángulo, pero usando \begin{pspicture*}(x,y)(x’,y’) se recorta todo lo que sobre salga del rectángulo delimitado. El anterior código nos devolvera el siguiente resultado


1. Gráficos con PSTricks

11

hola

Nada del otro mundo, sin embargo, podemos disponer de una malla que nos guíe en la ubicación de nuestros objetos en PSTricks, para esto creamos un nuevo objeto de la siguiente manera y lo ubicamos antes del inicio del documento: \begin{document}. \newpsobject{malla}{psgrid}{subgriddiv=1,griddots=10, gridlabels=6pt} Esto nos permitirá crear una malla útil para la ubicación de nu-estros objetos

\begin{pspicture}(-2,-2)(2,2) \malla \rput(0,0){hola} \end{pspicture}

2

El resultado es el siguiente:

1

0

hola

-1

-2 -2

-1

0

1

2


1.2. Puntos

12

2

El comando \rput se usa para ubicar objetos en el espacio delimitado, más adelante estudiaremos la versatilidad de este comando. Por ahora, observemos que aparece una malla numerada alrededor de nuestra gráfica, podemos ubicar ahora otros objetos con la ayuda de dicha cuadrícula. Ubicaremos la palabra “mundo” en la posición (1, −1) \begin{pspicture}(-2,-2)(2,2) \malla \rput(0,0){hola} \rput(1,-1){mundo} \end{pspicture}

1

0

hola

-1

mundo

-2 -1

-2

0

1

2

Si deseo que la malla sea más fina o por el contrario con la cuadricula más grande, podemos cambiar dicho parámetro con la instrucción \psset{unit=1}, sólo debemos cambiar el valor de 1 por el que necesitemos y ubicar esta instrucción antes del \begin{pspicture}. \psset{unit=1} permite confugurar nuestro gráfico. se ubica antes del \begin{pspicture} y se pueden predeterminar algunas opciones como el color, la escala, el grosor de las líneas, etc. 2

\psset{unit=0.6} \begin{pspicture}(-2,-2)(2,2) \malla \rput(0,0){hola} \rput(1,-1){mundo} \end{pspicture}

1 0

hola

-1

mundo

-2 -2

-1

0

1

2

1.2 Puntos PSTricks permite la inclusión de puntos con el siguiente comando \psdots[par](x1,y1)(x2,y2)(xn,yn) El siguiente ejemplo colocaremos 9 puntos con estilos diferentes:


1. Gráficos con PSTricks

13

1

b

t u

+

u

rs

r

p q

q

|

0 0

1

2

3

4

5

6

7

8

9

\psset{unit=1.2, dotsize=5pt 0} \begin{pspicture}(0,0)(9,1)\malla \psdots(0.5,0.5) \psdots[dotstyle=+](1.5,0.5) \psdots[dotstyle=triangle](2.5,0.5) \psdots[dotstyle=triangle*](3.5,0.5) \psdots[dotstyle=square](4.5,0.5) \psdots[dotstyle=square*](5.5,0.5) \psdots[dotstyle=pentagon](6.5,0.5) \psdots[dotstyle=pentagon*](7.5,0.5) \psdots[dotstyle=|](8.5,0.5) \end{pspicture}

En el cuadro 1.2 ilustraremos los diferentes estilos de puntos mostrados en el ejemplo anterior. Además de estos estilos de puntos podemos adicionar algunas otras opciones. dotsize=dim Con esta opción podemos cambiar el tamaño del punto, por defecto es 2pt dotscale=num1 num2 Con ella podemos escalar el tamaño de un punto, con el primer número el tamaño horizontal y con el segundo el tamaño vertical. Por defecto es 1 dotangle=angle Los puntos son rotados por el ángulo determinado por el parámetro angle, por omisión es cero. En muchas ocasiones es importante ubicar puntos en nuestras gráficas, el siguiente ejemplo muestra la utilidad de estas opciones:


1.2. Puntos

14 Estilo * + | triangle triangle* square square* pentagon pentagon*

Ejemplo b

b

+ + |

|

t u

t u

u

u

rs

rs

r

r

p q

p q

q

q

Cuadro 1.2: Estilos de Puntos en PSTricks

\psset{unit=0.5} \begin{pspicture}(0,-2.3)(4.9,2.3) \psdots[dotsize=0.266](2.8,0.6) \rput(0.6,-1.6) {\psaxes[linewidth=0.04](0,0)(0,0)(4,4)} \psdots[dotsize=0.17,dotangle=-66.0] (1.6,1.0) \psdots[dotsize=0.4,dotstyle=triangle](3.6,-0.5) \psdots[dotsize=0.4,dotstyle=pentagon*](4.6,-0.7) \end{pspicture}

4 3 b

b

2

t q u

1 0 0

1

2

3

4


1. Gráficos con PSTricks

15

1.3 Líneas y polígonos Las líneas y los polígonos son una de las herramientas más versatiles en PSTricks. Con los puntos y las rectas se pueden crear una gran variedad de figuras y formas muy comunes en matemáticas como: ejes coordenados, digramas lineales, árboles, etc. A continuación presentamos su configuración básica.

1.3.1.

Rectas simples

\psline[par]{flechas}(x0,y0)(x1,y1)...(xn,yn) Esta instruccion dibuja una linea a travéz de las coordenas establecidas por los puntos (x0 , y0 )(x1 , y1 ) . . . (xn , yn ) La instrucción \psline tiene los siguientes parametros: linearc=dim Por omisión es 0pt y hace referencia al arco con el que se dibujan las curvas (si estamos dibujando un polígono). Dicha dimensión debe ser positiva. linewidth=n Con esta opción podemos cambiar el ancho de la línea, se puede inicializar en cero. Por defecto es 0.8pt linestyle= La opción permite cambiar la forma como se pinta la línea, esta puede ser solid que es la opción por defecto, dashed ofrece una línea a trozos y dotted una línea punteada. dash= n b Permite cambiar el patrón de negro o blanco en la línea a trozos por omisión son 5pt y 3pt. Si queremos una línea igualemte espaciada podemos cambiar la opción a 5pt 5pt para obtener el efecto deseado. dotsep= n Al igual que en dash, dotsep permite cambiar el patrón de separación


1.3. Líneas y polígonos

16

de los puntos en las líneas punteadas. Por omisión es 3pt linecolor= color Permite cambiar el color de la línea, por omisión es black, en la sección 1.6 mostraremos otros colores posibles con PSTricks. doubleline= n Permite trazar una línea doble o sencilla, por defecto es false, es decir sencilla, si la queremos doble cambiamos n por true. Veamos el siguiente ejemplo: 3

\psset{unit=2.4} \begin{pspicture}(0,0)(4,3) \malla \psline(0,1.5)(4,1.5) \psline[linecolor=blue, doubleline=true, linestyle=dotted ](0,0.5)(4,0.5) \psline[linecolor=red, linestyle=dashed ](0,2.5)(4,2.5) \end{pspicture}

2

1

0 0

1.3.1.1.

1

2

3

4

Flechas

Las opciones de flechas se pueden implementar para construir ejes coordenados o diagramas de flujo, árboles, etc, para este propósito cambiamos el párametro entre las llaves {}, a continuación en el cuadro 1.3 mostraremos las diferentes estilos de flechas.

1.3.2.

Rectas con el comando qline

Para contruir flechas simples podemos usar el comando qline (x0 , y0 ) (x1 , y1 ), el cual dibuja una recta entre los puntos sin parámetros de grosor, estilos o flechas, veamos el siguiente ejemplo:


1. Gráficos con PSTricks Parámetro -> <>>-<< |<>||<->| [([-] o**-*

Ejemplo

17 Parámetro <-> ->> <<->> ->| -< -| |-| -] -) (-) -o -* o-o

Ejemplo

Cuadro 1.3: Estilos de flechas para rectas en PSTricks 1

0 0

1

2

3

\psset{unit=2.4}

1.3.3.

\begin{pspicture}(0,0)(1,2) \malla \qline(0,0)(3,1) \end{pspicture}

Polígonos

Este comando es muy similar a psline, y dibuja un polígono cerrado que une el primer punto (x0 , y0 ) con el último (xn , yn ). \pspolygon[par](x0,y0)(x1,y1)(x2,y2)...(xn,yn)$ Veamos el siguiente ejemplo: 2

\psset{unit=2.4} \begin{pspicture}(0,0)(2,2) \malla \pspolygon[linearc=.2] (0,1)(1,0)(2,1)(1,2) \end{pspicture}

1

0 0

1

2


1.4. Círculos, elipses y arcos

18

1.3.4.

Frames con \psframes

Esta instrucción dibuja un rectángulo entre las esquinas opuestas (x0 , y0 ) y (x1 , y1 ) \psframe[par](x0,y0)(x1,y1) 2

\psset{unit=2.4} \begin{pspicture}(0,0)(2,2) \malla \psframe(0.5,0.5)(1.5,1.5) \end{pspicture}

1

0 0

1

2

1.4 Círculos, elipses y arcos 1.4.1.

Círculos

Para dibujar círculos, elipses y arcos, PSTricks implementa el siguiente comando \pscircle[par](x0,y0){r} La instrucción simplemente dibuja una circunferencia con centro en (x0 , y0 ) y radio r Por ejemplo: 3

\psset{unit=1.5} \begin{pspicture}(0,0)(3,3) \malla \pscircle[linewidth=2pt] (1,1){1} \pscircle[linestyle=dashed] (1.5,1.5){1} \pscircle[linestyle=dotted] (1.5,2){1.2} \end{pspicture}

2

1

0 0

1

2

3


1. Gráficos con PSTricks

19

Los parámetros son los mismos que podemos encontar para dibujar rectas. En el ejemplo anterior podemos ver el manejo de estas opciones.

1.4.2.

Sección de círculo

PSTricks implemeta la instrucción \pswedge para dibujar secciones de círculos, muy usados en estadística y geometría: \pswedge[par](x0,y0){r}{ang1}{ang2} La instrucción requiere un punto como centro (x0 , y0 ), y con el radio r dibujará una sección de círculo entre los ángulos arg1 y arg2. 3

\psset{unit=2.8} \begin{pspicture}(0,0)(3,3) \malla \pswedge[linewidth=2pt] {1}{0}{70} \pswedge[linewidth=2pt] {2}{0}{70} \pswedge[linewidth=2pt] (3,3){2}{180}{270}

2

1

0 1

0

1.4.3.

2

3

Elipses

Al igual que con el círculo las elipses necesitan un centro (x0 , y0 ), pero, para lograr el efecto requieren dos radios r1 y r2 . \psellipse[par](x0,y0)(r1,r1) veamos el siguiente ejemplo : 3

\psset{unit=2.2} \begin{pspicture}(0,0)(4,3)\malla \psellipse[linestyle=dashed] (2,1)(2,1) \psellipse(2,1.5)(1,1.5)

2

1

0 0

1

2

3

4


1.4. Círculos, elipses y arcos

20

1.4.4.

Arcos

Los arcos requieren de un centro (x, y) que se tomará como base para la circunferencia imaginária con la cual trazaremos el arco, un radio r que es la distancia entre el centro y el arco, y dos ángulos angA, angB que al igual que en la sección de círculos sirve para denotar el inicio y el fin del arco. \psarc[par]{flechas}(x,y){r}{angA}{angB} La funcion psarc utiliza los siguientes parámetros extra: showpoints= Se usa para mostar una línea punteada del centro de la circunferencia imaginária a los extremos del arco, por omisión es false . arcsepA= y arcsepB= Estos parámetros que por defecto son 0pt, se usa para que parte del arco tambien quede dibujado con lineas punteadas, comenzando por angA o por angB, dependiendo de la functón que usemos. arcsep= Con esta opción podemos hacer lo mismo que con las opciones arcsepA y arcsepB pero simultáneamente por ambos extremos del arco. Ejemplo: 3

\psset{unit=2.2} \begin{pspicture}(0,0)(4,3) \malla \psarc[showpoints=true, arcsepA=2](0.2,0.2){1.5}{0}{90} \psarc[showpoints=true, arcsepB=2](3.8,0.2){1.5}{90}{180} \psarc[showpoints=true, arcsep=1](2,3){1.5}{190}{350}

2

1

0 0

1

2

3

4

Para hacer arcos con flechas se une la instrucción \psarcn con la sigu-


1. Gráficos con PSTricks

21

iente notación: \psarcn[par]{flecha}(x,y){r}{angA}{angB} El arco es dibujado en sentido horario, y tiene una opción {flecha} con la cual podemos dibujar flechas como se indica en el cuadro 1.3. Ejemplo: 3

\psset{unit=2.2} \begin{pspicture}(0,0)(4,3) \malla \psarc{o-o}(0.2,0.2) {1.5}{0}{90} \psarc{<->}(3.8,0.2) {1.5}{90}{180} \psarc[arcsep=1]{>>-<<}(2,3){1.5} {190}{350} \end{pspicture}

2

1

0 0

1

2

3

4

1.5 Curvas Para dibujar curvas, PSTricks utiliza algorítmos de interpolación de puntos, una de las más simples nos permite hacer una curva entre cuatro puntos; veamos la instrucción psbezier. \psbezier[par]{flechas}(x0,y0)(x1,y1)(x2,y2)(x3,y3) Como podemos observar utiliza los mismos parámetros que las anteriores instruciones y cuatro puntos (x0 , y0 ), (x1 , y1 ), (x2 , y2 ), (x3 , y3 ). La curva comienza en el punto (x0 , y0 ), pero es tangente a una línea recta entre el primer punto y el segundo, luego la curva termina en el punto (x3 , y3 ) pero tangente a una línea imaginaria entre el tercero y cuarto punto. Al igual que con la instrucción \psarc esta también tiene la opción showpoints para ver las líneas imaginarias, veamos un ejemplo:


1.5. Curvas

22 b

3

\psset{unit=2.2} \begin{pspicture}(0,0)(4,3) \malla \psbezier[showpoints=true]{->} (0,0)(1,3)(3,0)(4,3)

2

1

0

b

0

1

2

b

3

4

La intrucción \parabola presenta la siguiente sintaxis: \parabola[par]{flechas}(x0,y0)(x1,y1) Dibuja una parábola que comienza en el punto (x0 , y0 ) y tiene como máximo o mínimo el punto (x1 , y1 ) dependiendo si el ultimo punto esta por encima o por debajo del primer punto. Ejemplo: 3

\psset{unit=2.2} \begin{pspicture}(0,0)(4,3) \malla \parabola{<->}(0,0)(2,3) \parabola{>-o}(1,3)(2,0) \end{pspicture}

2

1

0 0

1.5.1.

1

2

3

4

Los comandos pscurve, psecurve y psccurve

El comando psbezier y parabola sólo pueden dibujar curvas simples con no más de 4 puntos determinados; con estas nuevas instrucciones podemos dibujar curvas mucho más elaboradas y definidas, con la cantidad de puntos que necesitemos, sin embargo, es necesario tener en


1. Gráficos con PSTricks

23

cuenta las siguientes opciones: curvature= n m p Por defecto este parámetro es de 1 0.1 0, y se utiliza para modificar la forma de la curva, el primer valor hace la curva más firme. El segundo parámetro hace que la curva se “apriete” si el ángulo formado por los puntos es mayor a 45 grados, la curva es más suelta. El tercer parámetro es similar al segundo, pero afecta la abertura de la curva haciendola más o menos abierta en los vértices. Sin embargo es bueno dejar los valores predeterminados por PSTricks. La instrucción pscurve genera una curva abierta con los mismos parámetros estudiados anteriormente. La opción showpoints muestra los puntos de interpolación. b

3

b \psset{unit=2.2} \begin{pspicture}(0,0)(4,3) \malla \pscurve[showpoints=true]{<->} (0,0)(1,2)(2,3)(3,3)(4,2) \end{pspicture}

b

2

1

0 1

0

2

3

4

psecurve es muy similar al anterior, pero la curva no pasan por el primer y último punto, el algoritmo trata de unir los extremos lo mejor posible, el siguiente ejemplo es igual al anterior pero usando psecurve. b

3

\psset{unit=2.2} \begin{pspicture}(0,0)(4,3) \malla \psecurve[showpoints=true]{<->} (0,0)(1,2)(2,3)(3,3)(4,2) \end{pspicture}

2

1

0 0

1

2

3

4


1.6. Manejo de Colores

24

Por último tenemos psccurve la cual es similar a pscurve pero ésta genera una curva cerrada uniendo el primer y último punto: b

3

\psset{unit=2.2} \begin{pspicture}(0,0)(4,3) \malla \psccurve[showpoints=true]{<->} (0,0)(1,2)(2,3)(3,3)(4,2) \end{pspicture}

b

2

b

1

0 0

1

b

2

3

4

1.6 Manejo de Colores En PStricks se puede trabajar con los siguientes colores:

red

green

blue

cyan magenta yellow PSTricks también maneja colores en escala de grises: Negro (black), gris oscuro (darkgray), gris (gray), gris claro (lightgray), y blanco (white)

1.6.1.

Creación de nuevos colores

Además de estos colores podemos definir nuevos con las siguientes instrucciones: newgray y newrgbcolor


1. Gráficos con PSTricks

25

\newgray{color}{n} Este comando se utiliza para generar nuevos tonos de gris, color será el nombre de nuestro nuevo color, n es la intensidad entre 0 y 1, donde 0 es negro y blanco es 1.

\newrgbcolor{color}{r g b}

Esta instrucción se usa para generar nuevos coleres con el formato RGB (red, green y azul), color será el nombre de nuestro nuevo color y {r,g,b} son números entre 0 y 1. newhsbcolor

\newhsbcolor{color}{h s b}

La anterior instrucción se usa para generar nuevos colores con el formato HSB (hue, saturation, brightness), {color} será el nombre de nuestro nuevo color y {h,s,b} son números entre 0 y 1. newcmykcolor

\newcmykcolor{color}{c m y k} Esta instrucción se usa para generar nuevos colores con el formato CMYK (Cian, magenta, yellow, black), {color}será el nombre de nuestro nuevo color y {c,m,y,k} son números entre 0 y 1. Ejemplo:


1.6. Manejo de Colores

26 3

2

Favoritismo en los editores de texto

1

LATEX

0

-1

Word Otros

-2

-3 0

1

2

3

4

5

6

7

8

\psset{unit=2.0} \begin{pspicture}(0,-3)(8,3)\malla \newgray{girisclaro}{0.9} \newrgbcolor{elcolorlatex}{0.1 0.1 1.0} \newhsbcolor{elcolorword}{0.1 0.9 1.0} \newcmykcolor{elcolorotro}{0.1 0.3 0.3 0.3} \pspolygon[linewidth=0.01,fillstyle=solid, fillcolor=girisclaro](0.8,1.8)(0.8,2.3) (6.3,2.3)(6.3,1.8) \pswedge[linewidth=0.04,fillstyle=solid, fillcolor=elcolorlatex](3.7,-0.3){1.86}{53.8}{271.5} \pswedge[linewidth=0.04,fillstyle=solid, fillcolor=elcolorword](3.7,-0.3){1.86}{347.2}{54.3} \pswedge[linewidth=0.04,fillstyle=solid, fillcolor=elcolorotro](3.7,-0.3){1.86}{268.6}{347.0} \rput(3.6,2.0){Favoritismo en los editores de texto} \rput(2.7,0.1){\LaTeX} \rput(4.6,0){Word} \rput(4.3,-1.1){Otros} \end{pspicture} Para usuarios avanzados de PostScript, no es recomendado usar col-


1. Gráficos con PSTricks

27

ores cmyk y HSB, pues en algunas ocasiones requiere de otros controladores y puede generar errores al compilar. Se recomienda hacer RGB para generar nuevos colores. Recordemos que con el comando \psset{...} podemos configurar opciones de color y con el comando fillcolor podemos indicar que todos los objetos creados de ahí en adelante sean dibujados con ese color de relleno, la opción linecolor sirve para definir el color de las lineas de contorno. Veamos el siguiente ejemplo: 2

\psset{unit=2.0, fillcolor=yellow,linecolor=blue} \begin{pspicture}(0,0)(2,2) \malla \psellipse(1,.5)(1,.5) \end{pspicture}

1

0 0

1

2

Podemos ver en el ejemplo anterior que la elipse, aunque está pintada de contorno azul, no se rellenó de color amarillo, así que para ello, debemos tener en cuenta los siguientes parámetros: linewidth=n Con este determinamos el ancho de la línea de cualquier objeto (líneas, círculos, etc), por defecto es 8pt. fillstyle=s Este comando permite definir el estilo de llenado de los objetos, este puede ser none, el cual hace que el objeto no tenga ningún relleno. La opción solid, permite que se pueda rellenar un objeto bien sea con un color o con una textura. Para definir un color de llenado, se usa el comando fillcolor=c, donde c es uno de los colores antes mencionado. Veamos un ejemplo:


1.6. Manejo de Colores

28 5

4

3

2

1

0 0

1.6.2.

1

2

3

\psset{unit=1.0} \begin{pspicture}(0,0)(3,5) \malla \psellipse[fillstyle=solid, fillcolor=lightgray, linecolor=red](1,.5)(1,.5) \psellipse[fillstyle=solid, fillcolor=red, linecolor=blue](2,2)(0.5,0.5) \psframe[fillstyle=solid, fillcolor=green, linecolor=magenta](0,5)(1,4) \pscircle[fillstyle=solid, fillcolor=cyan, linecolor=green](2,4){1} \end{pspicture}

Texturas

Recordemos que fillstyle=s con la opción solid puede dibujar un objeto con un relleno que puede ser un color o una textura, el cuadro 1.4 muestra las opciones para rellenado con texturas Nombre none vlines hlines crosshatch gradient

efecto Es el valor por defecto, no rellena el objeto con ningún color o textura líneas verticales con una inclinación de 45o líneas horizontales con una inclinación de 45o Lineas cruzadas verticales y horizontales a 45o Da al objeto una textura de degradado entre dos colores Cuadro 1.4: Texturas en PSTricks

En el siguiente ejemplo se usan los mismos objetos que en el ejemplo anterior, pero esta vez usaremos las texturas mencionadas, excepto el gradiente al cual dedicaremos más tiempo:


1. Gráficos con PSTricks

29

5

4

3

2

1

0 0

1

2

3

\psset{unit=1.0} \begin{pspicture}(0,0)(3,5)

\malla \psellipse[fillstyle=vlines] (1,.5)(1,.5) \psellipse[fillstyle=hlines] (2,2)(0.5,0.5) \psframe[fillstyle=none] (0,5)(1,4) \pscircle[fillstyle=crosshatch] (2,4){1} \end{pspicture}

El cuadro 1.5 muestra otras opciones que se pueden aplicar a las texturas, como cambiar el ángulo de inclinación, el color de las líneas, etc.

Nombre hatchsep hatchwidth hatchcolor hatchangle

efecto Separación entre líneas, por defecto es 4pt Grosor de las líneas, por defecto es 0.8pt Color de las líneas, por defecto es negro Inclinación de las líneas

Cuadro 1.5: Parámetros adicionales para texturas Veamos el siguiente ejemplo:

3

2

1

0 0

1

2

\psset{unit=1.0}

3

\begin{pspicture}(0,0)(3,3) \malla \psellipse[fillstyle=hlines, hatchcolor=red,hatchangle=22] (2,0.5)(0.5,0.5) \psframe[fillstyle=vlines, hatchangle=0 ](0,1)(1,0) \pscircle[fillstyle=crosshatch, hatchsep=2pt](1.5,2){0.5} \end{pspicture}


1.6. Manejo de Colores

30

1.6.3.

Degradados

Uno de los efectos más vistosos y usados de PSTricks es el degradado, sólo necesitamos poner fillstyle=gradient y podemos obtener un efecto de degradado lineal en dos colores: 3

\psset{unit=1.5} \begin{pspicture}(0,0)(3,3) \malla \psframe[fillstyle=gradient] (2.8,1)(0.2,3) \end{pspicture}

2

1

0 0

1

2

3

Las siguientes opciones determinan la configuración del degradado: gradbegin=color Es usada para escoger el color inicial del degradado, por defecto es azul oscuro. gradend=color Es usada para escoger el color final del degradado, por defecto es azul claro. gradmidpoint=n n debe ser un número entre 0 y 1, y se utiliza para escoger la posición del punto intermedio del degradado. gradangle=ang Denota el álgulo de rotación para el degradado medido en grados, el valor por defecto es 0. gradlines=n Determina el número de líneas del degradado, el valor predeterminado es 500, mientras más líneas más fino es el efecto del degradado.


1. Grรกficos con PSTricks

31

El siguiente ejemplo muestra el poder de los degrados para grรกficos matemรกticos: Nivel de ฮฑ

N4 N3

N2

N1

M1

M2

M3

M4

Mรกquinas

\psset{unit=1.5} \begin{pspicture}(0,-3.5)(9.5,3.5) \psline[linewidth=0.04cm]{->}(1.6,-2.7)(1.6,2.7) \psline[linewidth=0.04cm]{->}(1.6,-2.7)(7.6,-2.7) \psframe[linewidth=0.02,fillstyle=gradient, gradlines=2000,gradmidpoint=1.0](2.7,1.2)(2.1,-2.7) \psframe[linewidth=0.02,fillstyle=gradient, gradlines=2000,gradbegin=red,gradend=cyan, gradmidpoint=1.0](3.9,-0.04)(3.3,-2.7) \psframe[linewidth=0.02,fillstyle=gradient, gradlines=2000,gradbegin=magenta, gradend=yellow,gradmidpoint=1.0](5.2,1.9)(4.6,-2.7) \psframe[linewidth=0.02,fillstyle=gradient, gradlines=2000,gradbegin=green,gradend=red, gradmidpoint=1.0](6.4,-1.6)(5.8,-2.7) \psline[linewidth=0.03cm,linestyle=dashed, dash=0.16cm 0.16cm](1.6,-1.6)(6.3,-1.6)


32

1.7. Manejo de objetos

\psline[linewidth=0.03cm,linestyle=dashed, dash=0.16cm 0.16cm](1.6,1.9)(5.1,1.9) \psline[linewidth=0.03cm,linestyle=dashed, dash=0.16cm 0.16cm](1.7,0)(3.7,0) \psline[linewidth=0.03cm,linestyle=dashed, dash=0.16cm 0.16cm](1.7,1.2)(2.4,1.2) \rput(8.6,-3.1){\psframebox[linewidth=0.04]{MĂĄquinas}} \rput(1.4,3.1){\psframebox[linewidth=0.04] {Nivel de $\alpha$}} \rput(2.3,-3.1){$M_1$} \rput(3.5,-3.1){$M_2$} \rput(4.8,-3.1){$M_3$} \rput(6,-3.1){$M_4$} \rput(1.0,-1.6){$N_1$} \rput(1.0,0){$N_2$} \rput(1.0,1.2){$N_3$} \rput(1.0,1.9){$N_4$} \end{pspicture} En PSTricks existe algo que se llama comandos estrella, los cuales dan atributos por defecto a los objetos que vamos a dibujar, por ejemplo: \pscircle*[linestyle=dashed](1.5,1.5){1} Como podemos ver aparece un * despuĂŠs de invocar el comado \pscircle, con esto le indicamos al compilador de LATEX que rellene el objeto con el color determinado por linecolor, linewidth toma el valor de 0, fillstyle toma el valor de solid, linestyle el valor de none y fillcolor toma el valor determinado por linecolor. Debemos tener especial cuidado en configurar los valores anteriormente mencionados si queremos usar los comandos estrella, pues, pueden producir una grĂĄfica no deseada.

1.7 Manejo de objetos En los ejemplos anteriores hemos visto el uso de algunos comandos como \rput para ubicar objetos, tambien usamos el objeto malla que


1. Gráficos con PSTricks

33

hemos creado a partir de un nuevo comando. En esta sección estudiaremos más a fondo el uso de estas herramientas:

1.7.1.

El comando \rput

Ya hemos tenido algún contacto con este comando, pues lo hemos aplicado en ejemplos anteriores. Veamos sus parámetros completos: \rput[P]{Ang}(x,y){Obj} El comando ubica un objeto “obj” que puede ser un texto una tabla o una gráfica en un punto (x, y), con el argumento P podemos cambiar la posición en que se coloca la caja de LATEX, por defecto este valor es [c], lo que nos indica que el objeto aparece centrado en la posición (x, y). Además de [c] existen otros valores con los que podemos hacer que los objetos no aparezcan en el centro, el siguiente gráfico ilustra los demás valores: tl

t

tr

c

r

b

br

Objeto

l Caja imaginaria

b

Es fácil ver de donde vienen los demás valores (left, top, etc). El parámetro ang determina el ángulo de rotación del objeto y se mide en grados sexagesimales entre -360 y 360, sin embargo, se pueden abreviar algunos ángulos especiales, como los de 90, 180, etc, el cuadro 1.6 muestra las abreviaciones: Veamos el siguiente ejemplo:


1.7. Manejo de objetos

34 Ángulo N L D R W S E

letra 0o 90o 180o 270o −90o −180o 270o

Cuadro 1.6: Ángulos espciales

Diámetro

Re cta Ta ng ent e

Recta Se cante

\psset{unit=1.0} \begin{pspicture}(0,-2)(5,2) \psline[linewidth=0.04cm]{<->}(1.5,1.9)(4.8,-0.1) \psline[linewidth=0.04cm]{<->}(4.6,-1.8)(0.0,-1.1) \pscircle[linewidth=0.04](2.4,-0.4){1.5} \psline[linewidth=0.04cm](2.5,1.1)(2.5,-1.9) \rput{-30.0}(3.4,1.1){Recta Tangente} \rput{-8.0}(2.6,-1.3){Recta Secante} \rput{W}(2.2,-0.3){Diámetro} \end{pspicture}

1.7.2.

Resortes

Este objeto permite construir curvas en forma de resortes o zig-zags, La estructura del comando es la siguiente:


1. Gráficos con PSTricks

35

\pscoil[par]{flechas}(x1,y1)(x2,y2) El cual extiende un resorte del punto (x1 , y1 ) hasta (x2 , y2 ). El siguiente comando permite hacer el efecto de zig-zags con los mismos parametros: \pszigzag[par]{flechas}(x1,y1)(x2,y2) Para configurar la apariencia de los resortes y zig-zags se tiene las opciones mostradas en el cuadro 1.7. Parámetro

Efecto

coilwidth=n

Amplía o reduce el ancho del resorte o zigzag, por defecto es 1cm. Con h > 0 esta opción determina el número de repeticiones del zig-zag o resorte. Mientras más pequeño sea este valor más repeticiones se harán. Representa la longitud del brazo que está en el punto (x1 , y1 ) del resorte. Es la longitud del brazo que está en el punto (x2 , y2 ) del resorte. Provoca que coilArmB y coilArmA tengan el mismo valor. Cambia el ángulo con que se dibujan los resortes, por defecto es 45 pero se puede modificar 0 ≤ ang < 90, este parámetro no afecta a los zig-zags. Por defecto es 10, y determina la suavidad con que se dibujan los resortes, no afecta a los zig-zags.

coilheight=h

coilArmA=n coilArmB=n coilArm=n coilaspect=ang

coilinc=ang

Cuadro 1.7: Parámetros de los resortes y zig-zags Este ejemplo muestra la versatilidad de ambos comandos:


1.7. Manejo de objetos

36 B1

M1 l2

R1

r1

b

l1 m1 \psset{unit=0.8} \begin{pspicture}(0,-2.5)(9.5,2.4) \psline(0,-1.8) \psline(0,-1.8)(2.1,-1.8) \psline(3.2,-1.8)(4.9,-1.8) \psline(4.9,-1.8)(4.9,-0.2) \psline(5.5,0.18)(4.9,0.7) \psline(4.9,0.7)(4.9,1.9) \psline(4.9,1.9)(2.8,1.9) \psline(1.6,1.9)(0.0,1.9) \psframe(2.8,2.4)(1.6,1.5) \psdots[dotsize=0.2](5.5,0.2) \rput(2.1,2.0){$B_1$} \rput(4.2614064,0.39890626){$R_1$} \rput(2.4,-1.1){$l_1$} \rput(1.1,0.8){$l_2$} \psframe(8.4,2)(7.2,1.1) \pscircle(7.8,-1.4){0.5} \rput(7.8,1.5){$M_1$} \rput(7.8,-2.3){$m_1$} \rput(9.1,0.5){$r_1$} \pszigzag[coilheight=0.2]{o-*} (0,0)(0,1.8) \pszigzag[coilheight=0.1]{o-*} (2.1,-1.8)(3.2,-1.8) \pscoil[coilheight=0.5]{*-*} (7.8,1.1)(7.8,-0.9)


1. Gráficos con PSTricks

1.7.3.

37

Ejes coordenados

Los ejes coordenados son uno de los objetos más utilizados en la composición de textos matemáticos, PSTricks tiene una herramienta llamada psaxes, con la cual podemos dibujar casi cualquier tipo de eje cordenado, veamos la sintaxis: psaxes[par]{flechas}(x0,y0)(x1,y1)(x2,y2) Lo anterior, permite que se dibuje un eje coordenado entre el rectángulo con vértices opuestos (x1 , y1 ) y (x2 , y2 ) y el origen del sistema está en (x0 , y0 ). El comando psaxes tiene los siguientes parámetros (cuadro 1.8)

Parámetro labels=

showorigin=

Efecto all es el valor por defecto y provoca que se pongan las etiquetas de los ejes x y y, x/y dibuja la etiqueta para el correspondiente eje y none no dibuja ninguna etiqueta. false/true Con esta opción podemos hacer que aparezca o no el origen de los ejes .

axesstyle=

Por defecto es axes y hace que el eje se dibuje con las dos líneas rectas usuales, frame dibuja un frame o rectángulo y none no dibuja los ejes.

Ox= y Oy=

Determina el número donde comienzan a numerarse los ejes, por defecto es 0. Representa el incremento entre etiquetas, por defecto es 1.

Dx= y Dy= dx= y dy=

determina la distancia entre las marcas (ticks).

Cuadro 1.8: Parámetros de los ejes

Ejemplo:


1.7. Manejo de objetos

38

3 2

f (x)

1

0 1 2 3 4 5 6 7 8 9

\psset{unit=0.8} \begin{pspicture}(0,-3)(5,3) \rput(0.3,-2.1){\psaxes[linewidth=0.04, tickstyle=bottom,dx=0.5cm,dy=1.2cm] {<->}(0,0)(5,0)(0,5)} \psbezier[linewidth=0.04]{<->} (0.0,-1.7)(1.6,-2.9)(1.9,1.7)(4.9,0.2) \rput(5.1,0.71){$f(x)$} \psline[linewidth=0.04cm, linestyle=dashed, dash=0.16cm 0.16cm](3.7,0.5)(3.7,-2.1) \end{pspicture}

El cuadro 1.9 muestra la forma en que se pueden configurar los ticks (lĂ­neas que acompaĂąan a las etiquetas de los ejes). Ejemplo:


1. Gráficos con PSTricks Parámetro

39

Efecto

ticks=

Por defecto es all y sirve para mostrar las lineas que acompañan a los números en los ejes, si queremos que aparesca solo los del eje x o y utilizamos la opción x/y,con none se eliminan de ambos ejes.

tickstyle=

Este parámetro determina la ubicación de las líneas que acompañan a las etiquetas de los ejes. full es el valor por defecto y hace que estas líneas se extiendan por ambos lados de los ejes, botton hace la misma acción al lado donde estan las etiquetas, y top lo hace al lado opuesto.

ticksize=n

Determina la longitud de las marcas, por defecto es 3pt.

Cuadro 1.9: Parámetros de los ticks 3

2

2

1

1

0

−2

-1

-2

−1 −1

1

2

−2

-3 -3

-2

-1

0

1

2

3

4

5

\psset{unit=1.0} \begin{pspicture}(-3,-3.22)(6.0,3.22)\malla \psaxes[linewidth=0.02, arrowlength=1.4]{<->}(0,0)(-3,-3)(3,3) \pscircle[linewidth=0.04,dimen=outer](0,0){2.0} \psline[linewidth=0.04cm]{<->}(-1,3)(3.5,0) \pscircle[linewidth=0.04](3,2){1.0} \end{pspicture}

Ejemplo:

6


1.7. Manejo de objetos

40

4,5 4,0 3,5 3,0 2,5 2,0 1,5 1,0 0,5 0 0

1,5

3,0

4,5

6,0

7,5

9,0

\psset{unit=1.0} \begin{pspicture}(0.5,0.5)(5,5.5) \psaxes[Dx=1.5,Dy=0.5]{->}(10,5) \psplot[linecolor=blue]{0}{10.5} {x 180 mul 1.52 div cos 2 mul 2.5 add} \psplot[linecolor=red]{0}{10.5} {x 180 mul 1.52 div sin 2 mul 2.5 add} \end{pspicture}

El la sección 1.9.1 estudiaremos la función \psplot.

1.7.4.

Grillas

Las grillas o mallas son un complemento ideal para trabajar con los ejes coordenados, inclusive pueden hacer las veces de éste si asi se requiere, su sintáxis es la siguiente: \psgrid[par](x1,y1)(x2,y2) La ejecución del comando anterior produce una malla en el rectángulo con extremos (x1 , y1 ) y (x2 , y2 ), si no ubicamos estas coordenas, \psgrid ubicara una malla en las coordenadas establecidas por \begin{pspicture}(x1,y1)(x2,y2) . El cuadro 1.10 muestra los diferentes parámetros para configurarla:


1. Gráficos con PSTricks Parámetro

41

Efecto

gridwidth= n

Determina el ancho de las líneas principales de la grilla, por defecto es 0.8pt.

subgridwidth= n

Igual al anterior pero con las líneas secundarias

gridcolor= color

Es el color de las líneas principales, por defecto es black. Color de las líneas secundarias, por defecto es gray.

subgridcolor= color gridlabels=n

Tamaño de los números que enmarcan la grilla, por defecto es 10 pt.

gridlabelcolor = color

Color de los números que enmarcan la grilla, por defecto es black.

griddots=n

Las líneas principales son punteadas con n puntos por unidad y n > 0. Igual al anterior pero con la grilla segundaria y n > 0.

sub griddots=n

Cuadro 1.10: Parámetros de \psgrid 3

Ejemplo: 2

2

1

0

1

0

1

2

0 -2

-1

0

1

2

-1

\psset{unit=0.8} \begin{pspicture}(0,-2.8)(8.6,2.8) \rput(0.3,0.4){\psgrid[gridwidth=0.02, subgridwidth=0.01,gridlabels=6.0pt, subgridcolor=blue](0,0)(0,0)(2,2)} \rput(6.76,-1.3) {\psgrid[gridwidth=0.02, subgridwidth=0.01, gridlabels=5.0pt,subgriddiv=8,griddots=1,unit=1.3cm, gridcolor=gray,subgridcolor=black](2,0)(-2,-1)(2,3)}


1.8. Manejo de texto

42 \end{pspicture} {\footnotesize\begin{verbatim}

1.8 Manejo de texto El texto es una parte fundamental en la elaboración de documentos matemáticos, PSTricks posee herramientas para la inclusión de texto científico en nuestros libros o arctículos, ya hemos visto que lo podemos hacer con el comando \rput, sin embargo es posible hacer muchos otros efectos que se pueden utilizar en presentaciones o ecuaciones muy elaboradas.

1.8.1.

El comando \uput

Con este comando podemos ubicar etiquetas en nuestros gráficos, tiene la siguiente sintáxis: \uput{s}[r]{ang}(x,y){objeto} El parámetro s hace que la etiqueta aparezca separada del punto (x, y) una distancia determinada, por defecto es 5pt. La opción r determina el ángulo de la etiqueta. Ejemplo: 4

11

12

1

3

10 2

2

9

3 8

1

4 7

6

5

0 0

1

2

3

4

\psset{unit=1.5} \begin{pspicture}(0,0)(4,4) \malla \pscircle(2,2){2} \uput{2.1cm}[0](2,2){$3$} \uput{2.1cm}[30](2,2){$2$} \uput{2.1cm}[60](2,2){$1$} \uput{2.1cm}[90](2,2){$12$} \uput{2.1cm}[120](2,2){$11$} \uput{2.1cm}[150](2,2){$10$} \uput{2.1cm}[180](2,2){$9$}


1. Gráficos con PSTricks

43 (2.5,2.1)(3,2)(2.5,1.9)(2,2) \pspolygon[fillstyle=solid, fillcolor=lightgray](2,2) (1.5,2.2)(0.9,2.7)(1.5,2.4)(2,2) \qline(2,2)(2.5,0.5) \end{pspicture}

\uput{2.1cm}[210](2,2){$8$} \uput{2.1cm}[240](2,2){$7$} \uput{2.1cm}[270](2,2){$6$} \uput{2.1cm}[300](2,2){$5$} \uput{2.1cm}[330](2,2){$4$} \pspolygon[fillstyle=solid, fillcolor=lightgray](2,2)

1.8.2.

Texto en recuadros

Estos comandos son independientes de PSTricks, así mismo se pueden usar en otros contextos. Su tamaño depende de la cantidad de texto que se les aplique. La sintáxis es la siguiente y es igual para todas: \psframebox[par]{texto} Las opciones par son las que estudiamos en las secciones anteriores y texto es lo que deseamos enmarcar. El ejemplo siguiente mostrará la sintaxis y el resultado obtenido: 4

3

\psframebox

\psdiabox

\psdblframebox

2

\pscirclebox 1

\pstribox

0 0

1

2

3

4

\psovalbox 5

6

7

\psset{unit=1.8} \begin{pspicture}(0,0)(7,4)\malla \rput[tl](0,3.5){\psframebox{$\backslash$psframebox}} \rput[tl](0,2.5){\psdblframebox{$\backslash$psdblframebox}} \rput[tl](0,1.5){\pstribox{$\backslash$pstribox}} \rput[tl](4,3.5){\psdiabox{$\backslash$psdiabox}} \rput[tl](4.5,2.5){\pscirclebox{$\backslash$pscirclebox}}


1.8. Manejo de texto

44

\rput[tl](4.5,.8){\psovalbox{$\backslash$psovalbox}} \end{pspicture}

1.8.2.1.

Sombras

En realidad cualquier figura cerrada de PSTricks puede generar sombra, como los polígonos cerrados, los círculos, las cajas de texto, etc. Para ubicar este efecto sólo se usa el parámetro shadows=true/false, el cual, por defecto es false . Otro parámetro que se usa es el shadowsize=n, el cual cambia el tamaño de la sombra y por defecto es 3pt. shadowangle=ang se usa para ubicar el ángulo de la sombra, por defecto es -45, pero se puede usar entre -360 y 360 grados. Por último está shadowcolor=color el cual se usa para poner color a la sombra que por defecto es darkgray. 2

Λ Ω

1

Φ Π

0 0

1

2

\psset{unit=1.5} \begin{pspicture}(0,0)(2,2) \malla \rput(1,1.5) {\pscirclebox[fillstyle=solid,

1.8.3.

fillcolor=blue, shadow=true] {\white \Huge $\Lambda$}} \rput(1,0.5) {\pscirclebox[fillstyle=solid, fillcolor=red, shadow=true, shadowangle=45] {\white \Huge $\Pi$}} \rput(0.5,1) {\pscirclebox[fillstyle=solid, fillcolor=cyan, shadow=true, shadowcolor=yellow] {\white \Huge $\Omega$}} \rput(1.5,1) {\pscirclebox[fillstyle=solid, fillcolor=magenta, shadow=true, shadowsize=5pt] {\white \Huge $\Phi$}} \end{pspicture}

Texto sobre curvas

Para aplicar este efecto usamos la instrucción: \pstextpath[pos]{curva}{texto}


1. Gráficos con PSTricks

45

El argumento pos puede tomar los siguientes valores: l para ubicar el texto a la izquierda de la curva, [c] para ubicarlo al centro, y por último [r] para ubicarlo a la derecha. Se puede usar cualquier curva de PSTricks (circunferencia, polígonos, rectas, etc), para el parámetro curva. Ejemplo.

para c s e on r il b rsid e v i

oc

0 0

1

er p ar a 2

ib

1

o

on yc

Del Q u i n dí

r es

Un

ad

2

er oc

3

Ser

4

l r se 3

4

\psset{unit=1.5} \begin{pspicture}(0,0)(4,4)\malla \pstextpath[c]{\psarcn[linestyle=none] (2,2){1.7cm}{180}{0}}{\Huge \green \bf Universidad } \rput(2,2){\Huge \green \bf Del} \pstextpath[c]{\psarc[linestyle=none] (2,2){1.7cm}{180}{0}}{\Huge \green \bf Quindío} \pstextpath[c]{\psarcn[linestyle=none] (2,2){3.7cm}{180}{0}}{\Huge \blue \bf Ser libres para conocer} \pstextpath[c]{\psarc[linestyle=none] (2,2){3.7cm}{180}{0}} {\Huge \blue \bf y conocer para ser libres}


1.8. Manejo de texto

46 \end{pspicture}

Ejemplo: 2

1

Es

ta

es

la h

nción s u f in( sa o x) m r e

0 0

1

2

3

4

5

6

\psset{unit=1.8cm} \begin{pspicture}(0,0)(6,2)\malla \pstextpath[c]{\pscurve[linestyle=none] (0,1.5)(1.5,0.5)(4,1.5)(6,0.5)} {\Huge Esta es la hermosa función $\sin (x)$} \end{pspicture}

1.8.4.

Texto con efectos especiales

Como ya hemos visto podemos agregar color, tamaño y forma al texto, ahora con la instrucción pscharpath agregaremos efectos en el contorno del texto: \pscharpath[par]{texto} Ejemplo:

\pscharpath[linestyle=dashed]{ \Huge Universidad del Quindío}

\pscharpath[linestyle=none, fillstyle=gradient] { \Huge Universidad del Quindío}


1. Gráficos con PSTricks

47

1.9 Trazado de curvas

En la sección 1.5.1 trazamos curvas con los comandos pscurve, psecurve, psccurve, sin embargo, podemos tener algunas limitantes dado que la curva resultante no necesariamente es la que debería pasar por los puntos indicados. Para ello, PSTricks diseñó las siguientes funciones especializadas en la interpolación de puntos:

Primero debemos designar la lista de puntos que vamos a dibujar, eso lo hacemos con el comando:

\savedata{\fun}[{x1,y1},...{xn,yn}]

Una vez guardados los puntos procedemos a dibujarlos, eso lo logramos con el siguiente comando:

\dataplot[par]{\fun}

Con la opción \fun le asignamos cualquier nombre a la lista de puntos, siempre que no sea un comando LATEX. La función readdata hace el mismo efecto que savedata, pero ésta lo puede leer de un archivo. Si observamos, la gráfica no es exacta, debido a que sólo usamos 10 puntos, pero si utilizamos 100, nuestro gráfica sería muy exacta pero consumiría más recursos del sistema. Con este comando podemos cargar los puntos desde un archivo y estos pueden ser tomados desde otro programa como el Matematica.

Ejemplo:


1.9. Trazado de curvas

48

f (x) = esin(x)

2

1

0

1

2

3

\psset{unit=1} \begin{pspicture}(0,0)(5,3) \psaxes[linewidth=0.04,dx=1.8cm, dy=1.8cm]{<->}(0,0)(5,0)(0,3) \savedata{\funcion}[{0,1}, {0.36,1.43}, {0.87,2.15}, {1.51,2.71}, {2.26,2.15}, {2.76,1.43}, {3.13,1.0}, {4.06,0.46}, {4.45,0.3}, {5.032,0.38}] \dataplot[linewidth=0.01, plotstyle=curve, linecolor=red]{\funcion} \rput(3.8,2){\large $f(x)=e^{\sin (x)}$} \end{pspicture}

1.9.1.

4

Curvas a partir de su ecuación

Para graficar una curva, lo ideal es tener los puntos a partir de la ecuación, para eso PSTricks implementa la siguiente función: \psplot[op]{x1}{x2}{fun} La cual grafica una curva con el dominio (x1 , x2 ), la función f un debe entrarse en notación sufija de PostScript, la cual mostraremos en el cuadro 1.11. Sin embargo, es necesario tener presente que siempre se debe usar la variable x, las funciones seno y coseno sólo aceptan grados sexagesimales. La función psplot sólo admite computos simples, por lo que no podemos graficar funciones muy complejas. Se debe tener especial


1. Gráficos con PSTricks

49

Sintáxis x neg x y add x y sub x y mul x y div x y exp x sqrt x log x ln x sin x cos

Significado −x x+y x−y x.y x y

xy √ x log10 x ln x sin x cos x

Cuadro 1.11: Principales funciones de PostScript cuidado con las funciones que presenten asíntotas, pues generan un error (división por cero) y debemos sacarlas del dominio. Ejemplo:

4

r f (x) = sin(100x)

3

r f (x) =

x+1 x2 +1

2 1 −4 −3 −2 −1 −1

1

2

3

−2 −3 −4 \psset{unit=0.4} \begin{pspicture}(-5,-5)(8,5)%\malla

4 r

f (x) = ex

r

f (x) =

1 x


1.9. Trazado de curvas

50

\psaxes[linewidth=0.04,dx=0.71cm, dy=0.71cm]{<->}(0,0)(-5,-5)(5,5) \psplot[linewidth=0.03, plotstyle=curve, linecolor=blue]{-5}{5}{x 100 mul sin} \psplot[linewidth=0.03, plotstyle=curve, linecolor=green]{-5}{5}{ x 1 add x 2 exp 1 add div} \psplot[linewidth=0.03, plotstyle=curve, linecolor=magenta]{-5}{1.5}{2.7 x exp} \psplot[linewidth=0.03, plotstyle=curve, linecolor=yellow]{-5}{-0.2}{1 x div} \psplot[linewidth=0.03, plotstyle=curve, linecolor=yellow]{0.2}{5}{1 x div} \psdots[dotstyle=square*, linecolor=blue](4,4) \rput(6.2,4){$f(x)=\sin (100x)$} \psdots[dotstyle=square*, linecolor=green](4,3) \rput(6,3){$f(x)=\frac{x+1}{x^2 + 1}$} \psdots[dotstyle=square*, linecolor=magenta](4,-2) \rput(6,-2){$f(x)=e^x$} \psdots[dotstyle=square*, linecolor=yellow](4,-3) \rput(6,-3){$f(x)=\frac{1}{x}$} \end{pspicture}

1.9.2.

Curvas Paramétricas

El comando parametricplot es muy similar psplot, sólo se requiere dar un dominio y una función paramétrica. \parametrcplot[par]{t1}{t2}{x(t)y(t)} El parámetro par se usa para las opciones de línea que ya hemos usado, (t1 , t2 ) es el dominio de la función y las funciones x(t), y(t) las cuales se deben escribir con la sintaxis de PostScript, una seguida de la otra sin comas ni puntos. (vea el cuadro 1.11). Veamos los siguientes ejemplos:


1. Gr谩ficos con PSTricks

51

3

2

1

0

-1

-2

-3 -3

-2

-1

0

1

2

3

\psset{unit=2} \begin{pspicture}(-3,-3)(3,3)\malla \rput(1.5,1.5){\parametricplot[linewidth=0.1, plotpoints=300]{0}{360}{2 t mul sin t cos mul 2 t mul sin t sin mul}} \rput(-2.5,1.5){\parametricplot[linewidth=0.1, plotpoints=300]{0}{360}{0.5 1.5 t cos mul add t cos mul 0.5 1.5 t cos mul add t sin mul}} \rput(-1.5,-2){\parametricplot[linewidth=0.1, plotpoints=300]{0}{360}{0.5 1.5 t cos mul add t sin mul 0.5 1.5 t cos mul add t cos mul}} \rput(1.5,-1.5){\parametricplot[linewidth=0.1, plotpoints=300]{0}{360}{1.5 t sin mul 1.5 t cos mul}} \end{pspicture}

1.9.3.

Regiones sombreadas

Para implementar sombreado de regiones entre curvas, PSTricks dispone de la funci贸n pscuston la cual nos permite dibujar una textura entre dos curvas, que pueden ser psline, pscurve o psecurve, en realidad se puede hacer sobre cualquier tipo de curva, teniendo cuidado puesto


1.9. Trazado de curvas

52

que se pueden producir graves mensajes de error. Veamos la sintaxis: \pscuston[par]{curvas \fill[op]} La funci贸n rellena la regi贸n limitada por las curvas con las opciones 5 de llenado implementadas en fill[par].veamos un ejemplo: 4 3 2 1 0 0

1

2

3

4

5

\psset{unit=0.8}

6

\begin{pspicture}(0,0)(6,5) \pscustom[linestyle=none] {\pscurve(0,0)(2,3) (3,3.5)(4,3)(6,0) \fill[fillstyle=solid, fillcolor=lightgray]} \psaxes(6,4) \pscurve(0,0)(2,3) (3,3.5)(4,3)(6,0) \end{pspicture}

Veamos un ejemplo de relleno entre dos curvas:

6 5 4 3 2 1 0 0

1

2

3

4

5

\begin{pspicture}(0,0)(6,7) \pscustom[linestyle=none]{ \psline(1,0.1)(1,1.5) \pscurve(1,1.5)(2,2.5)(3,4)(4,6) \psline(4,6)(4,0.5) \psline(4,0.5)(0,0) \fill[fillstyle=vlines ]} \psaxes{->}(6,7) \pscurve(0,1)(1,1.5)(2,2.5) (3,4)(4,6)(4.5,6.5) \psline(4,0.5)(0,0) \psline(4,0.5)(5,0.65) \psline[linestyle=dashed] (1,0.1)(1,1.5) \psline[linestyle=dashed] (4,0.5)(4,6) \end{pspicture}

\psset{unit=0.6}

En el ejemplo anterior podemos observar los siguientes detalles:


1. Gráficos con PSTricks

53

• En primer lugar, los puntos de las curvas deben seguir una secuencia, en este caso primero se ubica la línea recta vertical \psline(1,0.1)(1,1.5), luego aparece la curva (que es la más importante); \pscurve(1,1.5)(2,2.5)(3,4)(4,6), posteriormente la otra recta vertical; \psline(4,6)(4,0.5) y por último la recta \psline(4,0.5)(0,0), que hace las veces de curva inferior, que en otros casos puede ser otra curva o el mismo eje x; • Luego de dibujar la región sombreada, podemos redibujar las curvas e inclusive agregarles más detalles, como por ejemplo hacerlas más largas o asignarles etiquetas. Ejemplo: 6 5 4 3 2 −4 −3 −2 −1 0

1

2

3

4

\psset{unit=0.6} \begin{pspicture}(-4,0)(4,5) \pscustom[linestyle=none]{ \psline(-3,1)(-3,3) \pscurve(-3,3)(-2,1.5)(-1,2)(0,4)(1,2)(2,1.5)(3,3) \psline(3,3)(3,1) \pscurve(3,1)(2,0.5)(1,0.8)(0,0)(-1,0.8)(-2,0.5)(-3,1) \fill[fillstyle=solid, fillcolor=lightgray]} \psaxes[linewidth=0.04,Oy=1](0,0)(-4,0)(4,5) \psline[linestyle=dashed](-3,0)(-3,3) \psline[linestyle=dashed](3,3)(3,0) \pscurve(-3,3)(-2,1.5)(-1,2)(0,4)(1,2)(2,1.5)(3,3) \pscurve(3,1)(2,0.5)(1,0.8)(0,0)(-1,0.8)(-2,0.5)(-3,1) \end{pspicture}


1.10. Herramientas para árboles, grafos y diagramas

54

1.10 Herramientas para árboles, grafos y diagramas PSTricks ofrece una variada gama de herramientas para crear gráficos tipo árboles y diagramas. Para realizar este tipo de gráficos se han dividido los comandos en 3 tipos; Nodos, Conectores y Etiquetas.

1.10.1.

Nodos

En el cuadro 1.12 observaremos los distintos tipos de nodos: Nodo

Descripción

\pnode(x,y){nom}

Con él ubicamos en la coordenada (x, y) un nodo y le asignamos un nombre con nom

\dotnode[op](x,y){nom}

Este nodo es similar al anterior, pero el nodo aparece con forma de punto y se le asigna un nombre con nom . Además que se puede agregar opciones de puntos como las vistas en la cuadro 1.2 En este caso, el nodo es de forma circular con un radio r.

\cnode[op](x,y){r}{nom} \Cnode[op](x,y){nom}

Es similar al anterior, pero el radio se establece de antemano con el parámetro \psset{radius=...}.

\rnode{nom}{texto}

En este caso se dibuja un borde rectangular invisible, y se tiene la posibilidad de agregar texto, que puede ser en modo normal o modo matemático. Este comando no tiene el característico punto (x, y), así que debemos usar el comando \rput para ubicarlo.

Cuadro 1.12: Nodos de PSTricks La tabla 1.13 muestra otros tipos de nodos similares a rnode con formas geométricas:

1.10.2.

Conectores

A continuacion mostraremos los diferentes tipos de conectores con su respectivo ejemplo, tanto del nodo como de su conector:


1. Gráficos con PSTricks

55

Nodo

Descripción

\trinode[op]{nom}{texto}

Nodo en forma triangular.

\ovalnode[op]{nom}{texto}

Nodo en forma ovalada.

\dianode[op]{nom}{texto}

Nodo en forma de rombo.

\circlenode[op]{nom}{texto}

Nodo en forma circular.

Cuadro 1.13: Nodos tipo \rnode de PSTricks Conectores \ncline. La estructura básica de un conector es la siguiente: \ncline[par]{flechas}{n1}{n2} Con los parámetros par podemos cambiar la forma del conector (líneas punteadas, guiones, etc), el segundo parámetro es el tipo de flechas y los dos últimos son el nombre de los conectores, en este caso el conector va de n1 a n2. 5 4

Pt

3 2

a1

1

a2

0 0

1

2

3

4

5

6

\psset{unit=0.5} \begin{pspicture}(0,0)(6,4) \malla \rput(3,3){\circlenode{P1}{$P_t$}} \rput(1,1){\circlenode{a1}{$a_1$}} \rput(5,1){\circlenode{a2}{$a_2$}} \ncline{->}{P1}{a1} \ncline{<-}{P1}{a2} \ncline{<->}{a1}{a2} \end{pspicture}

Conectores \ncarc. Es similar al anterior, pero los nodos se unen por medio de arcos. El usuario debe tener en cuenta que los arcos se construyen como un parámetro arcangle, el cual determina el ángulo entre arco y la línea recta que une los nodos, su valor por defecto es 8 grados sexagesimales.


1.10. Herramientas para árboles, grafos y diagramas

56 5 4

Pt a2

3 2 1

a1

0 0

1

2

3

4

5

6

\begin{pspicture}(0,0)(6,5)\malla \rput(1,4){\circlenode{P1}{$P_t$}} \rput(1,1){\trinode{a1}{$a_1$}} \rput(5,3){\ovalnode{a2}{$a_2$}} \ncarc[arcangle=250]{<->}{P1}{a1} \ncarc{<-}{P1}{a2} \ncarc{<->}{a1}{a2} \end{pspicture}

\psset{unit=0.6}

Conectores \ncdiag. En este caso se une los nodos con un segmento diagonal, además se pueden usar las opciones \armA,\armB, con los cuales se puede cambiar la longitud del brazo de salida y de llegada, que por defecto es 10pt. \angleA,\angleB, son los ángulos de llegada y salida del conector y su valor por defecto es 0. Igualmente, podemos usar la opción linearc que se utiliza para vértices redondeados. 5 4

a2

Pt

3 2

a1

1 0 0

1

2

3

4

5

6

\psset{unit=0.6} \begin{pspicture}(0,0)(6,5)

\malla \rput(2,4){\dianode{P1}{$P_t$}} \rput(2,1){\dianode{a1}{$a_1$}} \rput(5,4){\dianode{a2}{$a_2$}} \ncdiag[armA=15pt, armB=15pt, angleA=45,angleB=90]{<->}{P1}{a2} \ncdiag[angleA=270,angleB=270] {<->}{a2}{P1} \ncdiag[angleA=180,angleB=180, linearc=10pt]{<->}{a1}{P1} \end{pspicture}

Conectores \ncdiagg. Es igual al anterior, pero sin el brazo para el segundo nodo. 5 4

a2

Pt

3 2

a1

1 0 0

1

2

3

4

\psset{unit=0.6}

5

6

\begin{pspicture}(0,0)(6,5)\malla \rput(1,4){\dianode{P1}{$P_t$}} \rput(3,1){\dianode{a1}{$a_1$}} \rput(5,4){\dianode{a2}{$a_2$}} \ncdiagg[angleA=0,angleB=90]{->} {P1}{a2} \ncdiagg[angleA=180,angleB=180, linearc=10pt]{->}{a1}{P1} \end{pspicture}


1. Gráficos con PSTricks

57

Conectores \nccurve. Este conector traza curvas en forma de Bézier, se debe tener cuidado en la posición de los nodos, pues si están ubicados muy cerca, la curva parecerá una recta. 5 4

Pt a2

3 2 1

a1

0 0

1

2

3

4

5

6

\begin{pspicture}(0,0)(6,5)\malla \rput(2,4){\dianode{P1}{$P_t$}} \rput(1,1){\trinode{a1}{$a_1$}} \rput(6,3){\ovalnode{a2}{$a_2$}} \nccurve[angleA=45,angleB=90] {<->}{P1}{a2} \nccurve[angleA=270,angleB=270] {<->}{a2}{P1} \nccurve[angleA=180,angleB=180] {<->}{a1}{P1} \end{pspicture}

\psset{unit=0.6}

Conectores \ncbar. Este conector tiene la particularidad de que forma ángulos rectos entre los conectores y los nodos, si es necesario se extienden los brazos de los conectores, además el ángulo de llegada y el de salida son el mismo y se controlan con el parámetro angleA. 5 4

Pt a2

3 2 1

a1

0 0

1

2

3

4

5

6

\psset{unit=0.6} \begin{pspicture}(0,0)(6,5)\malla \rput(2,4){\dianode{P1}{$P_t$}} \rput(5,1){\trinode{a1}{$a_1$}} \rput(6,3){\ovalnode{a2}{$a_2$}} \ncbar[angleA=90]{<->}{P1}{a2} \ncbar[angleA=270]{<->}{a2}{P1} \ncbar[angleA=180]{<->}{a1}{P1} \end{pspicture}

Conectores \ncangle. Es similar al anterior, pero los conectores se unen por medio de ángulos rectos únicamente. Para controlar la forma, se usan los parámetros armA,armB,angleA,angleB y linearc.


1.10. Herramientas para árboles, grafos y diagramas

58 5 4

Pt

3

a2

2

a1

1 0 0

1

2

3

4

5

6

\psset{unit=0.6} \begin{pspicture}(0,0)(6,5)\malla

\rput(3,4){\dianode{P1}{$P_t$}} \rput(5,1){\dianode{a1}{$a_1$}} \rput(1,2){\dianode{a2}{$a_2$}} \ncangle[angleA=180, angleB=180] {->}{P1}{a2} \ncangle[angleA=270, angleB=270] {<->}{a2}{a1} \ncangle[angleA=0, angleB=270] {<->}{a2}{P1} \ncangle[angleA=90, angleB=0] {<->}{a1}{P1} \end{pspicture}

Conectores \ncangles. Tiene el mismo efecto que \ncangle , pero usa un segmento adicional para unir los nodos. 3

\begin{pspicture}(0,0)(4,3)\malla \rput(1,1){\dianode{a1}{$a_1$}} \rput(3,2){\dianode{a2}{$a_2$}} \ncangles[angleA=180, angleB=180]{->}{a1}{a2} \ncangles[angleA=90, angleB=0]{<->}{a2}{a1} \end{pspicture}

a2

2

a1

1

0 0

1

2

3

4

\psset{unit=0.6}

Conectores \ncloop. Este conector es útil para hacer loops en grafos, se puede cambiar el parámetro loopsize que por omisión es 1cm. Para este tipo de gráfico es mejor usar nccircle. 5 4

Pt

3

a2

2

a1

1 0 0

1

2

3

4

5

6

\psset{unit=0.6} \begin{pspicture}(0,0)(6,5)\malla \rput(3,4){\ovalnode{P1}{$P_t$}} \rput(5,1){\ovalnode{a1}{$a_1$}} \rput(1,2){\ovalnode{a2}{$a_2$}} \ncloop[angleA=0, angleB=45, loopsize=1cm, linearc=0.1]{->}{a1}{a1} \ncloop[angleA=90, angleB=0, linearc=0.1]{->}{P1}{P1}


1. Gráficos con PSTricks \nccurve[angleA=270, angleB=270]{<->}{a2}{a1} \nccurve[angleA=0, angleB=270]{<->}{a2}{P1}

59 \nccurve[angleA=90, angleB=0]{<->}{a1}{P1} \end{pspicture}

Conectores \nccircle. Además de la sintaxis normal de los conectores, en el caso de \nccircle se debe adicionar un parámetro más que corresponde al radio del loop. La separación entre el arco y el borde del nodo se puede determinar por el parámetro nodesepA. 5 4

Pt

3

a2

2

a1

1 0 0

1

2

3

4

5

6

\psset{unit=0.6} \begin{pspicture}(0,0)(6,5) \malla \rput(3,4){\ovalnode{P1}{$P_t$}} \rput(5,1){\ovalnode{a1}{$a_1$}}

1.10.3.

\rput(1,2){\ovalnode{a2}{$a_2$}} \nccircle[angleA=200, nodesepA=0pt ]{->}{a1}{0.4cm} \nccircle[angleA=90, nodesepA=0pt ]{->}{a2}{0.5cm} \nccircle[angleA=10, nodesepA=0pt ]{->}{P1}{0.5cm} \nccurve[angleA=0, angleB=180]{<->}{a2}{a1} \nccurve[angleA=90, angleB=270]{<->}{a2}{P1} \nccurve[angleA=90, angleB=270]{<->}{a1}{P1} \end{pspicture}

Etiquetas

Las etiquetas se le asignan a los conectores de los diagramas, deben ubicarse después de construir el conector, y se asume que el conector va de izquierda a derecha. La tabla 1.14 muestra otros tipos de nodos similares a rnode con formas geométricas: Aquí mostraremos los tipos de etiquetas y los parámetros opcionales como nrot . En el siguiente ejemplo ubicamos etiquetas con el parámetro \npos, que es un número entre 0 y 1 y determina donde aparece la etiqueta. El comando * provoca que la etiqueta borre los objetos que están debajo de ella, en caso contrario, la etiqueta será transparente.


1.10. Herramientas para árboles, grafos y diagramas

60

Etiqueta

Descripción

\ncput[op]{etiqueta}

La etiqueta va sobre la línea del conector.

\naput[op]{etiqueta}

La etiqueta va encima del conector.

\nbput[op]{etiqueta}

La etiqueta va debajo del conector.

\tvput[op]{etiqueta}

La etiqueta va en la misma linea del conector. Se usa en conectores verticales.

\tlput[op]{etiqueta}

Igual a la anterior solo que la etiqueta se ubica a la izquierda del conector.

\tlput[op]{etiqueta}

En este caso la etiqueta se ubica a la derecha del conector.

Cuadro 1.14: Etiquetas para conectores en PSTricks 5 4

a2

β2

3

α1

Pt

2

γ3 a1

1 0 0

1

2

3

4

5

6

\begin{multicols}{2} \psset{unit=0.6} \begin{pspicture}(0,0)(6,5)

\malla \rput(1,2.5){\ovalnode{P1} {$P_t$}}\rput(5,1){\ovalnode{a1} {$a_1$}}\rput(5,4) {\ovalnode{a2}{$a_2$}} \nccurve[angleA=0, angleB=0]{<->} {a2}{a1}\ncput*{$\alpha_1$} \nccurve[angleA=90, angleB=0] {<->}{a2}{P1} \ncput*[npos=0.5]{$\beta_2$} \nccurve[angleA=270, angleB=0] {<->}{a1}{P1} \ncput*[npos=0.7]{$\gamma_3$} \end{pspicture}

En el siguiente ejemplo se usará la etiqueta \naput y \nbput con el parámetro labelsep, la cual nos determina la separación entre el conector y la etiqueta, por defecto es 0.5pt. 5 4

Pt

3

a1

2

ξ

λ

a2

1 0 0

1

2

3

4

5

6

\psset{unit=0.6} \begin{pspicture}(0,0)(6,5) \malla \rput(3.5,4){\dianode{P1}{$P_t$}} \rput(1,2){\dianode{a1}{$a_1$}} \rput(4,2){\dianode{a2}{$a_2$}} \ncbar[angleA=0, angleB=180] {->}{P1}{a2}


1. Gráficos con PSTricks \naput[labelsep=0.3pt]{$\xi$} \ncbar[angleA=90]{->} {a1}{a2}\nbput{$\lambda$}

61 \end{pspicture}

Para el siguiente caso, usaremos la etiqueta \tvput con el parámetro nrot, el cual determina la rotación de la misma con un ángulo entre -360 y 360 grados sexagesimales, por defecto dicho parámetro es cero. 5

a2

4

to rec r o inc

3 2

ξ

a1

1

Pt

0 0

1

2

3

4

5

6

\psset{unit=0.6} \begin{pspicture}(0,0)(6,5) \malla \rput(5,1){\ovalnode{P1}{$P_t$}} \rput(1,1){\ovalnode{a1}{$a_1$}} \rput(5,4){\ovalnode{a2}{$a_2$}} \ncline{->}{P1}{a2}\tvput{$\xi$} \ncline{->}{a1}{a2} \naput*[nrot=35]{incorrecto } \end{pspicture}

Ahora veremos las etiquetas \tlput, \trput. 5 4

ξ

P1

P2

3 2

ψ

ϕ a1

1

a2

0 0

1

2

3

4

5

6

\psset{unit=0.6} \begin{pspicture}(0,0)(6,5) \malla \rput(1,4)

1.10.4.

{\dianode{P1}{$P_1$}} \rput(1,1) {\ovalnode{a1}{$a_1$}} \rput(5,1) {\ovalnode{a2}{$a_2$}} \rput(5,4) {\dianode{P2}{$P_2$}} \ncline{->} {P1}{P2}\ncput*{$\xi$} \ncline{->} {P1}{a1}\tlput{$\psi$} \ncline{->} {P2}{a2}\trput{$\varphi$} \end{pspicture}

Árboles

La sintaxis de un árbol es la siguiente: \pstree[par]{raiz}{ramas}


1.10. Herramientas para árboles, grafos y diagramas

62

Para implementar un gráfico de árbol debemos tener en cuenta la ubicación de la raíz y las ramas, además la forma de ubicar los conectores. El cuadro 1.15 ilustrará los tipos de nodos. Nodo

Descripción

\Tp[op] \Tdot[op]

Nodo invisible. Nodo en forma de punto.

\Tf[op]

Nodo en forma de cuadro.

\Tfan[op]

Nono invisible conectado a su nodo predecesor por una figura triangular.

\Tc[op]{r} \TC[op]

Nodo circular con radio r. Igual al anterior pero el radio se establece por defecto con el parámetro radius en el psset{...}. Por omisión es 2.5mm

\Tr[op]{texto}

Nodo rectangular invisible con texto.

\Tcircle[op]{texto}

Nodo circular con texto.

\Toval[op]{texto}

Nodo ovalado con texto.

\Ttri[op]{texto}

Nodo triangular con texto.

\Tdia[op]{texto}

Nodo en forma de rombo con texto.

\Tn[op]{texto}

Nodo con texto pero conectado a su predecesor por una línea invisible. Sólo se puede usar en las hojas del árbol no en su raíz.

Cuadro 1.15: Nodos para los árboles en PSTricks Para el manejo de árboles, se debe tener especial cuidado con la ubicacion de hojas y subarboles. Al implementarlos, nos damos cuenta que es fácil caer en erorres por la ubicacón incorrecta de los nodos. 6

\psset{unit=0.6} \begin{pspicture}(0,0)(6,6) \rput[tl](1.5,5.5) {\pstree{\TC}{\Tdia{$h$} \Tdot \pstree{\TC}{\Tc{1mm} \Ttri{} }} }

5

4

3

b

h

2

1

0 0

1

2

3

4

5

6


1. Gráficos con PSTricks

63

Además de los tipos de nodos, podemos controlar la forma en que se crea el árbol, por ejemplo, si queremos que nuestro árbol sea de derecha a izquierda o de abajo hacia arriba, etc, sólo cambiamos las opciones que se muestran en el cuadro 1.16. Nodo

Descripción

treemode=

Determina la dirección del árbol, Dconstruye el árbol hacia abajo, U lo construye hacia arriba, R y L derecha e izquierda. Determina el tipo de conector (\ncline, \ncarc,etc ) .

edge= nodesep=

Es la distancia entre el nodo y el conector, por defecto es 0pt.

levelsep=

Determina la distancia entre los niveles de un árbol, por defecto es 2cm.

treesep=

Me indica la distancia entre los descendientes de un mismo nodo, por defecto es 0.75cm.

Cuadro 1.16: Parámetros para el trazado de árboles

C R Q Z N

I

\psset{unit=0.6} \begin{pspicture}(0,0)(6,6) \rput[tl](1.5,5.5) {\pstree[levelsep=1cm, arrows=->]{\Tcircle{$\mathbb{C}$}} { \pstree{\Tcircle{$\mathbb{R}$}} {\pstree{\Tcircle{$\mathbb{Q}$}} {\pstree{\Tcircle{$\mathbb{Z}$}} {\Tcircle{$\mathbb{N}$} } } \Tcircle{$\mathbb{I}$}} }} \end{pspicture}

En este caso mostraremos que una gráfica hecha con PSTricks se puede poner en el entorno figure como si fuésemos a cargar un archivo gráfico. Para el caso el árbol genealógico de los hijos de Borin.1 . 1

J.R.R. Tolkien, Apéndices del Señor de los Anillos. Ediciones Minotauro. 2001


64

1.10. Herramientas para árboles, grafos y diagramas

Balin

Fundin I

Dawlin

Borin

Farin

Óin

Gróin

Glóin

Gimli

Figura 1.1: Genealogía de los hijos de Borin


1. Gráficos con PSTricks \begin{figure}[htbp] \centering \psset{unit=1.2} \begin{pspicture}(0,-6)(13,6) \rput[tl](0.5,5.5){\pstree[edge=\nccurve, angleB=180, treemode=R,treesep=2.5cm, arrows=->] { \Toval{\scriptsize Borin} }{ \pstree{\Toval{\scriptsize Farin} } {\pstree{\Toval{\scriptsize Fundin I}} {\Toval{\scriptsize Balin} \Toval{\scriptsize Dawlin} \pstree{\Toval{\scriptsize Gróin}}{\Toval{\scriptsize Óin} \pstree{ \Toval{\scriptsize Glóin}}{\Toval{\scriptsize Gimli}}}}}} \end{pspicture} \caption{Genealogía de los hijos de Borin } \label{hijosborin} \end{figure}

1.10.4.1.

65

}

Etiquetas para los nodos de los árboles

Las etiquetas de los conectores del árbol se ubican exactamente después del comando de cada nodo, su sintaxis es muy simple ~{etiqueta}. El parámetro tnpos= posiciona la etiqueta con relación al nodo. b es abajo (por defecto es b), a arriba y r y l son derecha e izquierda. Con tnsep= podemos cambiar la distancia entre el nodo y la etiqueta, por defecto es 5pt. Las etiquetas para los conectores se colocan inmediatamente después del primer nodo, con el comando naput, es decir, si tenemos dos nodos A y B, se ubicará después del nodo A. Ejemplo:2

2

J.R.R. Tolkien, El Silmarrillion. Ediciones Minotauro. 2001


1.11. Manejo de objetos 3D con PSTricks

66

Vanyar Los hermosos

Calaquedi m aA ron Fue

Elfos

No

fuer

Eldar

án

on aA m

Noldor Los Sabios

án

Avari Moriquendi

Telerin Los Elfos del mar

\psset{unit=0.6} \begin{pspicture}(0,-6)(13,6) \pstree[treemode=R,levelsep=3.8cm,treesep=2.5,arrows=->] {\Toval{\scriptsize Elfos}}{ \pstree{\Toval[tnpos=a]{\scriptsize Eldar} ~{ \textit{ \scriptsize Calaquedi}}\naput[nrot=:U] {\tiny Fueron a Amán} }{\Toval[tnpos=b] {\scriptsize Vanyar}~{ \textit{ \scriptsize Los hermosos}} \Toval[tnpos=b]{\scriptsize Noldor} ~{ \textit{ \scriptsize Los Sabios}} \Toval[tnpos=b]{\scriptsize Telerin} ~{\textit{ \scriptsize Los Elfos del mar}}} \Toval[tnpos=b]{\scriptsize Avari}~{ \textit{ \scriptsize Moriquendi}}\naput[nrot=:U]{\tiny No fueron a Amán}} \end{pspicture}

1.11 Manejo de objetos 3D con PSTricks PSTricks ofrece toda una librería para dibujar objetos tridimensionales como esferas, planos, vectores, superficies, etc. Para el manejo de esta


1. Gráficos con PSTricks

67

librería es necesario que el usuario esté familiarizado con los conceptos de Cálculo Multivariado, es decir, con la ubicación de puntos en el espacio, manejo de ecuaciones en R3 y otros conceptos.

1.11.1.

El paquete pst-3dplot

Con este paquete, podemos usar los comandos necesarios para dibujar los objetos 3D, además, se pueden incluir otros objetos matemáticos como ecuaciones y objetos 2D. Si usted no tiene este paquete, lo pude conseguir en la siguiente direccción: http://ctan.org/tex-archive/ graphics/pstricks/contrib/pst-3dplot/

1.11.2.

El eje cordenado 3D

El eje coordenado de la librería es el mismo que podemos encontrar en cualquier libro de Cálculo, con el eje z perpendicular al eje y y al z eje x:

x

y

Sin embargo, para acceder a este espacio necesitamos un punto de referencia o punto de visión, imaginemos que estamos parados junto al eje coordenado; estando allí podemos dar la vuelta, subir y bajar


1.11. Manejo de objetos 3D con PSTricks

68

la mirada, levantar el eje coordenado para observar los objetos desde abajo, en fin, necesitamos mover la vista para visualizar mejor los objetos que vamos a dibujar. Para resolver el problema, PSTricks toma como punto de partida 2 ángulos especiales α y β. El ángulo α representa la rotación horizontal con valores positivos en sentido antihorario. El ángulo β controla la rotación vertical u ortogonal del plano. Por defecto, los ángulos son α = 45 y β = 45, si queremos cambiar el punto de vista del plano, cambiamos los parámetros en el psset{...}.veamos el ejemplo: z z

z x y

x

y

y x

\psset{unit=1.0} \begin{pspicture}(0,-1)(13,5) \rput(3,2){\pstThreeDCoor[Alpha=45, Beta=45, linecolor=red,xMax=3,yMax=3,zMax=3]} \rput(8,2){\pstThreeDCoor[Alpha=-60, Beta=10, linecolor=green,xMax=4,yMax=3,zMax=3]} \rput(11,2){\pstThreeDCoor[Alpha=45, Beta=50, linecolor=blue,xMax=4,yMax=3,zMax=3]} \end{pspicture}

En en ejemplo anterior, podemos ver que se pueden cambiar algunos parámetros, entre ellos esta xMin, xMax, yMin, yMax, zMin, zMax, los cuales determinan los límites de los ejes con *Min le damos el límite inferior y con *Max configuramos el límite superior. También podemos cambiar el ancho de las líneas o su forma. Debemos tener en cuenta donde ubicamos los parámetros Alpha y Beta, si lo hacemos en el \psset todos los objetos rotarán al unísono con el eje, si lo hacemos en los parámetros de \pstThreeDCoor, sólo los ejes rotarán, los demás


1. Gráficos con PSTricks

69

objetos no.

1.11.3.

Ubicación de objetos con \pstThreeDPut

Este comando es muy similar a rput de la versión 2D, a continuación la sintaxis: \pstThreeDPut[par](x,y,z){obj} Esta orden ubica en la posición (x, y, z) el objeto obj con diferentes opciones, las cuales mostraremos en los diferentes ejemplos. z ξ1

̟2

y

x ζ1

\psset{unit=1.0} \begin{pspicture}(-6,-3)(6,3) \pstThreeDCoor[linecolor=red,xMax=4,yMax=4,zMax=3] \pstThreeDPut(1,2,3){$\varpi_2$} \pstThreeDPut(2,0,3){$\xi_1$} \pstThreeDPut(3,3,0){$\zeta_1$} \end{pspicture}

1.11.4.

Puntos

Como ya es sabido, los puntos son de los objetos matemáticos más usados, PSTricks3D implementa la siguiente función: \pstThreeDDot[par](x,y,z) El comando ubica un punto con coordenadas (x, y, z) con las opciones de colores que ya hemos visto, además del parámetro drawCoor que


1.11. Manejo de objetos 3D con PSTricks

70

puede ser false\true , lo cual provoca que se dibujen las líneas paralelas a los ejes. Veamos un ejemplo: z b

b

y x

b

\psset{unit=1.0, Alpha=80} \begin{pspicture}(-6,-3)(6,3) \pstThreeDCoor[linecolor=red,xMax=4,yMax=4,zMax=3] \pstThreeDDot[drawCoor=true](1,1,2) \pstThreeDDot[drawCoor=true](0,-2,1) \pstThreeDDot[drawCoor=true](4,2,-0.5) \end{pspicture}

1.11.5.

Líneas rectas

La sintaxis para una línea en el espacio tridimensional es la siguiente: \pstThreeDLine[par](x1,y1,z1)(x2,y2,z2) La cual dibuja una recta del punto (x1 , y1 , z1 ) al punto (x2 , y2 , z2 ), las opciones son las típicas que hemos visto en la versión 2D. Ejemplo:


1. Gráficos con PSTricks z

~v1

x

71

~v3 ~v2

y

\psset{unit=1.0, Alpha=45, Beta=45} \begin{pspicture}(-6,-3)(6,3) \pstThreeDCoor[xMax=4,yMax=4,zMax=3] \pstThreeDLine[linewidth=2pt, linecolor=blue, arrows=->](0,0,0)(1,2,5) \pstThreeDLine[linewidth=2pt, linecolor=blue, arrows=->](0,0,0)(-3,2,0) \pstThreeDLine[linewidth=2pt, linecolor=blue, arrows=->](0,0,0)(4,0,3) \rput(-2,0.5){$\vec{v}_1$} \rput(1.5,0.5){$\vec{v}_2$} \rput(1,2){$\vec{v}_3$} \end{pspicture}

Como podemos observar, hemos usado el comando rput, en lugar de la versión 3D, si usted no conoce la ubicación de los puntos en 3D, lo puede hacer con la versión 2D sin ningún problema.

1.11.6.

Triángulos

Para dibujar triángulos, PSTricks3D implementa el siguiente comando: \pstThreeDTriangle[par](P1)(P2)(P3) El parámetro drawCoor que puede ser false\true dibuja las rectas paralelas a los ejes, fillstyle debe estar en solid para que el triángulo sea llenado, de lo contrario, se dibujará transparente. El color se escoje con fillcolor . Los parámetros P1,P2,P3 son los puntos de los vértices del triángulo.


1.11. Manejo de objetos 3D con PSTricks

72

z b

b b

b

b

x

b

y

\psset{unit=1.0, Alpha=45, Beta=45} \begin{pspicture}(-6,-3)(6,3) \pstThreeDCoor[xMax=4,yMax=4,zMax=3] \pstThreeDTriangle[linewidth=1pt](3,-1,5)(1,1,5)(1,2,5) \pstThreeDTriangle[drawCoor=true,linecolor=blue, linewidth=1pt, fillstyle=solid, fillcolor=yellow] (3,1,2)(1,4,2)(0,2,2) \pstThreeDTriangle[drawCoor=true,linecolor=red, linewidth=1pt, fillstyle=solid, fillcolor=green] (3,0,4)(1,0,1)(0,0,2) \end{pspicture}

1.11.7.

Cuadros y rectĂĄngulos

La sintaxis es la siguiente: \pstThreeDSquare[Op](v1)(v2)(v3) En este caso, se dibuja un cubo o paralelepĂ­pedo imaginario, luego aparecen los vectores ~v1 , ~v2 y ~v3 . El primer vector determina el punto de origen del cuadro, los otros dos determinan el ancho y largo del cuadro. Estos vectores en realidad son los puntos finales de los vectores. Ejemplo:


1. Grรกficos con PSTricks

73 z

x

y

\psset{unit=1.0, Alpha=45, Beta=15} \begin{pspicture}(-6,-3)(6,3) \pstThreeDCoor[xMax=4,yMax=4,zMax=3] \pstThreeDSquare[fillcolor=blue,fillstyle=solid, drawCoor=true,dotstyle=*](1,1,3)(0,3,0)(1,0,0) \pstThreeDSquare[fillcolor=green,fillstyle=solid, drawCoor=true,dotstyle=*](1,1,1)(4,0,0)(0,5,0) \end{pspicture}

1.11.8.

Cajas

Una caja es un caso especial de los Cuadros de la secciรณn anterior, la sintaxis es la siguiente: \pstThreeDBox[par](v1)(v2)(v3)(v4) El primer punto (punto final de un vector) es el punto de inicio de nuestra caja, los demรกs vectores determinan el ancho, el alto y la profundidad. Ejemplo:


1.11. Manejo de objetos 3D con PSTricks

74

z

y

x

\psset{unit=1.0, Alpha=45, Beta=15} \begin{pspicture}(-6,-3)(6,3) \pstThreeDCoor[xMax=4,yMax=4,zMax=3] \pstThreeDBox[fillcolor=yellow, fillstyle=solid](0,0,0)(3,0,0)(0,3,0)(0,0,1) \end{pspicture}

1.11.9.

Circunferencias y elipses

En el siguiente gráfico podemos observar los componentes de una elipse:

a F1

b

b e e

a r1

a b

F2

r2

Ahora bien, lo que tenemos es: dos focos F1 y F2 , los diámetros a y b y además la exentricidad determinada por e. (x − x0 )2 (y − y0 )2 + =1 a2 b2

(1.1)


1. Gráficos con PSTricks

75

La ecuación 1.1 es la fórmula generalizada de una elipse con centro en (x0 , y0 ), eje mayor a y eje menor b, (también llamados radios de la elipse).La exentricidad e determina que tan alargada o deforme es la elipse y debe ser 0 < e ≤ 1, si e = 1 la elipse se convierte en una circunferencia. La información anterior es de vital importancia si necesitamos dibujar elipses o circunferencias.

Además, de esta información, podemos cambiar algunos parámetros de la elipse como el arco, permitiendo dibujar parte de la elipse o circunferencia, esto lo logramos cambiando los parámetros que controlan el ángulo de inicio y el terminal; beginAngle que por defecto es 0 y endAngle que es 360, éstos valores indican que se dibujará toda la elipse.

Recuerde que como estamos en el espacio tridimensional, es muy común que veamos una circunferencia como una elipse o viceversa, es recomendable que se ajusten los parámetros de visión (Alpha y Beta) para que ésta distorsión no cause malos entendidos.

la elipse entonces tiene la siguiente sintáxis:

\pstThreeDEllipse[OP](cx,cy,cz)(ux,uy,uz)(vx,vy,vz)

El primer punto (cx, cy, cz) es el extremo de un vector ~c, este punto será el centro de nuestra elipse, en la ecuacion 1.1 serían (x0 , y0 ). El punto (ux, uy, uz) y (vx, vy, vz) son los extremos de los vectores que me indicarán los valores de a y b.

Ejemplo:


1.11. Manejo de objetos 3D con PSTricks

76

z

y

x

\psset{unit=1.0, Alpha=45, Beta=25} \begin{pspicture}(-4,-3)(4,3) \pstThreeDCoor[xMin=-4,xMax=4,yMin=-4, yMax=4,zMax=3, arrows=<->] \pstThreeDEllipse[linecolor=blue, linewidth=1.5pt](0,0,0)(3,0,0)(0,2,0) \pstThreeDEllipse[linecolor=blue, linewidth=1.5pt](0,0,0.5)(2.5,0,0)(0,1.5,0) \pstThreeDEllipse[linecolor=blue, linewidth=1.5pt](0,0,1)(2,0,0)(0,1,0) \pstThreeDEllipse[beginAngle=0,endAngle=180, linecolor=green](0,0,2)(1,0,0)(0,1,0) \pstThreeDEllipse[beginAngle=180,endAngle=360, linecolor=magenta](0,0,2)(1,0,0)(0,1,0) \end{pspicture}

Observe que la Ăşltima elipse en realidad son dos semicircunferencias, una verde y la otra magenta, la perspectiva provoca que se vean como elipses.

1.11.10.

Esferas

La sintaxis es la siguiente: \pstThreeDSphere[OP](x,y,z){r}


1. Gráficos con PSTricks

77

EL comando dibuja una esfera con centro en el punto (x, y, z) y de radio r, las opciones son las antes estudiadas. z

y

x

\psset{unit=0.8, Alpha=45, Beta=25} \begin{pspicture}(-4,-3)(4,3) \pstThreeDCoor[xMin=-4,xMax=4,yMin=-4, yMax=4,zMax=3, arrows=<->] \pstThreeDSphere[linewidth=0, linecolor=green](0,0,2){0.8} \pstThreeDSphere[linewidth=0, linecolor=blue](2,0,0){0.8} \pstThreeDSphere[linewidth=0, linecolor=blue](0,2,0){0.8} \end{pspicture}

1.11.11.

Curvas paraméntricas en 3D

PSTricks implementa la siguiente función: \parametricplotThreeD[par](t1,t2)(u1,u2){x(t,u) y(t,u) z(t,u)} Sólo es posible usar las variables u y t. Los parámetros t1 , t2 son los límites de t, u1 , u2 son los límites inferior y superior de u. Recuerde que x(t, u), y(t, u) y z(t, u) se deben ingresar en la notación PostScript como lo vimos en la sección 1.9.1.


1.11. Manejo de objetos 3D con PSTricks

78 Ejemplo:

z

x

y

\psset{unit=0.8, Alpha=45, Beta=25} \begin{pspicture}(-4,-2)(4,4) \pstThreeDCoor[xMin=-4,xMax=4,yMin=-4, yMax=4,zMax=3, arrows=<->] \parametricplotThreeD[linecolor=blue, linewidth=.25pt,xPlotpoints=200, plotstyle=curve,arrows=->](0,3.2){ t 360 mul cos t mul t 360 mul sin t mul t} \end{pspicture}

Ejemplo:


1. Grรกficos con PSTricks

79

z

x

\psset{unit=2.6, Alpha=45, Beta=25} \begin{pspicture}(-2,-2)(2,3) \pstThreeDCoor[xMin=-2,xMax=2,yMin=-2, yMax=2,zMax=3, arrows=<->] \parametricplotThreeD[linecolor=blue, linewidth=.25pt,xPlotpoints=200, plotstyle=curve,arrows=->](0,360)(0,360){ u sin t cos mul u sin t sin mul u cos} \parametricplotThreeD[linecolor=blue, linewidth=.25pt,xPlotpoints=200, plotstyle=curve,arrows=->](0,360)(0,360){ t sin u cos mul t sin u sin mul t cos} \end{pspicture}

y


1.11. Manejo de objetos 3D con PSTricks

80

1.11.12.

Gráfica de funciones

Para graficar funciones en el espacio, PSTricks implementa la función: \psplotThreeD[OP](x0,xt)(y0,yt){f(x,y)} La funcion, recuerden, debe estar en lenguaje PostScript , sólo se admiten variables x y y. El comando dibuja la gráfica de la función f (x, y) en el dominio determinado por (x0 , xt ) para x y (y0 , yt ) para la variable y. Además, se debe tener encuenta los siguientes parámetros (ver cuadro 1.17 ). Opción

Valor

plotstyle

Puede ser dots, line, polygon, curve, ecurve, ccurve, none (valor por defecto). y determina la forma de las líneas con que se dibujá la curva. Puede ser false/true y por omisión es false. Muestra los puntos.

showpoints showpoints

Puede ser false/true y por omisión es false. Muestra los puntos.

xPlotpoints y yPlotpoints

Por defecto es 25, y determina la cantidad de puntos a graficar.

hiddenLine

Por defecto es false y hace que se dibujen las líneas.

Cuadro 1.17: Opciones de la función \psplotThreeD Ejemplo: \psset{unit=1.5, Alpha=45, Beta=20} \begin{pspicture}(-3,-1.5)(6,5.5) \pstThreeDCoor[xMin=-4,xMax=4,yMin=-4, yMax=4,zMax=3, arrows=<->] \psplotThreeD[plotstyle=line,linecolor=blue, yPlotpoints=40,xPlotpoints=30, linewidth=0.5pt] (-1.5,1.5)(-1.5,1.5) { x 2 exp y 2 exp add x 5 div sub }


1. Gráficos con PSTricks

81

\rput[tl](2,2){$f(x,y)=x^2 + y^2 - \frac{x}{5}$ } \end{pspicture}

z f (x, y) = x2 + y 2 −

x

x 5

y

Recuerde que usted tiene el control sobre el dominio de las variables x y y, no sobre la variable z, tenga presente este detalle pues su gráfica puede salir de la zona delimitada.

Ejemplo:


82

1.11. Manejo de objetos 3D con PSTricks z

y

x

f (x, y) = cos(100x) − sin(100y)

\psset{unit=1.5, Alpha=45, Beta=30} \begin{pspicture}(-3,-1.5)(3,4) \pstThreeDCoor[xMin=-4,xMax=4,yMin=-4, yMax=4,zMax=3, arrows=<->] \psplotThreeD[plotstyle=line,linecolor=blue, yPlotpoints=40,xPlotpoints=30, linewidth=0.5pt, hiddenLine=true](-2,2)(-2,2) { x 100 mul cos y 100 mul sin sub } \rput[tl](-2,3.5){$f(x,y)=\cos (100x) - \sin (100y) $ } \end{pspicture}

Ejemplo:


1. Grรกficos con PSTricks

83 z

2

f (x, y) = sin (180x)

x

\psset{unit=1.0, Alpha=45, Beta=30} \begin{pspicture}(-3,-2)(3,3) \pstThreeDCoor[xMin=-4,xMax=4,yMin=-4, yMax=4,zMax=3, arrows=<->] \psplotThreeD[plotstyle=ecurve,linecolor=blue, yPlotpoints=40,xPlotpoints=30, linewidth=0.5pt, hiddenLine=true](-2,2)(-2,2) { x 180 mul sin 2 exp } \rput[tl](-3,2.5){$f(x,y)=\sin ^2 (180x) $ } \end{pspicture}

Ejemplo:

y


1.11. Manejo de objetos 3D con PSTricks

84

z f (x, y) =

y2

−

x2

y x

\psset{unit=1.0, Alpha=60, Beta=30} \begin{pspicture}(-3,-2)(3,3) \psplotThreeD[plotstyle=line,linecolor=blue, yPlotpoints=60,xPlotpoints=60, linewidth=0.5pt, hiddenLine=true, showpoints=true](-1.3,1.3)(-1.3,1.3) { y 2 exp x 2 exp sub } \pstThreeDCoor[xMin=-2,xMax=2,yMin=-2, yMax=2,zMax=3, arrows=<->] \rput[tl](-3,2.5){$f(x,y)=y^2-x^2$ } \end{pspicture}

Ejemplo:


1. Gráficos con PSTricks

f (x, y) = 1 − x2 + y 2

85

1

3

z

y x

\psset{unit=1.0, Alpha=60, Beta=30} \begin{pspicture}(-3,-2)(3,3) \psplotThreeD[plotstyle=line,linecolor=blue, yPlotpoints=60,xPlotpoints=60, linewidth=0.5pt, hiddenLine=true, showpoints=true](-1.3,1.3)(-1.3,1.3) { 1 x 2 exp y 2 exp add 1 3 div exp sub } \pstThreeDCoor[xMin=-2,xMax=2,yMin=-2, yMax=2,zMax=1.5, arrows=<->] \rput[tl](-3,2.5){$f(x,y)=1-\left(x^2 +y^2 \right)^{\frac{1}{3}}$ } \end{pspicture}


86

1.11. Manejo de objetos 3D con PSTricks


CAPÍTULO 2 Herramientas para gráficos con PSTricks Para muchos usuarios de PSTricks, puede ser tedioso el uso de códigos más parecidos a un lenguaje de programación como Pascal o C++, que a un editor de gráficos matemáticos. El usuario de LATEX quiere que sus gráficos matemáticos queden con la mejor calidad, sin embargo, muchos de ellos no desean ni tienen tiempo de construir una gráfica matemática con base en instrucciones. Además, hay gráficos muy sencillos (o muy complejos) que no merecen que se tome el tiempo necesario en construirlos de la forma tradicional. Para este tipo de usuarios, se desarrolló software como el JpicEdt© y LatexDraw©, estos programas permiten construir gráficos vectorizados y exportar su código a LATEX y PSTricks. En este capítulo mostraremos cómo implementar gráficos matemáticos con estos programas.

2.1 JpicEdt Este programa fue desarrollado por Sylvain Rainal del E.N.S.E.A departamento de física. Es un software libre y puede ser redistribuido 87


88

2.1. JpicEdt

y/o modificarlo bajo los términos de la Licencia Pública General de GNU según es publicada por la Free Software Foundation. Como se mencionó anteriormente, el software es un editor de gráficos vectorizados que permite exportar a código PSTricks, Emulated LATEX y Epic/Eepic. El JpicEdt fue desarrollado en Java©, el cual debe estar instalado en el computador previamente. La instalación es muy sencilla, sólo se hace doble clic en el archivo jpicedt-install-1_4_pre_5.jar, luego, se procede a dar los parámetros de instalación, el programa se ubicará en su computador automáticamente. Como JpicEdt esta hecho en Java, puede funcionar en cualquier plataforma (Windows, Linux y Mac.). Para bajarlo y obtener más información, consulte la página http://jpicedt.sourceforge.net/site/index.php?language=en.

Figura 2.1: Interfase principal de JPicEdt


2. Herramientas para gráficos con PSTricks

2.1.1.

89

Ventanas

JpicEdt tiene 3 ventanas principales, la primera de ella es la de trabajo.

En la parte superior de esta ventana, aparecen varios menús desplegables, el primero de ellos permite cambiar la malla o cuadrícula del área de trabajo, luego aparece un botón para activar o desactivar el “magnetismo de la malla”, es decir, la forma en como los objetos se acomodan e los vértices de la malla del área de trabajo. Luego aparece otro menú desplegable para cambiar la intensidad del magnetismo de la malla, la cual va de 10 a 0.625; ésta es muy importante para la construcción de nuestros gráficos matemáticos. En la parte media de la ventana, se encuentra el área de trabajo, el cual, esta enmarcado con una malla, en la parte superior e izquierda se encuentra la regla, una utilidad para medir o referenciar nuestros gráficos. En la parte inferior izquierda aparece una etiqueta donde se resalta la posición del mouse sobre el área de trabajo. Luego aparece la ventana de atributos, la cual, me permite cambiar las propiedades o atributos de los objetos que se construyan.


90

2.1. JpicEdt

La ventana consta de ocho submenus: Lleno, Rayar, Trazo, Sombra, Flechas, Polydots, Text y una opción llamada PSTricks. Lleno: Con esta opción, podemos escojer el color de relleno de los objeto cerrados, es decir, figuras planas cerradas (círculos, elipses, polígonos). La ventana muestra las opciones de colores en paletas RGB, HSB y colores predefinidos por PSTricks. Además, tiene un menú desplegable que permite escojer el tipo de textura o relleno para nuestros objetos, las opciones que maneja son: transparente (por defecto), solido, líneas verticales transparentes, líneas verticales con color de fondo, líneas horizontales transparentes y con fondo, y dos opciones para trama en forma de ladrillo con fondo transparente y con color de fondo. Como hemos visto, no debemos preocuparnos por el código en PSTricks para la inclusión de nuevos colores, JpicEdt lo hace automaticamente, Además la ventana cuenta con una opción de color reciente, que le permite al usuario seguir trabajando con los mismos colores.


2. Herramientas para gráficos con PSTricks

91

Rayar: Esta opción permite cambiar las formas de las texturas que se impusieron a los objetos en la opción de lleno. Tiene tres opciones, la primera, puesta en la parte superior izquierda, permite cambiar el ancho de las líneas de las texturas; si estas son muy anchas, se puede obtener un color sólido. La segunda opción permite cambiar la separación entre las líneas de la textura y la última opción modifica el ángulo de inclinación de las líneas. En la parte inferior se presenta un menú de colores similar a la pestaña anterior donde se pueden escoger colores de la forma RGB, HSB y predeterminado por PSTricks.

Trazo: En esta pestaña, encontramos las opciones para el entorno de los objetos. Inicialmente aparece un menu desplegable que me permite selecionar la forma del contorno, puede ser invisible, normal, en guiones y punteada. En la parte superior derecha aparece la opción de ancho de la línea.

Los dos comandos en la zona media, son usados para ajustar la separación entre los guiones y el ancho de los mismos. Tambien, allí aparece la opción para la líneas punteadas, con este comando se pueden cambiar la separación de los puntos. La opción Overstrike hace que las líneas pierdan la capacidad de ser transparentes. Sombra: Esta opción permite aplicarle el efecto de sombra a los objetos planos cerrados (polígonos, círculos, etc)


92

2.1. JpicEdt

Sólo tiene dos parámetros, el primero modifica el ancho de la sombra y el segundo el ángulo donde esta se va a proyectar. Flechas: Permite implementar el efecto de flechas a las líneas con las mismas opciones que aparecen en la sección 1.3.1.1. La pestaña ofrece la posibilidad de cambiar el tipo de flecha al comienzo y al final de la línea, la forma y el tamaño de la misma. Polydots: Esta pestaña permite el ángulo de los puntos, tamaño y activar los puntos de una curva escala. o una línea recta, la pestaña presenta un menú desplegable con los tipos de puntos dados por PSTricks. Las diferentes opciones de esta pestaña permiten cambiar Text: Para los efectos de texto, la pestaña ofrece la posibilidad de cambiar el punto de referencia de la etiqueta con el texto, permitiendo ponerla en la parte inferior, superior, izquierda o derecha, además, permite cambiar el ángulo de rotación del texto. La pestaña tambien incluye una herramienta para enmarcar el texto en rectángulos o círculos.


2. Herramientas para gráficos con PSTricks

93

PSTricks: En esta pestaña podemos incluir opciones de PSTricks que el software no maneja, sólo debemos escribirlas en el espacio de PS custom y oprimir el botón aceptar.

2.1.2.

Herramientas de edición

La ventana de “Caja de útiles” presenta las herramientas de edición básicas para contruir nuestros gráficos matemáticos. Iniciamlente, esta ventana la encontraremos junto a las que aparecen por omisión cuando el programa arranca, si no es el caso, vaya al menú Útiles y allí encontrará las mismas opciones. Tambien la podemos encontrar en el menú Ventanas/Caja de útiles.

Para el manejo de estas herramietas, se debe tener en cuenta que los objetos a modificarse deben estar seleccionados. En realidad, cualquier persona que haya tenido contacto con programas como FreeHand o CorelDraw no tendrá dificultad en manejarlo. Enseguida, mostraremos el uso de las diferentes herramientas de edición.


2.1. JpicEdt

94 Permite hacer zoom en la gráfica que estamos construyendo.

Selecciona los objetos que componen la gráfica. Permite editar los nodos que componen las curvas Bezier. Al seleccionar uno o varios obejto, podemos moverlos con este comando.

Escala los objetos seleccionados, bien sea en forma vertical u horizontal. Rota los objetos seleccionados. Permite la inclusión de texto. Si es texto científico, recuerde ponerlo entre los comandos “$” Permite crear líneas rectas.

Herramienta para crear rectángulos. Herramienta para crear paralelogramos. Permite construir curvas bezier, el fin de la curva se logra haciendo clic derecho. Igual a la anterior, pero la curva bezier es cerrada


2. Herramientas para gráficos con PSTricks Herramienta para la creación de elipses y circunferencias. Comando para crear “tortas” o secciones de círculos. Esta herramienta es similar a la anterior, pero el arco se une por una cuerda. Tambien es similar a la anterior, pero sin la cuerda.

Esta herramieta se llama herramienta cerrada, pero su diferencia consiste en imprimir a la elipse el efecto de perspectiva. Torta con efecto de perspectiva. Arco y cuerda con efecto de perspectiva. Arco sin cuerda con efecto de perspectiva.

Circunferencia determinada por tres puntos, los cuales estan sobre la circunferencia. Torta determinada por tres puntos. Arco con cuerda determinada por tres puntos. Arco sin cuerda determinada por tres puntos.

95


2.1. JpicEdt

96 Curva poligonal abierta “Smood” Curva poligonal cerrada “Smood” Curva de interpolación abierta Curva de interpolación cerrada Edición de puntos de anclaje para ampliar o disminuir el tamaño.

2.1.3.

Preferencias y configuración

JpicEdt puede ser configurado desde la ventana de preferencias, la cual, se localiza en el menú Editar/Preferencias; esta opción abre un menu con los siguientes items. General: Esta pestaña permite configurar la apariencia de las ventanas, el estilo de estas, así como el idioma; que puede ser, inglés, francés, español y alemán. Tambien aparece la fuente y el formato por defecto en que se exportará el código, recuerde que puede ser PSTricks, emulated LATEX y Epic/Eepic. Apariencia: En este item aparecen cinco cajas de chequeado, para configurar la forma en que apareceran las figuras dibujadas en el área de trabajo, entre ellas están: Anti-alising, Antialising de texto, Calidad (vs velocidad), Dither Colours y usar métrica fraccional. Plantilla/Zoom: La opción permite configurar las opciones del tamaño de la malla, así como el estilo de la malla (sólido o en puntos). Tambien se puede configurar la imantación de la malla y el Zoom. Colores: Esta pestaña sólo presenta dos items, el color de fondo del escritorio del programa y el color de la malla.


2. Herramientas para gráficos con PSTricks

97

Repertorios: Esta opción permite configurar las rutas del la carpeta de archivos temporales y la carpeta de inicio de JpicEdt, la cual, es necesaria para los archivos temporales que utiliza el programa. Shortcuts: La pestaña presenta una lista con los Shortcuts de las diferentes opciones, menús y herramientas. Comandos: La opción presenta campos para la configuración de las rutas de acceso al compilador de LATEX y al programa Yap. Esto debido a que JpicEdt puede compilar el documento hecho y ver un previo de su dibujo. Formato de página Permite configurar las márgenes de la zona de trabajo. LATEX

Opción que permite configurar algunos parámetros esenciales de PSTricks, además, JpicEdt crea un documento TEX temporal, el cual puede ser configurado desde esta pestaña.

Epic/Eepic y PSTrics Estas dos pestañas son muy similares a la anterior, permiten configurar el archivo temporal que se compilará, LATEX , Epic/Eepic y PSTrics tienen paquetes diferentes y pueden ser modificados o actualizados desde esta pestaña.

2.1.4.

Otras herramientas de JpicEdt

Además de las mencionadas, JpicEdt tiene otras utilidades que pueden ahorrar gran trabajo a los usuarios de PStricks. Inicialmente en los menús fragmentos/electricity y fragmentos/mechanic se encuentran macros especializados para esa área, en el primero podemos encontrar macros como el and, or, capacitor, trancistor y voltage entre otros. Mientras que en el segundo menú, encontramos dos opciones: Frame-oxy y shock absorber. A continuación veremos un ejemplo de estos macros.


2.1. JpicEdt

98 f

I &

&

=1

R + −

y

≥1

O

≥1

x

Otra de la herramientas y tal vez la más llamativa para los matemáticos, es la posibilidad de graficar curvas de ecuaciones. En el menú Scrips/math se encuentran tres opciones para hacer este tipo de gráficos, la primera de ellas es add curve la cual, despliega la siguiente ventana:

Ésta permite incluir una o más curvas en R2 . JpicEdt no usa el comando \psplot para graficar las curvas, el programa usa la misma ecuación para encontrar los puntos que la componen y luego crear una curva bezier que emule la curva original. Como podemos apreciar en la ventana aparece la opción step, la cual, permite ajustar el incremento en el eje x para obtener los puntos necesarios al crear la curva,


2. Herramientas para gráficos con PSTricks

99

si ponemos este parámetro muy grande la curva se vera defectuosa, si el incremento es muy pequeño la curva se verá más fina pero será más pesada para el computador. Tomemos la gráfica de las funciones f y g. f (x) = sin(x)

y

g(x) = cos(x)

La función f la graficaremos con la herramienta de JpicEdt y g la graficaremos usando PSTricks puro. Con JpicEdt tenemos y sin(x)

0,8 0,6 0,4 0,2 −0,0 −0,2 −0,4 −0,6 −0,8

0,5 1,0 1,5 2,0 2,5 3,0 3,5 4,0 4,5 5,0 5,5 6,0 6,5 7,0 7,5 8,0 8,5 9,0 9,5 x

Como vemos, la curva se presenta con una excelente calidad, sólo debemos incluir la ecuación de la curva y cambiar los parámetros de colores, tipos de línea de la curva y oprimir el botón add this curve y listo, la gráfica se crea automáticamente en la zona de trabajo, inclusive, ubica en la parte superior derecha una etiqueta con la ecuación y adhiere efectos de sombra. Ahora lo haremos con PSTriks puro para la función g(x) = cos(x), usaremos el comando \psplot


2.1. JpicEdt

100 g(x) = cos(x)

1

2

3

4

5

6

Como podemos ver, la gráfica de f y g son muy similares en calidad, sin embargo, la gráfica de g toma mucho más tiempo en hacerla que la de f , pues el usuario debe hacer uso de los comandos apropiados para adecuarla al documento, cambiar el color, los tamaños de letra, etc. Mientras que en la gráfica de f teniamos una agradable interface tipo Windows y el tiempo en configurar y hacerla fue mínimo. Ahora comparemos los códigos, en este caso, PSTriks puro sólo usa 7 líneas de código, mientras que la hecha por JpicEdt1 usa unas 120 líneas. Veamos el código en PStricks puro. \begin{pspicture}(-1,-1)(6.5,1) \rput(2,1){$g(x)=\cos (x)$} \footnotesize \psaxes[linewidth=0.02]{<->}(0,0)(-1,-1)(6.5,1) \psplot[linewidth=0.04,linecolor=blue]{0}{6.2} { x 50 mul cos } \end{pspicture} Además de esta herramienta, JpicEdt tiene en el mismo menú, otra muy similar a la anterior llamada plot funtion, la cual, hace el mismo proceso pero con una gráfica más sencilla y con parámetros más simples.

1

Recordemos que JpicEdt exporta en código PSTricks, lo que queremos indicar es que el código hecho por el programa es más extenso.


2. Herramientas para gráficos con PSTricks

101

Como vemos, en la ventana se piden datos de la función en código Java, el valor de x mínimo y máximo, y por último, el ancho y el alto de la gráfica. El siguiente es un ejemplo construido con dicha herramienta.

1.0

-5.0

5.0

-1.0

Además, de gráficas de curvas en coordenadas cartesianas, JpicEdt permite crear gráficos de curvas paramétricas, en el mismo menú se encuentra la opción plot parametric, sólo que en este caso se deben introducir dos funciones en términos de t.

Recuerde que el código para las ecuaciones debe ser en Java. También se debe introducir el valor mínimo y el máximo de t, el número de puntos y el ancho y alto de la gráfica. El siguiente ejemplo muestra la gráfica de la curva paramétrica dada por las ecuaciones x(t) = 2t cos(t) y y(t) = 2t sin(t), usando un ancho/alto de 50 puntos y 50 puntos de referencia.


2.1. JpicEdt

102 4.0 2.0 -5.0

5.0

10.0

-2.0 -4.0 -6.0 -8.0

2.1.5.

¿Cómo pasar de JpicEdt a LATEX?

El programa es fácil de manejar, sólo dibujamos con las herramientas ya expuestas, luego en el menú comandos/Latex se hace clic en la opción Latex, la cual, toma el gráfico hecho y lo convierte en código PSTricks, para luego compilarlo. Este proceso nos permite ver un previo del gráfico. Una vez acabado el trabajo de dibujado, se selecciona todo el gráfico con el menú Edición/Seleccionar todo, luego Edición/copiar. Ahora, pasamos a nuestro editor de LATEX preferido y le decimos pegar. El código quedará listo para compilarse, recuerde que se debe tener en el preámbulo del documento los paquetes correspondientes.

2.1.6.

Ejemplos en JpicEdt

En este capitulo mostraremos algunos ejemplos hechos en JpicEdt con su correspondiente código fuente generado por el programa. Ejemplo de Simulaciones 3D


2. Herramientas para gr谩ficos con PSTricks z

f (x, y)

y

(x, y)

x C贸digo fuente: %PSTricks content-type %(pstricks.sty package needed) %Add \usepackage{pstricks} %in the preamble of your LaTeX file %You can rescale the whole picture %(to 80% for instance) by using the command % \def\JPicScale{0.8} \ifx\JPicScale\undefined\def\JPicScale{1}\fi \psset{unit=\JPicScale mm} \psset{linewidth=0.3,dotsep=1,hatchwidth=0.3, hatchsep=1.5,shadowsize=1,dimen=middle} \psset{dotsize=0.7 2.5,dotscale=1 1,fillcolor=black} \psset{arrowsize=1 2,arrowlength=1,arrowinset=0.25,tbarsize=0.7 5, bracketlength=0.15,rbracketlength=0.15} \begin{pspicture}(0,0)(88.1,88.58) \psline{<-}(31,86.58)(31,36.58)

103


104

2.1. JpicEdt

\psbezier(81,36.58)(81,36.58)(81,36.58)(81,36.58) \psline{->}(31,36.58)(81,36.58) \psline{->}(31,36.58)(1,6.58) \newrgbcolor{userFillColour}{0.8 0.8 0.8} \psccurve[linecolor=white,fillcolor=userFillColour, fillstyle=solid,curvature=1.0 0.1 0.0] (16,11.58)(56,11.58)(86,21.58)(36,31.58) \newrgbcolor{userFillColour}{0 0.6 1} \psccurve[linecolor=white,fillcolor=userFillColour, fillstyle=solid,curvature=1.0 0.1 0.0] (16,41.58)(56,56.58)(86,51.58)(36,61.58) \rput(46,59.58){$f(x,y)$} \psline[linewidth=0,linestyle=dashed,dash=1 1] (46,56.58)(46,23.58) \rput(46,21.58){$(x,y)$} \psline[linewidth=0,linestyle=dashed,dash=1 1] (18,23.58)(46,23.58) \psline[linewidth=0,linestyle=dashed,dash=1 1] (46,23.58)(59,36.58) \rput{0}(46,56.08){\psellipse[fillstyle=solid] (0,0)(1,-0.5)} \rput{0}(46,24.08){\psellipse[fillstyle=solid] (0,0)(1,-0.5)} \rput(31,88.58){$z$} \rput(84,36.58){$y$} \rput(0,5.58){$x$} \end{pspicture}

Una de las ventajas de JpicEdt, es la claridad del código PSTricks que genera, se presta para reformarlo fácilmente. El tamaño de los gráficos se puede cambiar, sólo se toma el parámetro \JPicScale{1} en el preámbulo de cada gráfico, si cambiamos el 1 por un 0.5 el tamaño se reducirá a la mitad, por el contrario, si lo cambiamos por un 1.5 se duplicará el tamaño. Ejemplo de gráficos para física


2. Herramientas para gráficos con PSTricks

105

b

r2

b

O2

Ob1 lβ

r1 b

%PSTricks content-type %(pstricks.sty package needed) %Add \usepackage{pstricks} in the %preamble of your LaTeX file %You can rescale the whole picture %(to 80% for instance) by using the command %\def\JPicScale{0.8} \ifx\JPicScale\undefined\def\JPicScale{1}\fi \psset{unit=\JPicScale mm} \psset{linewidth=0.3,dotsep=1,hatchwidth=0.3, %hatchsep=1.5,shadowsize=1,dimen=middle} \psset{dotsize=0.7 2.5,dotscale=1 1,fillcolor=black} \psset{arrowsize=1 2,arrowlength=1, %arrowinset=0.25,tbarsize=0.7 5, %bracketlength=0.15,rbracketlength=0.15} \begin{pspicture}(0,0)(100.5,40) \rput{0}(20,19.5){\psellipse[](0,0)(20,-19.5)} \psline(29,37)(81,11) \psline(31,3)(77,37) \rput{90}(85.75,25.12){ \psellipse[](0,0)(14.88,-14.75)} \psline[linewidth=0.1,linestyle=dashed,dash=1 1] (86,25)(77,37) \psdots[linewidth=0.1,linestyle=dashed,dash=1 1] (86,25)(77,37) \psline[linewidth=0.1,linestyle=dashed,dash=1 1] (31,3)(20,20) \psdots[linewidth=0.1,linestyle=dashed,dash=1 1]


2.1. JpicEdt

106 (31,3)(20,20) \rput(20,22){$O_1$} \rput(86,23){$O_2$} \rput(22,11){$r_1$} \rput(84,32){$r_2$} \rput[l](42,32){$l_\alpha$} \rput[l](48,13){$l_\beta$} \end{pspicture}

Ejemplo de gráficos en matemáticas en 2D y sin(x)

0,8

sin(2x)

0,6

sin(3x)

0,4 0,2 −0,0 −0,2 −0,4 −0,6 −0,8 0,5

1,0

1,5

2,0

2,5

3,0 x

3,5

4,0

4,5

5,0

5,5

%PSTricks content-type %(pstricks.sty package needed) %Add \usepackage{pstricks} in %the preamble of your LaTeX file %You can rescale the whole %picture (to 80% for instance) by %using the command \def\JPicScale{0.8} \ifx\JPicScale\undefined\def\JPicScale{1}\fi \psset{unit=\JPicScale mm}

6,0


2. Herramientas para grรกficos con PSTricks \psset{linewidth=0.3,dotsep=1,hatchwidth=0.3, hatchsep=1.5,shadowsize=1,dimen=middle} \psset{dotsize=0.7 2.5,dotscale=1 1,fillcolor=black} \psset{arrowsize=1 2,arrowlength=1, arrowinset=0.25,tbarsize=0.7 5,bracketlength=0.15, rbracketlength=0.15} \begin{pspicture}(0,0)(144,93) \newrgbcolor{userFillColour}{0.94 0.94 0.94} \pspolygon[linestyle=none,fillcolor= userFillColour,fillstyle=solid](2,9) (122,9) (122,89) (2,89)(2,9) \psline[linecolor=white,linestyle=dotted] (11.67,9)(11.67,89) \psline(11.67,8)(11.67,9.5) \psline(11.67,88.5)(11.67,89) \rput(11.67,5){$0.5$} \psline[linecolor=white,linestyle=dotted] (21.37,9)(21.37,89) \psline(21.37,8)(21.37,9.5) \psline(21.37,88.5)(21.37,89) \rput(21.37,5){$1.0$} \psline[linecolor=white,linestyle=dotted] (31.06,9)(31.06,89) \psline(31.06,8)(31.06,9.5) \psline(31.06,88.5)(31.06,89) \rput(31.06,5){$1.5$} \psline[linecolor=white,linestyle=dotted] (40.75,9)(40.75,89) \psline(40.75,8)(40.75,9.5) \psline(40.75,88.5)(40.75,89) \rput(40.75,5){$2.0$} \psline[linecolor=white,linestyle=dotted] (50.45,9)(50.45,89) \psline(50.45,8)(50.45,9.5) \psline(50.45,88.5)(50.45,89)

107


108 \rput(50.45,5){$2.5$} \psline[linecolor=white,linestyle=dotted] (60.14,9)(60.14,89) \psline(60.14,8)(60.14,9.5) \psline(60.14,88.5)(60.14,89) \rput(60.14,5){$3.0$} \psline[linecolor=white,linestyle=dotted] (69.83,9)(69.83,89) \psline(69.83,8)(69.83,9.5) \psline(69.83,88.5)(69.83,89) \rput(69.83,5){$3.5$} \psline[linecolor=white,linestyle=dotted] (79.53,9)(79.53,89) \psline(79.53,8)(79.53,9.5) \psline(79.53,88.5)(79.53,89) \rput(79.53,5){$4.0$} \psline[linecolor=white,linestyle=dotted] (89.22,9)(89.22,89) \psline(89.22,8)(89.22,9.5) \psline(89.22,88.5)(89.22,89) \rput(89.22,5){$4.5$} \psline[linecolor=white,linestyle=dotted] (98.91,9)(98.91,89) \psline(98.91,8)(98.91,9.5) \psline(98.91,88.5)(98.91,89) \rput(98.91,5){$5.0$} \psline[linecolor=white,linestyle=dotted] (108.6,9)(108.6,89) \psline(108.6,8)(108.6,9.5) \psline(108.6,88.5)(108.6,89) \rput(108.6,5){$5.5$} \psline[linecolor=white,linestyle=dotted] (118.3,9)(118.3,89) \psline(118.3,8)(118.3,9.5) \psline(118.3,88.5)(118.3,89) \rput(118.3,5){$6.0$} \psline[linecolor=white,linestyle=dotted]

2.1. JpicEdt


2. Herramientas para grรกficos con PSTricks (2,17)(122,17) \psline(1,17)(2.5,17) \psline(121.5,17)(122,17) \rput[r](0,17){$-0.8$} \psline[linecolor=white,linestyle=dotted] (2,25)(122,25) \psline(1,25)(2.5,25) \psline(121.5,25)(122,25) \rput[r](0,25){$-0.6$} \psline[linecolor=white,linestyle=dotted] (2,33)(122,33) \psline(1,33)(2.5,33) \psline(121.5,33)(122,33) \rput[r](0,33){$-0.4$} \psline[linecolor=white,linestyle=dotted] (2,41)(122,41) \psline(1,41)(2.5,41) \psline(121.5,41)(122,41) \rput[r](0,41){$-0.2$} \psline[linecolor=white,linestyle=dotted] (2,49)(122,49) \psline(1,49)(2.5,49) \psline(121.5,49)(122,49) \rput[r](0,49){$-0.0$} \psline[linecolor=white,linestyle=dotted] (2,57)(122,57) \psline(1,57)(2.5,57) \psline(121.5,57)(122,57) \rput[r](0,57){$0.2$} \psline[linecolor=white,linestyle=dotted] (2,65)(122,65) \psline(1,65)(2.5,65) \psline(121.5,65)(122,65) \rput[r](0,65){$0.4$} \psline[linecolor=white,linestyle=dotted] (2,73)(122,73) \psline(1,73)(2.5,73)

109


110 \psline(121.5,73)(122,73) \rput[r](0,73){$0.6$} \psline[linecolor=white,linestyle=dotted] (2,81)(122,81) \psline(1,81)(2.5,81) \psline(121.5,81)(122,81) \rput[r](0,81){$0.8$} \psline(122,9)(122,89) \psline(2,89)(122,89) \psline{->}(2,9)(122,9) \psline{->}(2,9)(2,89) \rput(62,0){$x$} \rput(62,93){$y$} \newrgbcolor{userFillColour}{0.94 0.94 0.94} \pspolygon[fillcolor=userFillColour, fillstyle=solid,shadow=true](123,89) (144,89)(144,62) (123,62)(123,89) \pspolygon[linestyle=none, fillstyle=solid,shadow=true](124,83) (124,85)(126,85) (126,83)(124,83) \rput[l](127.5,84){$\sin(x)$} \pspolygon[linestyle=none,fillcolor=blue, fillstyle=solid,shadow=true](124,75) (124,77)(126,77)(126,75)(124,75) \rput[l](127.5,76){$\sin(2x)$} \pspolygon[linestyle=none,fillcolor=red, fillstyle=solid,shadow=true](124,67) (124,69)(126,69) (126,67)(124,67) \rput[l](127.5,68){$\sin(3x)$} \psline(2,49.04) (2.19,49.44) * * *

2.1. JpicEdt


2. Herramientas para grรกficos con PSTricks

111

Lista de puntos para las graficas * * * (121.81,35.79) (121.81,36.93)(122,36.93) \end{pspicture}

2.2 LATEXDraw Este software fue creado por Arnaud Blouin bajo licencia GNU GENERAL PUBLIC LICENSE Version 2, y Copyright (C) 1989, 1991 Free Software Foundation, Inc. En esencia, es muy similar al JpicEdt, pero este es mรกs sencillo. Para obtenerlo, podemos consultar la pรกgina web http://latexdraw.sourceforge.net/. En este momento se tiene la versiรณn 1.9.5.

Al contrario de JpicEdt, LATEXDraw genera el cรณdigo PSTricks en el


2.2. LATEXDraw

112

momento en que se crean los objetos. En la parte derecha del programa se visualiza el código PSTricks del correspondiente dibujo, el cual puede ser copiado y pegado en nuestro editor de LaTex preferido, el código ya está listo para compilar, recuerde que se debe poner los paquetes correspondientes. Además, de los paquetes PSTricks se puede incluir \usepackage{epsfig}, el cual permite usar la instrucción \scalebox{1}{...Código PSTricks...} para escalar los gráficos obtenidos con el código.

2.2.1.

Herramientas de diseño

LATEXDraw presenta las siguientes herramientas de diseño.

Parámetros de cuadrícula: Permite configurar la cuadrícula de dibujo. Tambien presenta una opción para poner la propiedad de magnetismo.

Opacidad de limitadores: Los limitadores son pequeños puntos de referencia que bordea a los objetos creados para modificarlos. Si cambiamos la opacidad, podemos volver estos puntos más claros o más oscuros. Rehacer y deshacer: Dos herrameintas usuales en cualquier editor gráfico. Herramienta líneas: Permiten crear líneas rectas, la primera genera una sola línea, la segunda genera un polígono que se cierra al hacer clic derecho.


2. Herramientas para gráficos con PSTricks

113

Herramienta punto: Ubica un punto estándar de LATEX donde se haga clic. Herramienta Rectángulos: Genera rectángulos o cuadrados según se escoja la herramienta. Herramienta Polígonos: Permite construir triángulos, rombos o cualquier tipo de polígonos. Herramienta elipse: Permiten crear elipses y circunferencias.

Herramienta Arcos: Crea arcos abiertos, tortas y arcos cerrados. Herramienta Curva Bezier: Tiene dos opciones, la primera es una curva bezier cerrada y la segunda es abierta. Herramienta cuadrículas y ejes: Permite construir cuadrículas propias de PSTricks y ejes coordenados con la herramienta \psaxes . Herramienta trazo libre: Haciendo clic sostenido y arrastrando el ratón, se consigue una trazo muy fino generando los puntos correspondientes en PSTricks. Herramienta texto: Permite incluir texto en nuestro gráfico, recuerde que el texto matemático debe estar entre el simbolo $.


2.2. LATEXDraw

114

2.2.2.

Configuración de objetos

Los objetos creados con LaTexDraw se pueden editar, cambiando sus propiedades. El objeto debe ser seleccionado con la herramienta selección.

Haciendo clic en el botón se accede a los parámetros de cada objeto, teniendo en cuenta que cada objeto tiene diferentes propiedades. Por ejemplo, el texto presenta una ventana distinta a los parámetros de una elipse.

2.2.3.

¿Cómo pasar de LATEXDraw a LATEX?

En la parte derecha del programa aparece un cuadro de texto no editable con el código PSTriks, sólo se selecciona y se copia, o se va al menú Editar/copiar, luego pasamos a nuestro editor de LATEX y lo pegamos. El código generado está listo para utilizarse, en la parte superior aparece entre comentarios las librerías que deben incluirse para compilarse correctamente.

2.2.4.

Ejemplos en LATEXDraw

Ejemplo de Simulaciones 3D


2. Herramientas para gráficos con PSTricks

115

z

x+y−z =0

y

x2 + y 2 = 4

x Código fuente: % Generated with LaTeXDraw 1.9.5 % Mon Dec 10 12:00:30 COT 2007 % \usepackage[usenames,dvipsnames]{pstricks} % \usepackage{epsfig} % \usepackage{pst-grad} % For gradients % \usepackage{pst-plot} % For axes \scalebox{10} % Change this value to rescale the drawing. { \begin{pspicture}(0,-5.132969)(9.042812,5.132969) \psline[linewidth=0.04cm,arrowsize=0.05291667cm 2.0, arrowlength=1.4,arrowinset=0.4]{<-} (3.4809375,4.6545315)(3.4209375,-1.7854687) \psline[linewidth=0.04cm,arrowsize=0.05291667cm 2.0, arrowlength=1.4,arrowinset=0.4]{<-}


116

2.2. LATEXDraw

(8.400937,-1.7654687) (3.4009376,-1.7654687) \psline[linewidth=0.04cm,arrowsize=0.05291667cm 2.0, arrowlength=1.4,arrowinset=0.4]{<-} (0.4009375,-4.7254686) (3.4209375,-1.7854687) \psbezier[linewidth=0.04](2.3409376,-2.8254688) (3.8409376,-3.1254687) (4.9209375,-2.6454687)(4.9409375,-1.7654687) \psline[linewidth=0.02cm,linestyle=dashed,dash=0.16cm 0.16cm] (4.9409375,1.2545313) (4.9409375,-1.7854687) \psline[linewidth=0.02cm,linestyle=dashed, dash=0.16cm 0.16cm](2.3809376,0.19453125) (2.3809376,-2.8454688) \psline[linewidth=0.02cm,linestyle=dashed, dash=0.16cm 0.16cm] (4.0409374,1.7345313)(4.0209374,-2.7654688) \psbezier[linewidth=0.04] (2.3809376,0.15453126) (3.1209376,2.6145313) (4.9009376,1.5945313) (4.9209375,1.2345313) \psline[linewidth=0.02cm,linestyle=dashed, dash=0.16cm 0.16cm](3.4409375,-1.7254688) (2.4009376,0.17453125) \psline[linewidth=0.02cm,linestyle=dashed, dash=0.16cm 0.16cm](3.4609375,-1.7054688) (4.9809375,1.1945312) \psline[linewidth=0.02cm] (4.9609375,1.1545312)(5.8409376,2.6945312) \psline[linewidth=0.02cm] (2.4009376,0.13453124)(1.1209375,1.7745312) \psline[linewidth=0.04cm] (1.1209375,1.7545313)(3.4409375,3.0745313) \psline[linewidth=0.04cm] (3.4409375,3.0345314)(5.8409376,2.6745312)


2. Herramientas para gráficos con PSTricks

117

\psline[linewidth=0.04cm] (1.1209375,1.7745312)(5.8609376,2.6745312) \usefont{T1}{ptm}{m}{n} \rput(4.782344,-3.1154687){$x^2+y^2=4$} \usefont{T1}{ptm}{m}{n} \rput(5.682344,3.2845314){$x+y-z=0$} \usefont{T1}{ptm}{m}{n} \rput(3.5023437,4.9445314){$z$} \usefont{T1}{ptm}{m}{n} \rput(0.22234374,-4.9554687){$x$} \usefont{T1}{ptm}{m}{n} \rput(8.732344,-1.7154688){$y$} \end{pspicture} } Ejemplo de Simulaciones 2D 4 3 x=

2 1

−4

−3

−2

−1 −1

1 cosh(t)

y = t − tanh(t) 1

2

3

4

−2 −3 −4

Código fuente: \scalebox{1} % Change this value to rescale the drawing. {


118

2.2. LATEXDraw

\begin{pspicture}(0,-5.09)(10.0,5.07) \definecolor{color23}{rgb}{0.0,0.2,1.0} \rput(5.0,0.07){\psaxes[linewidth=0.03, arrowsize=0.05291667cm 2.0,arrowlength=1.4, arrowinset=0.4]{<->}(0,0)(-5,-5)(5,5)} \psbezier[linewidth=0.04,linecolor=color23, linestyle=dashed,dash=0.16cm 0.16cm, arrowsize=0.05291667cm 2.0,arrowlength=1.4, arrowinset=0.4]{<->} (3.42,4.85)(3.64,1.17)(4.58,0.43)(9.92,0.09) \psbezier[linewidth=0.04,linecolor=color23, linestyle=dashed,dash=0.16cm 0.16cm ,arrowsize=0.05291667cm 2.0,arrowlength=1.4, arrowinset=0.4]{<->} (3.72,-5.07)(4.02,-0.45)(4.72,-0.61)(9.94,0.06427509) \usefont{T1}{ptm}{m}{n} \rput(7.351406,2.28){$x=\dfrac{1}{\cosh (t)}$} \usefont{T1}{ptm}{m}{n} \rput(6.6914062,1.66){$y=t-\tanh (t)}$} \end{pspicture} }


CAPÍTULO 3 Conceptos Generales de XY- pic En este capítulo mostraremos algunos ejemplos hechos con el paquete XY-pic, en ellos se muestra la manera de construir gráficos, teniendo en cuenta que están puestos sobre las componentes de una matriz. Para contruir una gráfica con XY-pic se deben tener en cuenta los siguientes aspectos: • Especificar las componentes como una matriz de entradas que están automáticamente alineadas en filas y columnas. • Cualquier entrada puede ser conectada a cualquier otra, utilizando una variedad de estilos de flecha y rotaciones. • Las flechas pueden ser decoradas con etiquetas que están vinculadas a un punto específico de edición y ampliadas en una dirección en particular. Esperamos que estos ejemplos sean de gran ayuda para la construcción de diagramas de flujo, diagramas conmutativos, diagramas de dinámicas ecológicas y epidemiológicas. 119


1203.1. Diagramas de dinĂĄmicas ecolĂłgicas y epidemiolĂłgicas

3.1 Diagramas de dinĂĄmicas ecolĂłgicas y epidemiolĂłgicas Ejemplo 3.1

XYZ[ / _^]\ x

f (t)x

DinĂĄmica de crecimiento exponencial. $$ \xymatrix{f(t)x \ar[rr] &&*+<1cm>^[o][F]{x}} $$ Ejemplo 3.2

rx 1 −

x K

/

x

DinĂĄmica de crecimiento logĂ­stico. $$ \xymatrix{rx\left(1-\frac{x}{K}\right) \ar[rr] &&*+<1cm>^[F]{x}} $$ Ejemplo 3.3

ωa /

x

ÇŤx

y ) φx(1− K

/

y

(π + ω)y

DinĂĄmica de crecimiento del mosquito.


3. Conceptos Generales de XY- pic

121

\begin{displaymath} \xymatrix{\omega a \ar[rr] && *+<1cm>[F-,]{x}\ar[rr]^{\phi x (1-\frac{y}{K})}\ar[d] && *+<1cm>[F-,]{y}\ar[d]\\ && \epsilon x && (\pi +\omega) y} \end{displaymath} Ejemplo 3.4

XYZ[ _^]\ x

βxy

XYZ[ / _^]\ y

XYZ[ / _^]\ z

θy

Modelo SIR sin dinĂĄmica vital. \begin{equation*} \xymatrix {*+<1cm>^[o][F-]{x} \ar[r]^{\beta xy} & *+<1cm>[o][F-] {y} \ar[r]^{\theta y} & *+<1cm>[o][F-]{z} } \end{equation*} Ejemplo 3.5

ÂľN /

x1

βv

x5 x V 1

x2 /

[

θx2

/

x3

Âľx2

Âľx1

Ď

XYZ[ XYZ[ / _^]\ x4 _ _ _ _ _ _/ _^]\ x5 βh

ÇŤx4

x2 x N 4

ÇŤx5

DinĂĄmica de transmisiĂłn e incidencia de dengue.

Âľx3


1223.1. Diagramas de dinĂĄmicas ecolĂłgicas y epidemiolĂłgicas \begin{displaymath} \xymatrix {\mu N \ar[rr] && *+<1cm>[F-,]{x_{1}} \ar[rr]^{\beta_{v} \frac{x_{5}}{V}x_{1}} \ar[d] && *+<1cm>[F-,] {x_{2}} \ar[rr]^{\theta x_{2}} \ar@{-->}@/^/[ddl] \ar[d] && *+<1cm>[F-,]{x_{3}} \ar[d]\\ && \mu x_{1} && \mu x_{2} && \mu x_{3}\\ \rho \ar[rr] && *+<1cm>[o][F-]{x_{4}} \ar@{-->}[rr]_{\beta_{h} \frac{x_{2}}{N}x_{4}} \ar[d] && *+<1cm>[o][F-] {x_{5}} \ar@{->}@/_/[uul] \ar[d] && \\ && \epsilon x_{4} && \epsilon x_{5} && } \end{displaymath} Ejemplo 3.6 ÎąR

{

∆

/

S

ÂľS

βSI

/

E

ÂľE

θE

/

I

ÂľI

ÎłI

/

R

ÂľR

DinĂĄmica SEIRS (cĂłlera) con dos rutas de transmisiĂłn. \begin{displaymath} \xymatrix{\Delta \ar[r] & *+<1cm>[F-,]{S}\ar[r]^{\beta SI}\ar[d] & *+<1cm>[F-,]{E}\ar[d]\ar[r]^{\theta E} & *+<1cm>[F-,]{I}\ar[d]\ar[r]^{\gamma I} & *+<1cm>[F-,]{R}\ar[d] \ar@{->}@/_1.5cm/[lll]^{\alpha R } \\ & \mu S & \mu E & \mu I & \mu R} \end{displaymath}


3. Conceptos Generales de XY- pic

123

Ejemplo 3.7 ÎąR

{ /

∆

S

βSI

/

θE

E

/

ÂľS

ÎłI

I

/

ÂľE

R

ÂľI

ÂľR

DinĂĄmica SEIRS con una ruta de transmisiĂłn. \begin{displaymath} \xymatrix{\Delta \ar[r] & *+<1cm>[F-,]{S}\ar[r]^{\beta SI}\ar[d] & *+<1cm>[F-,]{E}\ar[d]\ar[r]^{\theta E} & *+<1cm>[F-,]{I}\ar[d]\ar[r]^{\gamma I} & *+<1cm>[F-,]{R}\ar[d] \ar@{->}@/_1.5cm/[lll]^{\alpha R } \\ & \mu S & \mu E & \mu I & \mu R} \end{displaymath} Ejemplo 3.8

ÂľN /

S

β1 SI2 /

I1

ÂľS

ÎśI1

I2

θ1 I

/

R

E

(Âľ + Ď…)I1

θ2

/

ÂľR


1243.1. Diagramas de dinĂĄmicas ecolĂłgicas y epidemiolĂłgicas \begin{equation*} \xymatrix {\mu N \ar[r] & *+<1.3cm>^[o][F.]{S} \ar[r]|{\beta_1 S I_2} \ar[d] & *+<1.3cm>[o] [F.] {I_1} \ar[r]^{\theta_1 I} \ar[d] & *+<1.3cm>[o][F.]{R}\ar[d] \\ & \mu S && (\mu + \upsilon)I_{1} & \mu R \\ & \zeta I_1 \ar[rr] & *+<1.3cm>[o][F.]{I_2} \ar[ruu]_{\theta_2} &} \end{equation*} Ejemplo 3.9

∆N XYZ[ _^]\ S

Âľ

β

XYZ[ / _^]\ I

Âľ+ÇŤ

θ

XYZ[ / _^]\ R1

Âľ

Ďˆ1

Ďˆn−1 XYZ[ XYZ[ / _^]\ R2 _ _ _/ _^]\ Rn

Âľ

\begin{equation*} \xymatrix {\Delta N \ar[d] & & & &\\ *+<1cm>^[o][F]{S} \ar[r]^{\beta} \ar[d] & *+<1cm>[o][F] {I} \ar[r]^{\theta} \ar[d] & *+<0.8cm>[o][F]{R_1}\ar[r]^{\psi_1}\ar[d] & *+<0.8cm>[o][F]{R_2} \ar@{-->}[r]^{\psi_{n-1}}\ar[d]& *+<0.8cm>[o][F]{R_n}\ar[d]\\ \mu & \mu + \epsilon & \mu & \mu & \mu } \end{equation*}

Âľ


3. Conceptos Generales de XY- pic

125

Ejemplo 3.10

∆N

Ď‘ g c _ [ W T j P n L r H {v

β

S

/

E

Âľ

Âľ+ÇŤ

θ

/

I

Îą

/

R

Âľ

Âľ

\begin{equation*} \xymatrix {\Delta N \ar[d] & & & \\ *+<1cm>^[F-,]{S} \ar[r]^{\beta} \ar[d] & *+<1cm>[F-,] {E} \ar[r]^{\theta} \ar[d] & *+<1cm>[F-,]{I}\ar[r]^{\alpha}\ar[d]& *+<1cm>[F-,]{R}\ar@{-->} @/_1.5cm/[lll]_{\vartheta}\ar[d]\\ \mu & \mu + \epsilon & \mu & \mu } \end{equation*} Ejemplo 3.11

∆N

S

Âľ

β h e b _ \ Y V S k P M n & q

Mf P n q S V Y \ Ď‘_ b e h k

I

Âľ+ÇŤ

\begin{equation*} \xymatrix {\Delta N \ar[d] &&&& \\ *+<1cm>[F=]{S}\ar@{-->}@/^1cm/[rrrr]^{\beta}


1263.1. Diagramas de dinĂĄmicas ecolĂłgicas y epidemiolĂłgicas \ar[d] &&&& *+<1cm>[F=]{I} \ar@{-->}@/^1cm/[llll]_{\vartheta} \ar[d] \\ \mu &&&& \mu + \epsilon } \end{equation*} Ejemplo 3.12 _ _ _ _ / S _ _ _ _

∆N

_ _ _ /

I

β

_ _ _

ÂľS

(Âľ + ÇŤ)I

\begin{equation*} \xymatrix {\Delta N \ar[rr] && *+<1cm>[F--]{S}\ar[rr]|{\beta} \ar[d] && *+<1cm>[F--]{I}\ar[d] \\ && \mu S && (\mu + \epsilon)I } \end{equation*} Ejemplo 3.13

Îąx

s _P3 r _P 2 / x _ _ _ _ _ _ y o 2 3 P_ r P_ s

Âľxy

ÇŤy

Modelo Presa - Depredador de Lotka - Volterra \begin{equation*} \xymatrix {\alpha x \ar[rr] && *+<1cm>[o][F--]{x}\ar@{--}[rr] \ar[d] && *+<1cm>[o][F--]{y}\ar[d] &&

θxy


3. Conceptos Generales de XY- pic

127

\theta xy \ar[ll]\\ && \mu xy && \epsilon y && } \end{equation*} Ejemplo 3.14

q _ M1z 1 M l M _ q

ωL

ÎťM

s _P3 / L 3 P _ sX . &

ιM + βXM

θL

f XM

r _ L2

/ X o 2 L _ r

ÇŤL

ÂľX Modelo Presa - Depredador - Parasitoide \begin{equation*} \xymatrix { *+<1cm>[o][F--]{M}\ar[rr]|{\lambda M} \ar[d]&&*+<1cm>[o][F--]{L}\ar[d] \ar@{->}@/_1cm/[ll]|{\omega L}\\ \alpha M + \beta X M && \theta L \\ fXM \ar[rr] && *+<1cm>[o][F--]{X} \ar@{->}@/_1cm/[uull] \ar@{-->}@/_0.8cm/[uu] \ar[d] && \epsilon L \ar@{->}[ll] \\ && \mu X && } \end{equation*} Ejemplo 3.15


1283.1. Diagramas de dinĂĄmicas ecolĂłgicas y epidemiolĂłgicas

ÂľN /

x

ÎąĎˆ1 (

mi )x m

θy

y /

S

/

z

Âľx

Âľy

Âľz

ωa

XYZ[ XYZ[ / _^]\ ms _ _ _ _ _ _/ _^]\ mi

φmĎˆ3 (1− aI )

y βĎˆ2 ( N )ms

ÇŤms

ÇŤmi

Modelo para el control del dengue \begin{equation*} \xymatrix {\mu N \ar[rr] && *+<1cm>[F-,]{x} \ar[rr]^{\alpha \psi_{1} (\frac{m_i}{m})x} \ar[d] && *+<1cm>[F-,] {y} \ar[rr]^{\theta y} \ar@{-->}@/^/[ddl] \ar[d] && *+<1cm>[F-,]{z} \ar[d]\\ && \mu x && \mu y && \mu z\\ \omega a \ar[rr] && *+<1cm>[o][F]{m_s} \ar@{-->}[rr]_{\beta \psi_{2} (\frac{y}{N})m_s} \ar[d] && *+<1cm>[o][F] {m_i} \ar[rr]^{\phi m \psi_3 (1-\frac {a}{I})} \ar@/^/[uul] \ar[d] && *+<1cm>[o][F]{a} \ar[d]\\ && \epsilon m_s && \epsilon m_i && (\pi + \omega)a} \end{equation*} Ejemplo 3.16

XYZ[ / _^]\ a

(π + ω)a


3. Conceptos Generales de XY- pic

r _P 2 / x 2 P _ r c

∆N

129

s _P3 / y 3 P _ s

Ďˆ1 (¡)x

θy

u _P5 / 5 z P_ u

Âľx

o

u1

2 C

2

Âľz

z _ x L r q _ M1 2{ Ďˆ (¡)m s 3 ms _ _ _ _ _ _ _ / mi 1 M _ q L _ r

ÇŤms

Ďˆ4 (¡)p

Âľy

}

(ÇŤ − u1 )mi

r _P2

p

P_ r

ÇŤp p

o

Ďˆ3 (¡)l

(

r _P 2 o 2 l C P_ r

Ďˆ6 (¡)h

s _P3 3 h P_ s

(Ǎl + βxd )l

ÇŤh h

1

Ξlxd

r _ L2

/ xd 2 L _ r

Modelo para el control integrado del A. aegypti \begin{equation*} \xymatrix {\Delta N\ar[rr] && *+<1cm>[o][F--]{x}\ar[rr]^{\psi_1 (\cdot)x} \ar[d] && *+<1cm>[o][F--]{y} \ar[rr]^{\theta y}\ar@{-->}@/^/[ddll] \ar[d] && *+<1cm>[o][F--]{z} \ar[d]\\ && \mu x && \mu y && \mu z\\ && *+<1cm>[o][F--]{m_s} \ar[ll]_{u_1}

/ ωxd


3.2. Diagramas conmutativos

130

\ar@{-->}[rr]^{ \psi_3 (\cdot)m_s} \ar[d] && *+<1cm>[o][F--] {m_i}\ar@{->}@/_/[uull] \ar[d] && \\ && \epsilon m_s && (\epsilon - u_1)m_i &&\\ && *+<1cm>[o][F--] {p} \ar@{->}@/^1cm/[uu]^{\psi_4(\cdot)p} \ar[d] && *+<1cm>[o][F--] {l} \ar [ll]_{\psi_3(\cdot)l}\ar[d] && *+<1cm>[o][F--] {h} \ar [ll]_{\psi_6(\cdot)h}\ar[d]\\ &&\epsilon_p p && (\epsilon_l + \beta x_d)l && \epsilon_h h\\ && \xi l x_d \ar[rr] && *+<1cm>[o][F--] {x_d}\ar[rr]\ar@{-->}@/^1cm/[uu] && \omega x_d} \end{equation*}

3.2 Diagramas conmutativos Ejemplo 3.17

XO

f

/Y

Ď•

X/R o

Ďˆ fÂŻ

Y /Q

\begin{equation*} \xymatrix{ X \ar[r]^f & Y \ar[d]^\psi \\ X/R \ar[u]^\varphi & Y/Q \ar[l]_{\bar{f}}} \end{equation*} Ejemplo 3.18


3. Conceptos Generales de XY- pic

XO Ď•

O

O

131

/Y

f

O

Ďˆ

X/R ks

fÂŻ

Y /Q

\begin{equation*} \xymatrix{ X \ar[r]|{f} & Y \ar@{=>}[d]^\psi \\ X/R \ar@{~>}[u]^\varphi & Y/Q \ar@{:>}[l]|{\bar{f}}} \end{equation*} Ejemplo 3.19 Ď• AO o/ o/ /o / B fÂŻ

C

~~ ~~ ~ ~~~ f

\begin{equation*} \xymatrix{ A \ar@{~>}[r]^\varphi & B \ar[ld]^{f}\\ C \ar@{.>}[u]^{\bar{f}}} \end{equation*} Ejemplo 3.20

A @PPP

B

@@ PPP @@ PPP @@ PPP PP'

C

D

\begin{equation*} \xymatrix {A \ar [d] \ar [dr] \ar [drr] &&\\ B & C & D } \end{equation*}


3.2. Diagramas conmutativos

132 Ejemplo 3.21

/B @@ @@ @@

A@

D

C

\begin{equation*} \xymatrix {A \ar [d] \ar [dr] \ar [r] & B\\ D & C } \end{equation*} Ejemplo 3.22

a

b

c

d

\begin{equation*} \xymatrix { a & b\\ c & d} \end{equation*} Ejemplo 3.23

A

f1

/

B

f2

/

C

\begin{equation*} \xymatrix{ * + < 1cm > [F-]{A} \ar [r]^{f_1} & * + < 1cm > [F-]{B}\ar[r]^{f_2} & * + < 1cm > [F-] {C}} \end{equation*} Ejemplo 3.24


3. Conceptos Generales de XY- pic

xex

2

/

133

/ 1 ex2 + C 2

R

\begin{equation*} \xymatrix { xe^{x^2} \ar [r] & * + <1cm > [F-] {\int} \ar [r] & \frac {1}{2} e^{x^2} + C & & &} \end{equation*} Ejemplo 3.25

/

A

f1

/

f2

B

/

C

/

\begin{equation*} \xymatrix{ \ar [r] & * + < 1cm > [F-]{A} \ar [r]^{f_1} & * + < 1cm> [F-]{B}\ar[r]^{f_2} & * + < 1cm > [F-] {C} \ar [r] &} \end{equation*} Ejemplo 3.26

/

(ζ + ϑ)

Pn

ix i=1 e

\begin{equation*} \xymatrix{ \ar [r] & * + < 3cm > [F-]{(\zeta + \vartheta )\sum_{i=1}^n e^{ix}} \ar [r] &} \end{equation*}

/


3.2. Diagramas conmutativos

134 Ejemplo 3.27

XYZ[ _^]\ A

_ _ _ _ / C _ _ _ _

7654 / 0123 B

\begin{equation*} \xymatrix {*+<1cm>[o][F]{A} \ar [r] & *+[o][F]{B} \ar [r] & *+<1cm>[F--]{C}} \end{equation*} Ejemplo 3.28

β

ζ

8ρ ppp p p pp ppp p p ppp χ

Υ

\begin{equation*} \xymatrix{ \beta & \Upsilon & \rho \\ \zeta \ar[rru] & \chi} \end{equation*} Ejemplo 3.29

A E

C n7 D >B nnn ~~ n n ~ nn ~~ nnn ~~ nnn F

\begin{equation*} \xymatrix{ A & B & C & D\\ E\ar[-1,1] & F \ar [-1,2] & G} \end{equation*} Ejemplo 3.30

G


3. Conceptos Generales de XY- pic

135

A

=B

C E

E

=F

/G

H

T

K

\begin{equation*} \xymatrix{ A\ar@ /^/[rrdd] && B\ar@/^/[rrdd] && C \\ E\ar@/_/[urr] && F \ar [rr] && G \\ H\ar@/_/[urr] && T\ar@/_/[rruu] && K } \end{equation*} Ejemplo 3.31

   A     A    A    A

+ •

B

+ • •

B 3B 3B

\begin{displaymath} \begin{cases} \xymatrix{A\ar@/^/[rr]^(0.2){\bullet} \xymatrix{A\ar@/^/[rr]^(0.4){\bullet} \xymatrix{A\ar@/_/[rr]^(0.6){\bullet} \xymatrix{A\ar@/_/[rr]^(0.8){\bullet} \end{cases} \end{displaymath} Ejemplo 3.32

&& && && &&

B} \\ B} \\ B} \\ B }


3.2. Diagramas conmutativos

136

•

1

3

2

4

XYZ[ _^]\ X

$

X Y

*

(

X Y Z W

X Y Z

\\begin{equation*} \xymatrix{*{\bullet} \ar@/^/[dr]!U|1 \ar@/^/[drr]!U|2 \ar@/^/[drrr]!U|3 \ar@/^/[drrrr]!U|4\\ &*+<1cm>[o][F]\txt{X} &*+[F]\txt {X\\ Y} &*+[F-]\txt{X\\ Y\\ Z } &*+[F.]\txt{X\\ Y\\ Z\\ W}} \end{equation*} Ejemplo 3.33

`abc gfed xn n

\begin{equation*} \xymatrix {*+<1cm>[o][F]{x_{n_{n}}}} \end{equation*} Ejemplo 3.34

A

/

B

/

C


3. Conceptos Generales de XY- pic

137

\begin{equation*} \xymatrix{*+<2cm>[F.]{A} \ar [r] & *+<2cm>[F=]{B} \ar [r] & *+<2cm>[F-,]{C} } \end{equation*} Ejemplo 3.35

x

Ďˆ1

Ďˆ2

y /

/

\begin{equation*} \xymatrix @=1cm {*+<1cm>[F-,]{x} \ar[r]^{\psi_1} & *+<1cm>[F-,] {y} \ar[r]^{\psi_2} & *+<1cm>[F-,]{z}} \end{equation*} Ejemplo 3.36 f

XYZ[ _^]\ A

- _^]\ XYZ[

B

O XYZ[ _^]\ D m

g

XYZ[ _^]\ C

\begin{equation*} \xymatrix{ *+<1cm>[o][F]{A} \ar @ /^/[r]^f & *+<1cm>[o][F]{B} \ar [d]\\ *+<1cm>[o][F]{D} \ar [u] & *+<1cm>[o][F]{C} \ar @ /^/[l]^g} \end{equation*} Ejemplo 3.37

z


3.2. Diagramas conmutativos

138

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

 z xy

,

ee

x1,2,...,n

x

,

1+

1+ 1+x x 1+ x1

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

\begin{equation*} \xymatrix {*+<5cm>[F--]{\begin{cases} x^{y^z}\quad,\quad e^{e^x}\\ x^{1,2,\ldots,n}\quad , \quad 1+ \frac {1+\frac {1+x}{x}}{1+\frac {1}{x}}\end{cases}}} \end{equation*} Ejemplo 3.38

1

O

/ o

1

1

_ −3 _ _/ O 1

1

1

1

O

O

1

−3 1 /

/

/

o

1

1

1

/ o

−3 1

1

_ −3 O _ _/

1 1

/ o

1 1

\begin{equation*} \xymatrix{\ar[r]^1 & \ar[d]^1 & \ar[l]_1 \ar[r]^1 & \ar[d]^1 & \ar[l]_1 \\ \ar[u]^1 \ar[d]_1 & \ar@{<--}[l]_{-3}


3. Conceptos Generales de XY- pic \ar[r]^1 & \ar@{-->}[u]^{-3} \ar@{-->}[d]^{-3} & \ar@{->}[l]_1 \ar@{-->}[r]^{-3} & \ar[u]_1 \ar[d]^1\\ \ar[r]_1 & \ar[u]^1 \ar[r]_1 & \ar[r]_1 & \ar[u]^1 & \ar[l]^1} \end{equation*} Ejemplo 3.39

p T NNNN NNN ppp p p NNN p p p p NNN x pp p & Y X NNN q q NNN q q q NNN qq qqq g f NNNN q q & xq

Z

\begin{equation*} \xymatrix{&& T \ar[rrd] \ar[lld] && \\ X \ar[rrd]_f && && Y \ar[lld]^g \\ && Z &&} \end{equation*}

139


140

3.2. Diagramas conmutativos


BIBLIOGRAFÍA

[1] Abell, Martha L., and Braselton, James P. Maple V by example, Academic Press (1999). [2] Bautista, T., Oetiker T., Partl H., Hyna I. and Schlegl E. Una descripción de LATEX. Manual del Centro de Microelectrónica Aplicada de la Universidad de las Palmas de G. C. (1998). [3] file://D:/Mis Documentos /NeoZero Apuntes sobre LaTEX.htm [4] Grätzer G. Math into LATEX - An intrduction to LATEX y AMS - LATEX, Birkhäuser Boston (1996). [5] Kristoffer H. Rose. The XY- pic home URL:http://www.ens-lyon.fr/Xy - pic.html

page,

(1994)

[6] Lamport L. LATEX, Addison - Wesley Publishing Company (1994). [7] Rolf Niepraschk. The eso - pic package,(2002). [8] Rotman J. J. An introduction to algebraic topology. Springer Verlag (1988). [9] Ves de E., Benavent X., Gutierrez J. LATEX Avanzado - Uso de paquetes especiales, Departamento de matemática Universidad de Valencia, España (2006). 141


142

BIBLIOGRAFÍA

[10] http://www.lobachevsky.com/nikolai1.jpg [11] DE CASTRO, Rodrigo. El Universo LATEX, Panamericana de formas impresas, 2003. [12] ROSE, Kristofer. XY-pic User’s Guide, User’s Guide Version 3.7, February 16, 1999. [13] VAN ZANDT, Timothy. PSTricks: PostScript macros for Generic TEX, User’s Guide, 1993. [14] VAN ZANDT, Timothy. PSTricks - PostScript macros for Generic TEX. http://www.tug.org/application/PSTricks, 1993. [15] VOß, Herbert. Die mathematischen Funktionen von PostScript. Die TEXnische Komodie, 2002. [16] VOß, Herbert. Three dimensional plots with pst-3dplot, 2002. [17] VOß, Herbert. pstricks-add: additionals Macros for pstricks, 2006.


Diseño Gráfico en LATEX Gráficos Matemáticos de Alta Calidad

z

x

ISBN: 978-958-44-2285-9 Armenia Quindío Colombia 2007 Derechos Reservados©

y


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.