Dise No Graf i Coen Latex

144
x  y z αϕ 1 (·) µN βϕ 2 (·) x  y  x  − u 1  y − u 1 S I R λϕ 3 (·) λ r ϕ 4 (·) x r  y r θ β r ϕ 5 (·)  r y r r x r f αψ 1 (·)m + α r ψ 1 (·)m r µS µI µR Diseño Gráfico en L A T E X Gráficos Ma temá ticos de Al t a Calidad Efraín Alber to Hoyos Salcedo Aníbal Muñoz Loaiza Jor ge Mario García Usuga

Transcript of Dise No Graf i Coen Latex

  • x y

    z

    1()

    N

    2()x y

    x u1 y u1

    S I R3()

    r4()

    xr

    yr

    r5()

    ry

    rrxr

    f1()m+ r1()mr

    S I R

    Diseo Grfico en LATEX

    Grficos Matemticos de Alta Calidad

    Efran Alberto Hoyos Salcedo

    Anbal Muoz Loaiza

    Jorge Mario Garca Usuga

  • Diseo grfico en LATEX

    Jorge Mario Garca Usuga

    14 de diciembre de 2007

  • J. M. Garca, A. Muoz L. E. A. Hoyos

    Diseo Grfico en LATEXGrficos Matemticos de Alta Calidad

    No est permitida la reproduccin total o parcial de esta obra porcualquier medio o mtodo sin autorizacin escrita de los autores.

    Derechos ReservadosArmenia Quindo Colombia 2007

    ISBN: 978-958-44-2285-9

  • PREFACIO

    Para muchos usuarios de LATEX , se hace imprescindible la inclusinde material grfico dentro de sus documentos matemticos. General-mente, el tema es algo desagradable para las personas que estn dandosus primeros pasos en LATEX , pues se deben tener archivos separadosdel documento fuente para su posterior compilacin. Hasta hace al-gunos aos se empezaron a implementar paquetes con la capacidadde hacer grficos matemticos y no matemticos dentro de nuestrosdocumentos TEX , esto se logr con paquetes como PSTricks y XY-picentre otros, los cuales permitieron crear grficos a partir de cdigostipo TeX.

    Grficos matemticos como los ejes coordenados, diagramas de flujo,diagramas conmutativos, grfico de curvas en R2 y R3 entre otros, seincluan en LATEX , hacindolos en otros programas y luego exportn-dolos a un formato compatible como ps o bmp. Esto produca unaincompatibilidad entre los tipos de letra usados por el software parahacer las graficas y las fuentes usadas por LaTeX. Paquetes comoPSTricks yXY-pic presentan una forma muy matemtica"para realizareste tipo de dibujos y producir artculos, libros y dems produccinescrita, con grficos de excelente calidad. Como ejemplo del poder dedichos paquetes, se presenta la portada de este libro, la cual se hizoenteramente con PSTricks y XY-pic.

    3

  • 4El libro est dividido en tres captulos. El primero hace una extensarevisin del paquete PSTricks, incluyendo ejemplos con su respectivocdigo fuente. El segundo muestra dos herramientas muy tiles paraaquellas personas que no gustan de la programacin en LATEX y elltimo captulo, es una recopilacin de ejemplos hechos con XY-pic,orientados a la construccin de diagramas de dinmicas ecolgicas yepidemiolgicas. El libro est dirigido a usuarios avanzados de LATEX ,pues, en los ejemplos se usan macros e instrucciones que se asume elusuario ya debe conocer. Si el lector no tiene conocimiento de dichasinstrucciones refirase a los documentos [11],[12],[9] y [6].

    Esperamos que este material sirva de apoyo a docentes, alumnos yTEX-ncratas que gusten de grficos matemticos de alta calidad ensus documentos.

  • NDICE GENERAL

    1. Grficos con PSTricks 91.1. El entorno . . . . . . . . . . . . . . . . . . . . . . . . . 101.2. Puntos . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.3. Lneas y polgonos . . . . . . . . . . . . . . . . . . . . 15

    1.3.1. Rectas simples . . . . . . . . . . . . . . . . . . 151.3.1.1. Flechas . . . . . . . . . . . . . . . . . 16

    1.3.2. Rectas con el comando qline . . . . . . . . . . 161.3.3. Polgonos . . . . . . . . . . . . . . . . . . . . . 171.3.4. Frames con \psframes . . . . . . . . . . . . . . 18

    1.4. Crculos, elipses y arcos . . . . . . . . . . . . . . . . . 181.4.1. Crculos . . . . . . . . . . . . . . . . . . . . . . 181.4.2. Seccin de crculo . . . . . . . . . . . . . . . . . 191.4.3. Elipses . . . . . . . . . . . . . . . . . . . . . . . 191.4.4. Arcos . . . . . . . . . . . . . . . . . . . . . . . 20

    1.5. Curvas . . . . . . . . . . . . . . . . . . . . . . . . . . . 211.5.1. Los comandos pscurve, psecurve y psccurve 22

    1.6. Manejo de Colores . . . . . . . . . . . . . . . . . . . . 241.6.1. Creacin de nuevos colores . . . . . . . . . . . . 241.6.2. Texturas . . . . . . . . . . . . . . . . . . . . . . 281.6.3. Degradados . . . . . . . . . . . . . . . . . . . . 30

    1.7. Manejo de objetos . . . . . . . . . . . . . . . . . . . . 32

    5

  • 6 NDICE GENERAL

    1.7.1. El comando \rput . . . . . . . . . . . . . . . 331.7.2. Resortes . . . . . . . . . . . . . . . . . . . . . . 341.7.3. Ejes coordenados . . . . . . . . . . . . . . . . . 371.7.4. Grillas . . . . . . . . . . . . . . . . . . . . . . . 40

    1.8. Manejo de texto . . . . . . . . . . . . . . . . . . . . . 421.8.1. El comando \uput . . . . . . . . . . . . . . . . 421.8.2. Texto en recuadros . . . . . . . . . . . . . . . . 43

    1.8.2.1. Sombras . . . . . . . . . . . . . . . . . 441.8.3. Texto sobre curvas . . . . . . . . . . . . . . . . 441.8.4. Texto con efectos especiales . . . . . . . . . . . 46

    1.9. Trazado de curvas . . . . . . . . . . . . . . . . . . . . 471.9.1. Curvas a partir de su ecuacin . . . . . . . . . 481.9.2. Curvas Paramtricas . . . . . . . . . . . . . . . 501.9.3. Regiones sombreadas . . . . . . . . . . . . . . . 51

    1.10. Herramientas para rboles, grafos y diagramas . . . . . 541.10.1. Nodos . . . . . . . . . . . . . . . . . . . . . . . 541.10.2. Conectores . . . . . . . . . . . . . . . . . . . . 541.10.3. Etiquetas . . . . . . . . . . . . . . . . . . . . . 591.10.4. rboles . . . . . . . . . . . . . . . . . . . . . . 61

    1.10.4.1. Etiquetas para los nodos de los rboles 651.11. Manejo de objetos 3D con PSTricks . . . . . . . . . . . 66

    1.11.1. El paquete pst-3dplot . . . . . . . . . . . . . 671.11.2. El eje cordenado 3D . . . . . . . . . . . . . . . 671.11.3. Ubicacin de objetos con \pstThreeDPut . . . 691.11.4. Puntos . . . . . . . . . . . . . . . . . . . . . . . 691.11.5. Lneas rectas . . . . . . . . . . . . . . . . . . . 701.11.6. Tringulos . . . . . . . . . . . . . . . . . . . . . 711.11.7. Cuadros y rectngulos . . . . . . . . . . . . . . 721.11.8. Cajas . . . . . . . . . . . . . . . . . . . . . . . 731.11.9. Circunferencias y elipses . . . . . . . . . . . . . 741.11.10.Esferas . . . . . . . . . . . . . . . . . . . . . . . 761.11.11.Curvas paramntricas en 3D . . . . . . . . . . . 771.11.12.Grfica de funciones . . . . . . . . . . . . . . . 80

    2. Herramientas para grficos con PSTricks 872.1. JpicEdt . . . . . . . . . . . . . . . . . . . . . . . . . . 87

    2.1.1. Ventanas . . . . . . . . . . . . . . . . . . . . . 89

  • NDICE GENERAL 7

    2.1.2. Herramientas de edicin . . . . . . . . . . . . . 932.1.3. Preferencias y configuracin . . . . . . . . . . . 962.1.4. Otras herramientas de JpicEdt . . . . . . . . . 972.1.5. Cmo pasar de JpicEdt a LATEX? . . . . . . . 1022.1.6. Ejemplos en JpicEdt . . . . . . . . . . . . . . . 102

    2.2. LATEXDraw . . . . . . . . . . . . . . . . . . . . . . . . 1112.2.1. Herramientas de diseo . . . . . . . . . . . . . 1122.2.2. Configuracin de objetos . . . . . . . . . . . . 1142.2.3. Cmo pasar de LATEXDraw a LATEX? . . . . . 1142.2.4. Ejemplos en LATEXDraw . . . . . . . . . . . . . 114

    3. Conceptos Generales de XY- pic 1193.1. Diagramas de dinmicas ecolgicas y epidemiolgicas . 1203.2. Diagramas conmutativos . . . . . . . . . . . . . . . . . 130

  • 8 NDICE GENERAL

  • CAPTULO 1

    Grficos con PSTricks

    PSTricks es un paquete que esta incluido en LATEX con base en laslibreras macros de TEX- PostScript, fue creado por Timothy VanZandt de la Universidad de Princeton en 1993. Estas libreras soncompatibles con AMS-TEX y AMS-LATEX. El paquete fue diseadoespecficamente para grficos matemticos de alta calidad, utilizandotcnicas de grficos vectorizados, proporcionando as una calidad queotros paquetes no pueden alcanzar. Con PSTricks se pueden incluir es-tilos de lneas, objetos geomtricos como rectngulos, tringulos; ejescoordenados, herramientas para grficos de diagramas de flujo, grafos,mayas, objetos 3D, colores y efectos de texto, entre otros.

    La instalacin de PSTricks, es muy fcil, en la versin para WindowsMIKTEX 2.5 ya viene pre instalado y no requiere manipular archivospara su configuracin; para versiones inferiores, se debe tener cuida-do con la ubicacin de los archivos. PSTricks tambin est disponiblepara Linux, Mac y Unix.

    Empezaremos por poner las libreras en el prembulo de nuestro doc-umento

    \usepackage{pstricks}\usepackage{pst-plot}

    9

  • 10 1.1. El entorno

    Paquete Funcin

    Pst-plot til para grficos que conlleven rectas,polgonos, ejes y curvas

    Pst-char Permite incluir texto con efectos especialesPst-text Muy similar al anterior, pero este permite

    poner texto a lo largo de curvasPst-tree til para la contruccin de rbolesPst-coil Zig-zags y resortes en electrnicaPst-node Ideal para grafos y diagramas de flujo

    Cuadro 1.1: Mdulos de PSTricks

    Sin embargo, es bueno que para trabajar con todas las opciones, hayque usar un paquete que los una a todos, este se incluye de la siguientemanera:

    \usepackage{pst-all}

    PSTrick tambin incluye paquetes como pst-node especial para grafos,el cuadro 1.1 muestra los diferentes mdulos y su uso:

    1.1 El entorno

    Para incluir una grfica con PSTricks en nuestro documento, debemosinvocar el entorno pspicture con la siguiente secuencia de instruc-ciones:

    \begin{pspicture}(x,y)(x,y)\rput(0,0){hola}

    \end{pspicture}

    Los parmetros x, y y x, y son las esquinas opuestas de un rectnguloimaginario. Nuestra grfica se puede salir de dicho rectngulo, perousando \begin{pspicture*}(x,y)(x,y) se recorta todo lo que so-bre salga del rectngulo delimitado. El anterior cdigo nos devolverael siguiente resultado

  • 1. Grficos con PSTricks 11

    hola

    Nada del otro mundo, sin embargo, podemos disponer de una mallaque nos gue en la ubicacin de nuestros objetos en PSTricks, paraesto creamos un nuevo objeto de la siguiente manera y lo ubicamosantes del inicio del documento: \begin{document}.

    \newpsobject{malla}{psgrid}{subgriddiv=1,griddots=10,gridlabels=6pt}

    Esto nos permitir crear una malla til para la ubicacin de nu-estrosobjetos

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

    \end{pspicture}

    El resultado es el siguiente:

    -2 -1 0 1 2-2

    -1

    0

    1

    2

    hola

  • 12 1.2. Puntos

    El comando \rput se usa para ubicar objetos en el espacio delimitado,ms adelante estudiaremos la versatilidad de este comando. Por ahora,observemos que aparece una malla numerada alrededor de nuestragrfica, podemos ubicar ahora otros objetos con la ayuda de dichacuadrcula. Ubicaremos la palabra mundo en la posicin (1,1)

    -2 -1 0 1 2-2

    -1

    0

    1

    2

    hola

    mundo

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

    \malla

    \rput(0,0){hola}

    \rput(1,-1){mundo}

    \end{pspicture}

    Si deseo que la malla sea ms fina o por el contrario con la cuadric-ula ms grande, podemos cambiar dicho parmetro con la instruc-cin \psset{unit=1}, slo debemos cambiar el valor de 1 por el quenecesitemos y ubicar esta instruccin antes del \begin{pspicture}.\psset{unit=1} permite confugurar nuestro grfico. se ubica antesdel \begin{pspicture} y se pueden predeterminar algunas opcionescomo el color, la escala, el grosor de las lneas, etc.

    -2 -1 0 1 2-2

    -1

    0

    1

    2

    hola

    mundo

    \psset{unit=0.6}\begin{pspicture}(-2,-2)(2,2)

    \malla\rput(0,0){hola}\rput(1,-1){mundo}

    \end{pspicture}

    1.2 Puntos

    PSTricks permite la inclusin de puntos con el siguiente comando

    \psdots[par](x1,y1)(x2,y2)(xn,yn)

    El siguiente ejemplo colocaremos 9 puntos con estilos diferentes:

  • 1. Grficos con PSTricks 13

    0 1 2 3 4 5 6 7 8 90

    1

    b + ut u rs r qp q |

    \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 mostra-dos en el ejemplo anterior. Adems de estos estilos de puntos podemosadicionar algunas otras opciones.

    dotsize=dimCon esta opcin podemos cambiar el tamao del punto, por defectoes 2pt

    dotscale=num1 num2Con ella podemos escalar el tamao de un punto, con el primer nmeroel tamao horizontal y con el segundo el tamao vertical. Por defectoes 1

    dotangle=angleLos puntos son rotados por el ngulo determinado por el parmetroangle, por omisin es cero.

    En muchas ocasiones es importante ubicar puntos en nuestras grficas,el siguiente ejemplo muestra la utilidad de estas opciones:

  • 14 1.2. Puntos

    Estilo Ejemplo

    *b b

    + + +

    | | |

    triangleut ut

    triangle*u u

    squarers rs

    square*r r

    pentagonqp qp

    pentagon*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}

    b

    0 1 2 3 40

    1

    2

    3

    4

    b

    ut

    q

  • 1. Grficos con PSTricks 15

    1.3 Lneas y polgonos

    Las lneas y los polgonos son una de las herramientas ms versatilesen PSTricks. Con los puntos y las rectas se pueden crear una granvariedad de figuras y formas muy comunes en matemticas como: ejescoordenados, digramas lineales, rboles, etc. A continuacin presenta-mos su configuracin bsica.

    1.3.1. Rectas simples

    \psline[par]{flechas}(x0,y0)(x1,y1)...(xn,yn)

    Esta instruccion dibuja una linea a travz de las coordenas establecidaspor los puntos (x0, y0)(x1, y1) . . . (xn, yn)La instruccin \psline tiene los siguientes parametros:

    linearc=dimPor omisin es 0pt y hace referencia al arco con el que se dibujan lascurvas (si estamos dibujando un polgono). Dicha dimensin debe serpositiva.

    linewidth=nCon esta opcin podemos cambiar el ancho de la lnea, se puede ini-cializar en cero. Por defecto es 0.8pt

    linestyle=La opcin permite cambiar la forma como se pinta la lnea, esta puedeser solid que es la opcin por defecto, dashed ofrece una lnea a tro-zos y dotted una lnea punteada.

    dash= n bPermite cambiar el patrn de negro o blanco en la lnea a trozos poromisin son 5pt y 3pt. Si queremos una lnea igualemte espaciadapodemos cambiar la opcin a 5pt 5pt para obtener el efecto deseado.

    dotsep= nAl igual que en dash, dotsep permite cambiar el patrn de separacin

  • 16 1.3. Lneas y polgonos

    de los puntos en las lneas punteadas. Por omisin es 3pt

    linecolor= colorPermite cambiar el color de la lnea, por omisin es black, en la sec-cin 1.6 mostraremos otros colores posibles con PSTricks.

    doubleline= nPermite trazar una lnea doble o sencilla, por defecto es false, es decirsencilla, si la queremos doble cambiamos n por true.

    Veamos el siguiente ejemplo:

    0 1 2 3 40

    1

    2

    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}

    1.3.1.1. Flechas

    Las opciones de flechas se pueden implementar para construir ejes co-ordenados o diagramas de flujo, rboles, etc, para este propsito cam-biamos el prametro entre las llaves {}, a continuacin en el cuadro1.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 parmetros degrosor, estilos o flechas, veamos el siguiente ejemplo:

  • 1. Grficos con PSTricks 17

    Parmetro Ejemplo Parmetro Ejemplo

    -> >

    >>-- ->-

  • 22 1.5. Curvas

    0 1 2 3 40

    1

    2

    3

    b

    b

    b

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

    La intruccin \parabola presenta la siguiente sintaxis:

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

    Dibuja una parbola que comienza en el punto (x0, y0) y tiene comomximo o mnimo el punto (x1, y1) dependiendo si el ultimo puntoesta por encima o por debajo del primer punto.

    Ejemplo:

    0 1 2 3 40

    1

    2

    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}

    1.5.1. Los comandos pscurve, psecurve y psccurve

    El comando psbezier y parabola slo pueden dibujar curvas simplescon no ms de 4 puntos determinados; con estas nuevas instruccionespodemos dibujar curvas mucho ms elaboradas y definidas, con la can-tidad de puntos que necesitemos, sin embargo, es necesario tener en

  • 1. Grficos con PSTricks 23

    cuenta las siguientes opciones:

    curvature= n m p

    Por defecto este parmetro es de 1 0.1 0, y se utiliza para modificarla forma de la curva, el primer valor hace la curva ms firme. El se-gundo parmetro hace que la curva se apriete si el ngulo formadopor los puntos es mayor a 45 grados, la curva es ms suelta. El tercerparmetro es similar al segundo, pero afecta la abertura de la curvahaciendola ms o menos abierta en los vrtices. Sin embargo es buenodejar los valores predeterminados por PSTricks.

    La instruccin pscurve genera una curva abierta con los mismos parmet-ros estudiados anteriormente. La opcin showpoints muestra los puntosde interpolacin.

    0 1 2 3 40

    1

    2

    3

    b

    b 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}

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

    0 1 2 3 40

    1

    2

    3b

    \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}

  • 24 1.6. Manejo de Colores

    Por ltimo tenemos psccurve la cual es similar a pscurve pero stagenera una curva cerrada uniendo el primer y ltimo punto:

    0 1 2 3 40

    1

    2

    3

    b

    b

    b

    b

    \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}

    1.6 Manejo de Colores

    En PStricks se puede trabajar con los siguientes colores:

    red green blue

    cyan magenta yellowPSTricks tambin maneja colores en escala de grises:

    Negro (black), gris oscuro (darkgray), gris (gray), gris claro (lightgray),y blanco (white)

    1.6.1. Creacin de nuevos colores

    Adems de estos colores podemos definir nuevos con las siguientes in-strucciones: newgray y newrgbcolor

  • 1. Grficos con PSTricks 25

    \newgray{color}{n}

    Este comando se utiliza para generar nuevos tonos de gris, color serel nombre de nuestro nuevo color, n es la intensidad entre 0 y 1, donde0 es negro y blanco es 1.

    \newrgbcolor{color}{r g b}

    Esta instruccin se usa para generar nuevos coleres con el formatoRGB (red, green y azul), color ser el nombre de nuestro nuevo colory {r,g,b} son nmeros entre 0 y 1.

    newhsbcolor

    \newhsbcolor{color}{h s b}

    La anterior instruccin se usa para generar nuevos colores con el for-mato HSB (hue, saturation, brightness), {color} ser el nombre denuestro nuevo color y {h,s,b} son nmeros entre 0 y 1.

    newcmykcolor

    \newcmykcolor{color}{c m y k}

    Esta instruccin se usa para generar nuevos colores con el formatoCMYK (Cian, magenta, yellow, black), {color}ser el nombre de nue-stro nuevo color y {c,m,y,k} son nmeros entre 0 y 1.

    Ejemplo:

  • 26 1.6. Manejo de Colores

    0 1 2 3 4 5 6 7 8-3

    -2

    -1

    0

    1

    2

    3

    Favoritismo en los editores de texto

    LATEX Word

    Otros

    \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. Grficos con PSTricks 27

    ores cmyk y HSB, pues en algunas ocasiones requiere de otros con-troladores y puede generar errores al compilar. Se recomienda hacerRGB para generar nuevos colores.

    Recordemos que con el comando \psset{...} podemos configuraropciones de color y con el comando fillcolor podemos indicar quetodos los objetos creados de ah en adelante sean dibujados con esecolor de relleno, la opcin linecolor sirve para definir el color de laslineas de contorno. Veamos el siguiente ejemplo:

    0 1 20

    1

    2

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

    Podemos ver en el ejemplo anterior que la elipse, aunque est pintadade contorno azul, no se rellen de color amarillo, as que para ello,debemos tener en cuenta los siguientes parmetros:

    linewidth=nCon este determinamos el ancho de la lnea de cualquier objeto (lneas,crculos, etc), por defecto es 8pt.

    fillstyle=sEste comando permite definir el estilo de llenado de los objetos, estepuede ser none, el cual hace que el objeto no tenga ningn relleno. Laopcin solid, permite que se pueda rellenar un objeto bien sea conun 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:

  • 28 1.6. Manejo de Colores

    0 1 2 30

    1

    2

    3

    4

    5

    \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}

    1.6.2. Texturas

    Recordemos que fillstyle=s con la opcin solid puede dibujar unobjeto con un relleno que puede ser un color o una textura, el cuadro1.4 muestra las opciones para rellenado con texturas

    Nombre efecto

    none Es el valor por defecto, no rellena el objetocon ningn color o textura

    vlines lneas verticales con una inclinacin de 45o

    hlines lneas horizontales con una inclinacin de45o

    crosshatch Lineas cruzadas verticales y horizontales a45o

    gradient Da al objeto una textura de degradado en-tre dos colores

    Cuadro 1.4: Texturas en PSTricks

    En el siguiente ejemplo se usan los mismos objetos que en el ejemploanterior, pero esta vez usaremos las texturas mencionadas, excepto elgradiente al cual dedicaremos ms tiempo:

  • 1. Grficos con PSTricks 29

    0 1 2 30

    1

    2

    3

    4

    5

    \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 tex-turas, como cambiar el ngulo de inclinacin, el color de las lneas, etc.

    Nombre efecto

    hatchsep Separacin entre lneas, por defecto es 4pthatchwidth Grosor de las lneas, por defecto es 0.8pthatchcolor Color de las lneas, por defecto es negrohatchangle Inclinacin de las lneas

    Cuadro 1.5: Parmetros adicionales para texturas

    Veamos el siguiente ejemplo:

    0 1 2 30

    1

    2

    3

    \psset{unit=1.0}

    \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}

  • 30 1.6. Manejo de Colores

    1.6.3. Degradados

    Uno de los efectos ms vistosos y usados de PSTricks es el degradado,slo necesitamos poner fillstyle=gradient y podemos obtener unefecto de degradado lineal en dos colores:

    0 1 2 30

    1

    2

    3

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

    Las siguientes opciones determinan la configuracin del degradado:

    gradbegin=colorEs usada para escoger el color inicial del degradado, por defecto esazul oscuro.

    gradend=colorEs usada para escoger el color final del degradado, por defecto es azulclaro.

    gradmidpoint=nn debe ser un nmero entre 0 y 1, y se utiliza para escoger la posicindel punto intermedio del degradado.

    gradangle=angDenota el lgulo de rotacin para el degradado medido en grados, elvalor por defecto es 0.

    gradlines=nDetermina el nmero de lneas del degradado, el valor predeterminadoes 500, mientras ms lneas ms fino es el efecto del degradado.

  • 1. Grficos con PSTricks 31

    El siguiente ejemplo muestra el poder de los degrados para grficosmatemticos:

    Mquinas

    Nivel de

    M1 M2 M3 M4

    N1

    N2

    N3

    N4

    \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]{Mquinas}}\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 danatributos por defecto a los objetos que vamos a dibujar, por ejemplo:

    \pscircle*[linestyle=dashed](1.5,1.5){1}

    Como podemos ver aparece un * despus de invocar el comado \pscircle,con esto le indicamos al compilador de LATEX que rellene el objetocon el color determinado por linecolor, linewidth toma el valor de0, fillstyle toma el valor de solid, linestyle el valor de none yfillcolor toma el valor determinado por linecolor. Debemos tenerespecial cuidado en configurar los valores anteriormente mencionadossi queremos usar los comandos estrella, pues, pueden producir unagrfica no deseada.

    1.7 Manejo de objetos

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

  • 1. Grficos con PSTricks 33

    hemos creado a partir de un nuevo comando. En esta seccin estudi-aremos ms a fondo el uso de estas herramientas:

    1.7.1. El comando \rput

    Ya hemos tenido algn contacto con este comando, pues lo hemos apli-cado en ejemplos anteriores. Veamos sus parmetros completos:

    \rput[P]{Ang}(x,y){Obj}

    El comando ubica un objeto obj que puede ser un texto una tabla ouna grfica en un punto (x, y), con el argumento P podemos cambiarla posicin 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 posicin(x, y). Adems de [c] existen otros valores con los que podemos hacerque los objetos no aparezcan en el centro, el siguiente grfico ilustralos dems valores:

    c

    tr

    brbb

    l r

    ttl

    Objeto

    Caja imaginaria

    Es fcil ver de donde vienen los dems valores (left, top, etc). Elparmetro ang determina el ngulo de rotacin del objeto y se mide engrados sexagesimales entre -360 y 360, sin embargo, se pueden abre-viar algunos ngulos especiales, como los de 90, 180, etc, el cuadro 1.6muestra las abreviaciones:

    Veamos el siguiente ejemplo:

  • 34 1.7. Manejo de objetos

    ngulo letra

    N 0o

    L 90o

    D 180o

    R 270o

    W 90oS 180oE 270o

    Cuadro 1.6: ngulos espciales

    Recta Tangente

    Recta Secante

    Dimetro

    \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){Dimetro}\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. Grficos con PSTricks 35

    \pscoil[par]{flechas}(x1,y1)(x2,y2)

    El cual extiende un resorte del punto (x1, y1) hasta (x2, y2). El sigu-iente comando permite hacer el efecto de zig-zags con los mismosparametros:

    \pszigzag[par]{flechas}(x1,y1)(x2,y2)

    Para configurar la apariencia de los resortes y zig-zags se tiene las op-ciones mostradas en el cuadro 1.7.

    Parmetro Efecto

    coilwidth=n Ampla o reduce el ancho del resorte o zig-zag, por defecto es 1cm.

    coilheight=h Con h > 0 esta opcin determina elnmero de repeticiones del zig-zag o re-sorte. Mientras ms pequeo sea este valorms repeticiones se harn.

    coilArmA=n Representa la longitud del brazo que esten el punto (x1, y1) del resorte.

    coilArmB=n Es la longitud del brazo que est en el pun-to (x2, y2) del resorte.

    coilArm=n Provoca que coilArmB y coilArmA tenganel mismo valor.

    coilaspect=ang Cambia el ngulo con que se dibujan losresortes, por defecto es 45 pero se puedemodificar 0 ang < 90, este parmetrono afecta a los zig-zags.

    coilinc=ang Por defecto es 10, y determina la suavidadcon que se dibujan los resortes, no afectaa los zig-zags.

    Cuadro 1.7: Parmetros de los resortes y zig-zags

    Este ejemplo muestra la versatilidad de ambos comandos:

  • 36 1.7. Manejo de objetos

    b

    B1

    R1

    l1

    l2

    M1

    m1

    r1

    \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. Grficos con PSTricks 37

    1.7.3. Ejes coordenados

    Los ejes coordenados son uno de los objetos ms utilizados en la com-posicin de textos matemticos, PSTricks tiene una herramienta lla-mada psaxes, con la cual podemos dibujar casi cualquier tipo de ejecordenado, veamos la sintaxis:

    psaxes[par]{flechas}(x0,y0)(x1,y1)(x2,y2)

    Lo anterior, permite que se dibuje un eje coordenado entre el rectn-gulo con vrtices opuestos (x1, y1) y (x2, y2) y el origen del sistemaest en (x0, y0). El comando psaxes tiene los siguientes parmetros(cuadro 1.8)

    Parmetro Efecto

    labels= all es el valor por defecto y provoca que se ponganlas etiquetas de los ejes x y y, x/y dibuja la eti-queta para el correspondiente eje y none no dibujaninguna etiqueta.

    showorigin= false/true Con esta opcin podemos hacer queaparezca o no el origen de los ejes .

    axesstyle= Por defecto es axes y hace que el eje se dibujecon las dos lneas rectas usuales, frame dibuja unframe o rectngulo y none no dibuja los ejes.

    Ox= y Oy= Determina el nmero donde comienzan a numer-arse los ejes, por defecto es 0.

    Dx= y Dy= Representa el incremento entre etiquetas, por de-fecto es 1.

    dx= y dy= determina la distancia entre las marcas (ticks).

    Cuadro 1.8: Parmetros de los ejes

    Ejemplo:

  • 38 1.7. Manejo de objetos

    0 1 2 3 4 5 6 7 8 9

    1

    2

    3

    f(x)

    \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(lneas que acompaan a las etiquetas de los ejes).

    Ejemplo:

  • 1. Grficos con PSTricks 39

    Parmetro Efecto

    ticks= Por defecto es all y sirve para mostrar las lineasque acompaan a los nmeros en los ejes, si quer-emos que aparesca solo los del eje x o y utilizamosla opcin x/y,con none se eliminan de ambos ejes.

    tickstyle= Este parmetro determina la ubicacin de laslneas que acompaan a las etiquetas de los ejes.full es el valor por defecto y hace que estas lneasse extiendan por ambos lados de los ejes, bottonhace la misma accin al lado donde estan las eti-quetas, y top lo hace al lado opuesto.

    ticksize=n Determina la longitud de las marcas, por defectoes 3pt.

    Cuadro 1.9: Parmetros de los ticks

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

    -2

    -1

    0

    1

    2

    3

    1 212

    1

    2

    1

    2

    \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:

  • 40 1.7. Manejo de objetos

    0 1,5 3,0 4,5 6,0 7,5 9,00

    0,51,0

    1,52,02,5

    3,03,54,0

    4,5

    \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 seccin 1.9.1 estudiaremos la funcin \psplot.

    1.7.4. Grillas

    Las grillas o mallas son un complemento ideal para trabajar con losejes coordenados, inclusive pueden hacer las veces de ste si asi se re-quiere, su sintxis es la siguiente:

    \psgrid[par](x1,y1)(x2,y2)

    La ejecucin del comando anterior produce una malla en el rectn-gulo con extremos (x1, y1) y (x2, y2), si no ubicamos estas coorde-nas, \psgrid ubicara una malla en las coordenadas establecidas por\begin{pspicture}(x1,y1)(x2,y2) . El cuadro 1.10 muestra los difer-entes parmetros para configurarla:

  • 1. Grficos con PSTricks 41

    Parmetro Efecto

    gridwidth= n Determina el ancho de las lneas principales dela grilla, por defecto es 0.8pt.

    subgridwidth= n Igual al anterior pero con las lneas secundarias

    gridcolor= color Es el color de las lneas principales, por defectoes black.

    subgridcolor= color Color de las lneas secundarias, por defecto esgray.

    gridlabels=n Tamao de los nmeros que enmarcan la grilla,por defecto es 10 pt.

    gridlabelcolor = color Color de los nmeros que enmarcan la grilla,por defecto es black.

    griddots=n Las lneas principales son punteadas con n pun-tos por unidad y n > 0.

    sub griddots=n Igual al anterior pero con la grilla segundaria yn > 0.

    Cuadro 1.10: Parmetros de \psgrid

    Ejemplo:

    0 1 20

    1

    2

    -2 -1 0 1 2

    -1

    0

    1

    2

    3

    \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)}

  • 42 1.8. Manejo de texto

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

    1.8 Manejo de texto

    El texto es una parte fundamental en la elaboracin de documentosmatemticos, PSTricks posee herramientas para la inclusin de textocientfico en nuestros libros o arctculos, ya hemos visto que lo pode-mos hacer con el comando \rput, sin embargo es posible hacer muchosotros efectos que se pueden utilizar en presentaciones o ecuaciones muyelaboradas.

    1.8.1. El comando \uputCon este comando podemos ubicar etiquetas en nuestros grficos, tienela siguiente sintxis:

    \uput{s}[r]{ang}(x,y){objeto}

    El parmetro s hace que la etiqueta aparezca separada del punto (x, y)una distancia determinada, por defecto es 5pt. La opcin r determinael ngulo de la etiqueta.

    Ejemplo:

    0 1 2 3 40

    1

    2

    3

    4

    3

    2

    112

    11

    10

    9

    8

    76

    5

    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. Grficos con PSTricks 43

    \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)

    (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}

    1.8.2. Texto en recuadros

    Estos comandos son independientes de PSTricks, as mismo se puedenusar en otros contextos. Su tamao depende de la cantidad de textoque se les aplique. La sintxis es la siguiente y es igual para todas:

    \psframebox[par]{texto}

    Las opciones par son las que estudiamos en las secciones anteriores ytexto es lo que deseamos enmarcar. El ejemplo siguiente mostrar lasintaxis y el resultado obtenido:

    0 1 2 3 4 5 6 70

    1

    2

    3

    4

    \psframebox

    \psdblframebox

    \pstribox

    \psdiabox

    \pscirclebox

    \psovalbox

    \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}}

  • 44 1.8. Manejo de texto

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

    1.8.2.1. Sombras

    En realidad cualquier figura cerrada de PSTricks puede generar som-bra, como los polgonos cerrados, los crculos, las cajas de texto, etc.Para ubicar este efecto slo se usa el parmetro shadows=true/false,el cual, por defecto es false .

    Otro parmetro que se usa es el shadowsize=n, el cual cambia eltamao de la sombra y por defecto es 3pt. shadowangle=ang se usapara ubicar el ngulo de la sombra, por defecto es -45, pero se puedeusar entre -360 y 360 grados. Por ltimo est shadowcolor=color elcual se usa para poner color a la sombra que por defecto es darkgray.

    0 1 20

    1

    2

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

    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}

    1.8.3. Texto sobre curvas

    Para aplicar este efecto usamos la instruccin:

    \pstextpath[pos]{curva}{texto}

  • 1. Grficos con PSTricks 45

    El argumento pos puede tomar los siguientes valores: l para ubicarel texto a la izquierda de la curva, [c] para ubicarlo al centro, y porltimo [r] para ubicarlo a la derecha. Se puede usar cualquier curvade PSTricks (circunferencia, polgonos, rectas, etc), para el parmetrocurva.

    Ejemplo.

    0 1 2 3 40

    1

    2

    3

    4

    Uni

    versidad

    DelQuindo

    Ser

    libres

    para conocer

    yconocer para se

    r l

    ibre

    s

    \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 Quindo}\pstextpath[c]{\psarcn[linestyle=none](2,2){3.7cm}{180}{0}}{\Huge \blue \bfSer libres para conocer}\pstextpath[c]{\psarc[linestyle=none](2,2){3.7cm}{180}{0}}{\Huge \blue \bf y conocer para ser libres}

  • 46 1.8. Manejo de texto

    \end{pspicture}

    Ejemplo:

    0 1 2 3 4 5 60

    1

    2

    Esta es la hermosa

    funcin sin(x)

    \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 funcin $\sin (x)$}\end{pspicture}

    1.8.4. Texto con efectos especiales

    Como ya hemos visto podemos agregar color, tamao y forma al texto,ahora con la instruccin pscharpath agregaremos efectos en el con-torno del texto:

    \pscharpath[par]{texto}

    Ejemplo:

    \pscharpath[linestyle=dashed]{ \Huge Universidad del Quindo}

    \pscharpath[linestyle=none, fillstyle=gradient]{ \Huge Universidad del Quindo}

  • 1. Grficos con PSTricks 47

    1.9 Trazado de curvas

    En la seccin 1.5.1 trazamos curvas con los comandos pscurve, pse-curve, psccurve, sin embargo, podemos tener algunas limitantes dadoque la curva resultante no necesariamente es la que debera pasar porlos puntos indicados. Para ello, PSTricks dise las siguientes fun-ciones especializadas en la interpolacin de puntos:

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

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

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

    \dataplot[par]{\fun}

    Con la opcin \fun le asignamos cualquier nombre a la lista de puntos,siempre que no sea un comando LATEX. La funcin readdata haceel mismo efecto que savedata, pero sta lo puede leer de un archivo.Si observamos, la grfica no es exacta, debido a que slo usamos 10puntos, pero si utilizamos 100, nuestro grfica sera muy exacta peroconsumira ms recursos del sistema. Con este comando podemos car-gar los puntos desde un archivo y estos pueden ser tomados desde otroprograma como el Matematica.

    Ejemplo:

  • 48 1.9. Trazado de curvas

    0 1 2 3 4

    1

    2 f(x) = esin(x)

    \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. Curvas a partir de su ecuacin

    Para graficar una curva, lo ideal es tener los puntos a partir de laecuacin, para eso PSTricks implementa la siguiente funcin:

    \psplot[op]{x1}{x2}{fun}

    La cual grafica una curva con el dominio (x1, x2), la funcin fun debeentrarse en notacin sufija de PostScript, la cual mostraremos en elcuadro 1.11.

    Sin embargo, es necesario tener presente que siempre se debe usar lavariable x, las funciones seno y coseno slo aceptan grados sexages-imales. La funcin psplot slo admite computos simples, por lo queno podemos graficar funciones muy complejas. Se debe tener especial

  • 1. Grficos con PSTricks 49

    Sintxis Significado

    x neg xx y add x+ yx y sub x yx y mul x.yx y div x

    y

    x y exp xy

    x sqrtx

    x log log10 xx ln lnxx sin sinxx cos cos x

    Cuadro 1.11: Principales funciones de PostScript

    cuidado con las funciones que presenten asntotas, pues generan unerror (divisin por cero) y debemos sacarlas del dominio.

    Ejemplo:

    1 2 3 41234

    1

    2

    3

    4

    1234

    rf(x) = sin(100x)

    r f(x) = x+1x2+1

    r f(x) = ex

    r f(x) = 1x

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

  • 50 1.9. Trazado de curvas

    \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 Paramtricas

    El comando parametricplot es muy similar psplot, slo se requieredar un dominio y una funcin paramtrica.

    \parametrcplot[par]{t1}{t2}{x(t)y(t)}

    El parmetro par se usa para las opciones de lnea que ya hemos us-ado, (t1, t2) es el dominio de la funcin y las funciones x(t), y(t) lascuales se deben escribir con la sintaxis de PostScript, una seguida dela otra sin comas ni puntos. (vea el cuadro 1.11).

    Veamos los siguientes ejemplos:

  • 1. Grficos 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 mul2 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 tcos 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 tsin 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 disponede la funcin pscuston la cual nos permite dibujar una textura entredos curvas, que pueden ser psline, pscurve o psecurve, en realidadse puede hacer sobre cualquier tipo de curva, teniendo cuidado puesto

  • 52 1.9. Trazado de curvas

    que se pueden producir graves mensajes de error. Veamos la sintaxis:

    \pscuston[par]{curvas \fill[op]}La funcin rellena la regin limitada por las curvas con las opcionesde llenado implementadas en fill[par].veamos un ejemplo:

    0 1 2 3 4 5 60

    1

    2

    3

    4

    5

    \psset{unit=0.8}

    \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:

    0 1 2 3 4 50

    1

    2

    3

    4

    5

    6

    \psset{unit=0.6}

    \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}

    En el ejemplo anterior podemos observar los siguientes detalles:

  • 1. Grficos con PSTricks 53

    En primer lugar, los puntos de las curvas deben seguir unasecuencia, en este caso primero se ubica la lnea recta verti-cal \psline(1,0.1)(1,1.5), luego aparece la curva (que es lams importante); \pscurve(1,1.5)(2,2.5)(3,4)(4,6), poste-riormente la otra recta vertical; \psline(4,6)(4,0.5) y por l-timo la recta \psline(4,0.5)(0,0), que hace las veces de curvainferior, que en otros casos puede ser otra curva o el mismo ejex;

    Luego de dibujar la regin sombreada, podemos redibujar lascurvas e inclusive agregarles ms detalles, como por ejemplo hac-erlas ms largas o asignarles etiquetas.

    Ejemplo:

    0 1 2 3 41234

    2

    3

    4

    5

    6

    \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}

  • 54 1.10. Herramientas para rboles, grafos y diagramas

    1.10 Herramientas para rboles, grafos y dia-

    gramas

    PSTricks ofrece una variada gama de herramientas para crear grficostipo rboles y diagramas. Para realizar este tipo de grficos se handividido 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 Descripcin

    \pnode(x,y){nom} Con l ubicamos en la coordenada (x, y) unnodo y le asignamos un nombre con nom

    \dotnode[op](x,y){nom} Este nodo es similar al anterior, pero elnodo aparece con forma de punto y se leasigna un nombre con nom . Adems quese puede agregar opciones de puntos comolas vistas en la cuadro 1.2

    \cnode[op](x,y){r}{nom} En este caso, el nodo es de forma circularcon un radio r.

    \Cnode[op](x,y){nom} Es similar al anterior, pero el radio seestablece de antemano con el parmetro\psset{radius=...}.

    \rnode{nom}{texto} En este caso se dibuja un borde rectangu-lar invisible, y se tiene la posibilidad deagregar texto, que puede ser en modo nor-mal o modo matemtico. Este comando notiene el caracterstico punto (x, y), as quedebemos usar el comando \rput para ubi-carlo.

    Cuadro 1.12: Nodos de PSTricks

    La tabla 1.13 muestra otros tipos de nodos similares a rnode conformas geomtricas:

    1.10.2. Conectores

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

  • 1. Grficos con PSTricks 55

    Nodo Descripcin

    \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 bsica de un conector es la siguiente:

    \ncline[par]{flechas}{n1}{n2}

    Con los parmetros par podemos cambiar la forma del conector (lneaspunteadas, guiones, etc), el segundo parmetro es el tipo de flechas ylos dos ltimos son el nombre de los conectores, en este caso el conectorva de n1 a n2.

    0 1 2 3 4 5 60

    1

    2

    3

    4

    5

    Pt

    a1 a2

    \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{

  • 56 1.10. Herramientas para rboles, grafos y diagramas

    0 1 2 3 4 5 60

    1

    2

    3

    4

    5

    Pt

    a1

    a2

    \psset{unit=0.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}\ncdiagg[angleA=180,angleB=180,linearc=10pt]{->}{a1}{P1}\end{pspicture}

  • 1. Grficos con PSTricks 57

    Conectores \nccurve.Este conector traza curvas en forma de Bzier, se debe tener cuidadoen la posicin de los nodos, pues si estn ubicados muy cerca, la curvaparecer una recta.

    0 1 2 3 4 5 60

    1

    2

    3

    4

    5

    Pt

    a1

    a2

    \psset{unit=0.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}

    Conectores \ncbar.Este conector tiene la particularidad de que forma ngulos rectos entrelos conectores y los nodos, si es necesario se extienden los brazos delos conectores, adems el ngulo de llegada y el de salida son el mismoy se controlan con el parmetro angleA.

    0 1 2 3 4 5 60

    1

    2

    3

    4

    5

    Pt

    a1

    a2

    \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 ngulosrectos nicamente. Para controlar la forma, se usan los parmetrosarmA,armB,angleA,angleB y linearc.

  • 58 1.10. Herramientas para rboles, grafos y diagramas

    0 1 2 3 4 5 60

    1

    2

    3

    4

    5

    Pt

    a1

    a2

    \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 adicionalpara unir los nodos.

    0 1 2 3 40

    1

    2

    3

    a1

    a2

    \psset{unit=0.6}

    \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}

    Conectores \ncloop.Este conector es til para hacer loops en grafos, se puede cambiar elparmetro loopsize que por omisin es 1cm. Para este tipo de grficoes mejor usar nccircle.

    0 1 2 3 4 5 60

    1

    2

    3

    4

    5

    Pt

    a1

    a2

    \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. Grficos con PSTricks 59

    \nccurve[angleA=270,angleB=270]{}{a2}{a1}\nccurve[angleA=0,angleB=270]{}{a2}{P1}

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

    Conectores \nccircle.Adems de la sintaxis normal de los conectores, en el caso de \nccirclese debe adicionar un parmetro ms que corresponde al radio del loop.La separacin entre el arco y el borde del nodo se puede determinarpor el parmetro nodesepA.

    0 1 2 3 4 5 60

    1

    2

    3

    4

    5

    Pt

    a1

    a2

    \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$}}\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}

    1.10.3. Etiquetas

    Las etiquetas se le asignan a los conectores de los diagramas, debenubicarse despus de construir el conector, y se asume que el conectorva de izquierda a derecha.

    La tabla 1.14 muestra otros tipos de nodos similares a rnode con for-mas geomtricas:

    Aqu mostraremos los tipos de etiquetas y los parmetros opcionalescomo nrot . En el siguiente ejemplo ubicamos etiquetas con el parmetro\npos, que es un nmero entre 0 y 1 y determina donde aparece laetiqueta. El comando * provoca que la etiqueta borre los objetos queestn debajo de ella, en caso contrario, la etiqueta ser transparente.

  • 60 1.10. Herramientas para rboles, grafos y diagramas

    Etiqueta Descripcin

    \ncput[op]{etiqueta} La etiqueta va sobre la lnea delconector.

    \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 delconector. Se usa en conectores verti-cales.

    \tlput[op]{etiqueta} Igual a la anterior solo que la etiquetase ubica a la izquierda del conector.

    \tlput[op]{etiqueta} En este caso la etiqueta se ubica a laderecha del conector.

    Cuadro 1.14: Etiquetas para conectores en PSTricks

    0 1 2 3 4 5 60

    1

    2

    3

    4

    5

    Pt

    a1

    a2

    1

    2

    3

    \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 conel parmetro labelsep, la cual nos determina la separacin entre elconector y la etiqueta, por defecto es 0.5pt.

    0 1 2 3 4 5 60

    1

    2

    3

    4

    5

    Pt

    a1 a2

    \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. Grficos con PSTricks 61

    \naput[labelsep=0.3pt]{$\xi$}\ncbar[angleA=90]{->}{a1}{a2}\nbput{$\lambda$}

    \end{pspicture}

    Para el siguiente caso, usaremos la etiqueta \tvput con el parmetronrot, el cual determina la rotacin de la misma con un ngulo entre-360 y 360 grados sexagesimales, por defecto dicho parmetro es cero.

    0 1 2 3 4 5 60

    1

    2

    3

    4

    5

    Pta1

    a2

    incorrecto

    \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.

    0 1 2 3 4 5 60

    1

    2

    3

    4

    5

    P1

    a1 a2

    P2

    \psset{unit=0.6}\begin{pspicture}(0,0)(6,5)\malla\rput(1,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}

    1.10.4. rboles

    La sintaxis de un rbol es la siguiente:

    \pstree[par]{raiz}{ramas}

  • 62 1.10. Herramientas para rboles, grafos y diagramas

    Para implementar un grfico de rbol debemos tener en cuenta la ubi-cacin de la raz y las ramas, adems la forma de ubicar los conectores.El cuadro 1.15 ilustrar los tipos de nodos.

    Nodo Descripcin

    \Tp[op] Nodo invisible.

    \Tdot[op] Nodo en forma de punto.

    \Tf[op] Nodo en forma de cuadro.

    \Tfan[op] Nono invisible conectado a su nodo prede-cesor por una figura triangular.

    \Tc[op]{r} Nodo circular con radio r.

    \TC[op] Igual al anterior pero el radio se establecepor defecto con el parmetro radius en elpsset{...}. Por omisin 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 prede-cesor por una lnea invisible. Slo se puedeusar en las hojas del rbol no en su raz.

    Cuadro 1.15: Nodos para los rboles en PSTricks

    Para el manejo de rboles, se debe tener especial cuidado con la ubi-cacion de hojas y subarboles. Al implementarlos, nos damos cuentaque es fcil caer en erorres por la ubicacn incorrecta de los nodos.

    0 1 2 3 4 5 60

    1

    2

    3

    4

    5

    6

    h b

    \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{} }} }

  • 1. Grficos con PSTricks 63

    Adems de los tipos de nodos, podemos controlar la forma en quese crea el rbol, por ejemplo, si queremos que nuestro rbol sea dederecha a izquierda o de abajo hacia arriba, etc, slo cambiamos lasopciones que se muestran en el cuadro 1.16.

    Nodo Descripcin

    treemode= Determina la direccin del rbol,Dconstruye el rbol hacia abajo, U loconstruye hacia arriba, R y L derecha eizquierda.

    edge= Determina el tipo de conector (\ncline,\ncarc,etc ) .

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

    levelsep= Determina la distancia entre los niveles deun rbol, por defecto es 2cm.

    treesep= Me indica la distancia entre los descendi-entes de un mismo nodo, por defecto es0.75cm.

    Cuadro 1.16: Parmetros 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 grfica hecha con PSTricks se puedeponer en el entorno figure como si fusemos a cargar un archivogrfico. Para el caso el rbol genealgico de los hijos de Borin.1.

    1J.R.R. Tolkien, Apndices del Seor de los Anillos. Ediciones Minotauro. 2001

  • 64 1.10. Herramientas para rboles, grafos y diagramas

    Borin Farin

    Fundin I

    Balin

    Dawlin

    Grin

    in

    Glin Gimli

    Figura 1.1: Genealoga de los hijos de Borin

  • 1. Grficos con PSTricks 65

    \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 Grin}}{\Toval{\scriptsize in}\pstree{\Toval{\scriptsize Glin}}{\Toval{\scriptsize Gimli}}}}}}

    \end{pspicture}\caption{Genealoga de los hijos de Borin }\label{hijosborin}\end{figure}

    1.10.4.1. Etiquetas para los nodos de los rboles

    Las etiquetas de los conectores del rbol se ubican exactamente de-spus del comando de cada nodo, su sintaxis es muy simple ~{etiqueta}.El parmetro tnpos= posiciona la etiqueta con relacin al nodo. b esabajo (por defecto es b), a arriba y r y l son derecha e izquierda. Contnsep= podemos cambiar la distancia entre el nodo y la etiqueta, pordefecto es 5pt. Las etiquetas para los conectores se colocan inmedi-atamente despus del primer nodo, con el comando naput, es decir, sitenemos dos nodos A y B, se ubicar despus del nodo A.

    Ejemplo:2

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

  • 66 1.11. Manejo de objetos 3D con PSTricks

    Elfos

    Eldar

    Calaquedi

    Fuero

    n aAm

    n

    Vanyar

    Los hermosos

    Noldor

    Los Sabios

    Telerin

    Los Elfos del mar

    Avari

    Moriquendi

    No fueron a Amn

    \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 Amn} }{\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 Amn}}\end{pspicture}

    1.11 Manejo de objetos 3D con PSTricks

    PSTricks ofrece toda una librera para dibujar objetos tridimensionalescomo esferas, planos, vectores, superficies, etc. Para el manejo de esta

  • 1. Grficos con PSTricks 67

    librera es necesario que el usuario est familiarizado con los conceptosde Clculo Multivariado, es decir, con la ubicacin de puntos en elespacio, manejo de ecuaciones en R3 y otros conceptos.

    1.11.1. El paquete pst-3dplot

    Con este paquete, podemos usar los comandos necesarios para dibujarlos objetos 3D, adems, se pueden incluir otros objetos matemticoscomo ecuaciones y objetos 2D. Si usted no tiene este paquete, lo pudeconseguir en la siguiente direcccin:

    http://ctan.org/tex-archive/graphics/pstricks/contrib/pst-3dplot/

    1.11.2. El eje cordenado 3D

    El eje coordenado de la librera es el mismo que podemos encontraren cualquier libro de Clculo, con el eje z perpendicular al eje y y aleje x:

    x y

    z

    Sin embargo, para acceder a este espacio necesitamos un punto dereferencia o punto de visin, imaginemos que estamos parados juntoal eje coordenado; estando all podemos dar la vuelta, subir y bajar

  • 68 1.11. Manejo de objetos 3D con PSTricks

    la mirada, levantar el eje coordenado para observar los objetos desdeabajo, en fin, necesitamos mover la vista para visualizar mejor los ob-jetos que vamos a dibujar.

    Para resolver el problema, PSTricks toma como punto de partida 2ngulos especiales y . El ngulo representa la rotacin horizontalcon valores positivos en sentido antihorario. El ngulo controla larotacin vertical u ortogonal del plano. Por defecto, los ngulos son = 45 y = 45, si queremos cambiar el punto de vista del plano,cambiamos los parmetros en el psset{...}.veamos el ejemplo:

    x y

    z

    x

    y

    z

    xy

    z

    \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 algunosparmetros, entre ellos esta xMin, xMax, yMin, yMax, zMin, zMax, loscuales determinan los lmites de los ejes con *Min le damos el lmiteinferior y con *Max configuramos el lmite superior. Tambin podemoscambiar el ancho de las lneas o su forma. Debemos tener en cuen-ta donde ubicamos los parmetros Alpha y Beta, si lo hacemos en el\psset todos los objetos rotarn al unsono con el eje, si lo hacemosen los parmetros de \pstThreeDCoor, slo los ejes rotarn, los dems

  • 1. Grficos con PSTricks 69

    objetos no.

    1.11.3. Ubicacin de objetos con \pstThreeDPut

    Este comando es muy similar a rput de la versin 2D, a continuacinla sintaxis:

    \pstThreeDPut[par](x,y,z){obj}

    Esta orden ubica en la posicin (x, y, z) el objeto obj con diferentesopciones, las cuales mostraremos en los diferentes ejemplos.

    x y

    z

    21

    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 matemticos msusados, PSTricks3D implementa la siguiente funcin:

    \pstThreeDDot[par](x,y,z)

    El comando ubica un punto con coordenadas (x, y, z) con las opcionesde colores que ya hemos visto, adems del parmetro drawCoor que

  • 70 1.11. Manejo de objetos 3D con PSTricks

    puede ser false\true , lo cual provoca que se dibujen las lneas par-alelas a los ejes. Veamos un ejemplo:

    x

    y

    z

    b

    b

    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. Lneas rectas

    La sintaxis para una lnea 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), lasopciones son las tpicas que hemos visto en la versin 2D.

    Ejemplo:

  • 1. Grficos con PSTricks 71

    x y

    z

    ~v1 ~v2

    ~v3

    \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 dela versin 3D, si usted no conoce la ubicacin de los puntos en 3D, lopuede hacer con la versin 2D sin ningn problema.

    1.11.6. Tringulos

    Para dibujar tringulos, PSTricks3D implementa el siguiente comando:

    \pstThreeDTriangle[par](P1)(P2)(P3)

    El parmetro drawCoor que puede ser false\true dibuja las rectasparalelas a los ejes, fillstyle debe estar en solid para que el trin-gulo sea llenado, de lo contrario, se dibujar transparente. El color seescoje con fillcolor . Los parmetros P1,P2,P3 son los puntos delos vrtices del tringulo.

  • 72 1.11. Manejo de objetos 3D con PSTricks

    x y

    z

    b

    b

    b

    b

    b

    b

    \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 rectngulos

    La sintaxis es la siguiente:\pstThreeDSquare[Op](v1)(v2)(v3)

    En este caso, se dibuja un cubo o paraleleppedo imaginario, luegoaparecen los vectores ~v1, ~v2 y ~v3. El primer vector determina el pun-to de origen del cuadro, los otros dos determinan el ancho y largo delcuadro. Estos vectores en realidad son los puntos finales de los vectores.

    Ejemplo:

  • 1. Grficos con PSTricks 73

    x y

    z

    \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 seccin anterior, lasintaxis es la siguiente:

    \pstThreeDBox[par](v1)(v2)(v3)(v4)

    El primer punto (punto final de un vector) es el punto de inicio denuestra caja, los dems vectores determinan el ancho, el alto y la pro-fundidad.

    Ejemplo:

  • 74 1.11. Manejo de objetos 3D con PSTricks

    x y

    z

    \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 grfico podemos observar los componentes de unaelipse:

    a

    b

    b b

    F2

    F1

    a a

    ee

    r1 r2

    Ahora bien, lo que tenemos es: dos focos F1 y F2, los dimetros a y by adems la exentricidad determinada por e.

    (x x0)2a2

    +(y y0)2

    b2= 1 (1.1)

  • 1. Grficos con PSTricks 75

    La ecuacin 1.1 es la frmula generalizada de una elipse con centroen (x0, y0), eje mayor a y eje menor b, (tambin llamados radios dela elipse).La exentricidad e determina que tan alargada o deforme esla elipse y debe ser 0 < e 1, si e = 1 la elipse se convierte enuna circunferencia. La informacin anterior es de vital importancia sinecesitamos dibujar elipses o circunferencias.

    Adems, de esta informacin, podemos cambiar algunos parmetrosde la elipse como el arco, permitiendo dibujar parte de la elipse o cir-cunferencia, esto lo logramos cambiando los parmetros que controlanel ngulo de inicio y el terminal; beginAngle que por defecto es 0 yendAngle que es 360, stos valores indican que se dibujar toda laelipse.

    Recuerde que como estamos en el espacio tridimensional, es muy comnque veamos una circunferencia como una elipse o viceversa, es re-comendable que se ajusten los parmetros de visin (Alpha y Beta)para que sta distorsin no cause malos entendidos.

    la elipse entonces tiene la siguiente sintxis:

    \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 puntoser el centro de nuestra elipse, en la ecuacion 1.1 seran (x0, y0). Elpunto (ux, uy, uz) y (vx, vy, vz) son los extremos de los vectores queme indicarn los valores de a y b.

    Ejemplo:

  • 76 1.11. Manejo de objetos 3D con PSTricks

    x y

    z

    \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 comoelipses.

    1.11.10. Esferas

    La sintaxis es la siguiente:

    \pstThreeDSphere[OP](x,y,z){r}

  • 1. Grficos con PSTricks 77

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

    x y

    z

    \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 paramntricas en 3D

    PSTricks implementa la siguiente funcin:

    \parametricplotThreeD[par](t1,t2)(u1,u2){x(t,u)y(t,u) z(t,u)}

    Slo es posible usar las variables u y t. Los parmetros t1, t2 son loslmites de t, u1, u2 son los lmites inferior y superior de u. Recuerde quex(t, u), y(t, u) y z(t, u) se deben ingresar en la notacin PostScriptcomo lo vimos en la seccin 1.9.1.

  • 78 1.11. Manejo de objetos 3D con PSTricks

    Ejemplo:

    x y

    z

    \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 mult 360 mul sin t mul t}

    \end{pspicture}

    Ejemplo:

  • 1. Grficos con PSTricks 79

    x y

    z

    \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 mulu sin t sin mulu cos}\parametricplotThreeD[linecolor=blue,linewidth=.25pt,xPlotpoints=200,plotstyle=curve,arrows=->](0,360)(0,360){t sin u cos mult sin u sin mult cos}\end{pspicture}

  • 80 1.11. Manejo de objetos 3D con PSTricks

    1.11.12. Grfica de funciones

    Para graficar funciones en el espacio, PSTricks implementa la funcin:

    \psplotThreeD[OP](x0,xt)(y0,yt){f(x,y)}

    La funcion, recuerden, debe estar en lenguaje PostScript , slo seadmiten variables x y y. El comando dibuja la grfica de la funcinf(x, y) en el dominio determinado por (x0, xt) para x y (y0, yt) para lavariable y. Adems, se debe tener encuenta los siguientes parmetros(ver cuadro 1.17 ).

    Opcin Valor

    plotstyle Puede ser dots, line, polygon, curve,ecurve, ccurve, none (valor por defecto).y determina la forma de las lneas con quese dibuj la curva.

    showpoints Puede ser false/true y por omisin esfalse. Muestra los puntos.

    showpoints Puede ser false/true y por omisin esfalse. Muestra los puntos.

    xPlotpoints y yPlotpoints Por defecto es 25, y determina la cantidadde puntos a graficar.

    hiddenLine Por defecto es false y hace que se dibujenlas lneas.

    Cuadro 1.17: Opciones de la funcin \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. Grficos con PSTricks 81

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

    x y

    z

    f(x, y) = x2 + y2 x5

    Recuerde que usted tiene el control sobre el dominio de las variables xy y, no sobre la variable z, tenga presente este detalle pues su grficapuede salir de la zona delimitada.

    Ejemplo:

  • 82 1.11. Manejo de objetos 3D con PSTricks

    x y

    z

    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. Grficos con PSTricks 83

    x y

    z

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

    \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:

  • 84 1.11. Manejo de objetos 3D con PSTricks

    x

    y

    z

    f(x, y) = y2 x2

    \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. Grficos con PSTricks 85

    x

    y

    z

    f(x, y) = 1 (x2 + y2) 13

    \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

  • CAPTULO 2

    Herramientas para grficos conPSTricks

    Para muchos usuarios de PSTricks, puede ser tedioso el uso de cdigosms parecidos a un lenguaje de programacin como Pascal o C++,que a un editor de grficos matemticos. El usuario de LATEX quiereque sus grficos matemticos queden con la mejor calidad, sin em-bargo, muchos de ellos no desean ni tienen tiempo de construir unagrfica matemtica con base en instrucciones. Adems, hay grficosmuy sencillos (o muy complejos) que no merecen que se tome el tiem-po necesario en construirlos de la forma tradicional.

    Para este tipo de usuarios, se desarroll software como el JpicEdty LatexDraw, estos programas permiten construir grficos vector-izados y exportar su cdigo a LATEX y PSTricks. En este captulomostraremos cmo implementar grficos matemticos con estos pro-gramas.

    2.1 JpicEdt

    Este programa fue desarrollado por Sylvain Rainal del E.N.S.E.A de-partamento de fsica. Es un software libre y puede ser redistribuido

    87

  • 88 2.1. JpicEdt

    y/o modificarlo bajo los trminos de la Licencia Pblica General deGNU segn es publicada por la Free Software Foundation. Como semencion anteriormente, el software es un editor de grficos vector-izados que permite exportar a cdigo PSTricks, Emulated LATEX yEpic/Eepic.

    El JpicEdt fue desarrollado en Java, el cual debe estar instaladoen el computador previamente. La instalacin es muy sencilla, slo sehace doble clic en el archivo jpicedt-install-1_4_pre_5.jar, luego,se procede a dar los parmetros de instalacin, el programa se ubi-car en su computador automticamente. Como JpicEdt esta hechoen Java, puede funcionar en cualquier plataforma (Windows, Linuxy Mac.). Para bajarlo y obtener ms informacin, consulte la pginahttp://jpicedt.sourceforge.net/site/index.php?language=en.

    Figura 2.1: Interfase principal de JPicEdt

  • 2. Herramientas para grficos con PSTricks 89

    2.1.1. Ventanas

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

    En la parte superior de esta ventana, aparecen varios mens desple-gables, el primero de ellos permite cambiar la malla o cuadrcula delrea de trabajo, luego aparece un botn para activar o desactivar elmagnetismo de la malla, es decir, la forma en como los objetos seacomodan e los vrtices de la malla del rea de trabajo. Luego apareceotro men desplegable para cambiar la intensidad del magnetismo dela malla, la cual va de 10 a 0.625; sta es muy importante para laconstruccin de nuestros grficos matemticos.

    En la parte media de la ventana, se encuentra el rea de trabajo, elcual, esta enmarcado con una malla, en la parte superior e izquierdase encuentra la regla, una utilidad para medir o referenciar nuestrosgrficos. En la parte inferior izquierda aparece una etiqueta donde seresalta la posicin del mouse sobre el rea de trabajo.

    Luego aparece la ventana de atributos, la cual, me permite cambiarlas propiedades o atributos de los objetos que se construyan.

  • 90 2.1. JpicEdt

    La ventana consta de ocho submenus: Lleno, Rayar, Trazo, Som-bra, Flechas, Polydots, Text y una opcin llamada PSTricks.

    Lleno: Con esta opcin, podemosescojer el color de relleno de losobjeto cerrados, es decir, figurasplanas cerradas (crculos, elipses,polgonos). La ventana muestralas opciones de colores en paletasRGB, HSB y colores predefinidospor PSTricks.

    Adems, tiene un men desplegable que permite escojer el tipo detextura o relleno para nuestros objetos, las opciones que maneja son:transparente (por defecto), solido, lneas verticales transparentes, lneasverticales con color de fondo, lneas horizontales transparentes y confondo, y dos opciones para trama en forma de ladrillo con fondo trans-parente y con color de fondo.

    Como hemos visto, no debemos preocuparnos por el cdigo en PSTrickspara la inclusin de nuevos colores, JpicEdt lo hace automaticamente,Adems la ventana cuenta con una opcin de color reciente, que lepermite al usuario seguir trabajando con los mismos colores.

  • 2. Herramientas para grficos con PSTricks 91

    Rayar: Esta opcin permite cam-biar las formas de las texturas quese impusieron a los objetos en laopcin de lleno. Tiene tres op-ciones, la primera, puesta en laparte superior izquierda, permitecambiar el ancho de las lneas delas texturas; si estas son muy an-chas, se puede obtener un colorslido.

    La segunda opcin permite cambiar la separacin entre las lneas dela textura y la ltima opcin modifica el ngulo de inclinacin de laslneas. En la parte inferior se presenta un men de colores similar ala pestaa anterior donde se pueden escoger colores de la forma RGB,HSB y predeterminado por PSTricks.

    Trazo: En esta pestaa, encon-tramos las opciones para el en-torno de los objetos. Inicialmenteaparece un menu desplegable queme permite selecionar la forma delcontorno, puede ser invisible, nor-mal, en guiones y punteada. En laparte superior derecha aparece laopcin de ancho de la lnea.

    Los dos comandos en la zona media, son usados para ajustar la sepa-racin entre los guiones y el ancho de los mismos. Tambien, all aparecela opcin para la lneas punteadas, con este comando se pueden cam-biar la separacin de los puntos. La opcin Overstrike hace que laslneas pierdan la capacidad de ser transparentes.

    Sombra: Esta opcin permite aplicarle el efecto de sombra a los ob-jetos planos cerrados (polgonos, crculos, etc)

  • 92 2.1. JpicEdt

    Slo tiene dos parmetros, el primero modifica el ancho de la sombray el segundo el ngulo donde esta se va a proyectar.

    Flechas: Permite implementar elefecto de flechas a las lneas conlas mismas opciones que aparecenen la seccin 1.3.1.1. La pestaaofrece la posibilidad de cambiarel tipo de flecha al comienzo yal final de la lnea, la forma y eltamao de la misma.

    Polydots: Esta pestaa permiteactivar los puntos de una curvao una lnea recta, la pestaa pre-senta un men desplegable conlos tipos de puntos dados porPSTricks. Las diferentes opcionesde esta pestaa permiten cambiar

    el ngulo de los puntos, tamao yescala.

    Text: Para los efectos de texto,la pestaa ofrece la posibilidad decambiar el punto de referencia dela etiqueta con el texto,

    permitiendo ponerla en la parte inferior, superior, izquierda o derecha,adems, permite cambiar el ngulo de rotacin del texto. La pestaatambien incluye una herramienta para enmarcar el texto en rectngu-los o crculos.

  • 2. Herramientas para grficos con PSTricks 93

    PSTricks: En esta pestaa pode-mos incluir opciones de PSTricksque el software no maneja, slodebemos escribirlas en el espaciode PS custom y oprimir el botnaceptar.

    2.1.2. Herramientas de edicin

    La ventana de Caja de tilespresenta las herramientas de edi-cin bsicas para contruir nue-stros grficos matemticos. Inici-amlente, esta ventana la encon-traremos junto a las que apare-cen por omisin cuando el progra-ma arranca, si no es el caso, vayaal men tiles y all encontrarlas mismas opciones. Tambien lapodemos encontrar en el menVentanas/Caja de tiles.

    Para el manejo de estas herramietas, se debe tener en cuenta que losobjetos a modificarse deben estar seleccionados. En realidad, cualquierpersona que haya tenido contacto con programas como FreeHand oCorelDraw no tendr dificultad en manejarlo. Enseguida, mostraremosel uso de las diferentes herramientas de edicin.

  • 94 2.1. JpicEdt

    Permite hacer zoom en la grfica que estamosconstruyendo.

    Selecciona los objetos que componen la grfica.

    Permite editar los nodos que componen las curvasBezier.

    Al seleccionar uno o varios obejto, podemos moverloscon este comando.

    Escala los objetos seleccionados, bien sea en formavertical u horizontal.

    Rota los objetos seleccionados.

    Permite la inclusin de texto. Si es texto cientfico,recuerde ponerlo entre los comandos $

    Permite crear lneas rectas.

    Herramienta para crear rectng