Você está na página 1de 5

Arcos de ángulos

Javier Serrano

Primavera 2011

1. Introducción
Cuando se dibujan polı́gonos es frecuente querer destacar, mediante un
arco, la abertura de alguno de sus ángulos interiores o exteriores. A con-
tinuación se presentan dos comandos que realizan este cometido de forma
sencilla para el usuario.
Para el uso de estos comandos sólo es necesario tener cargado en el
preámbulo el paquete pstricks y tener copiado el código que aparece en la
Sección Implementación.
En todo lo que sigue, un ángulo se designará mediante tres puntos AOB,
donde el punto O es el vértice. El ángulo en el que se dibujará el arco será el
que quede a la derecha del recorrido que nos lleva desde A hasta O y desde
O hasta B. Es decir, si queremos marcar ángulos de un polı́gono habrá que
designar los vértices en sentido horario para ángulos interiores y en sentido
antihorario para ángulos exteriores.
El dibujo de la izquierda nos muestra el ángulo AOB, mientras que el de
la derecha nos muestra el BOA.
b b

B B

b b b
O b

O A A

Observación: las coordenadas de los puntos siempre se consideran en


centı́metros, lo que puede dar lugar a fallos si se manejan otras unidades de
longitud.

2. El comando dibujaarco
Se debe usar dentro de un entorno pspicture. La sintaxis del comando
es la siguiente:

1
Manual de Arcos de Ángulos Javier Serrano

\dibujaarco|grosor|[flecha]{puntoA}{puntoO}{puntoB}{radio}

Argumentos:

grosor : Optativo. Es el grosor de la lı́nea del arco. Se trata de una


medida de longitud y, por tanto, consiste en un número seguido de
una unidad de longitud. Hay que escribirlo, si se usa, entre barras
verticales. Por defecto es 0.8pt.

flecha: Optativo. Indica cómo serán los extremos del arco. Hay que
escribirlo, si se usa, entre corchetes. Su valor por defecto es -. Puede
tomar los mismos valores que el argumento del comando psline, es
decir, -, ->, <-, <->, -*, etc.

puntoA: Obligatorio. Son las coordenadas del punto donde empieza el


primer lado del ángulo. Se han de escribir entre paréntesis separando
las cordenadas mediante una coma.

puntoO : Obligatorio. Son las coordenadas del vértice del ángulo. Se


han de escribir entre paréntesis separando las cordenadas mediante
una coma.

puntoB: Obligatorio. Son las coordenadas del punto donde termina el


segundo lado del ángulo. Se han de escribir entre paréntesis separando
las cordenadas mediante una coma.

radio: Obligatorio. Es el radio del arco que se dibujará con centro en


el punto O. Es una longitud y, por tanto, hay que escribirlo seguido
de la unidad de medida.

3. Ejemplos del comando dibujararco


\begin{pspicture}(4,3)
\psline[linewidth=1pt](4,1)(1,1)(0,3)
\dibujaarco[-o](4,1)(1,1)(0,3){.4cm}
\end{pspicture}

\begin{pspicture}(4,3)
\psline[linewidth=1pt](4,1)(1,1)(0,3)
\dibujaarco|.6pt|[->](4,1)(1,1)(0,3){.4cm}
\end{pspicture}

2
Manual de Arcos de Ángulos Javier Serrano

\begin{pspicture}(4,3)
\psline[linewidth=1pt](4,1)(1,1)(0,3)
\dibujaarco[*-*](4,1)(1,1)(0,3){.4cm}
\end{pspicture}

4. El comando dibujaarcorelleno
Se debe usar dentro de un entorno pspicture. La sintaxis del comando
es la siguiente:
\dibujaarcorelleno|grosor|[color]{puntoA}{puntoO}{puntoB}{radio}

El argumento color es optativo. Indica el color con el que se rellenará


el arco dibujado. Hay que escribirlo, si se usa, entre corchetes. Su valor
por defecto es white. Puede tomar los mismos valores que el argumento
fillcolor de, por ejemplo, el comando \pspolygon.
El resto de argumentos son similares a los del comando \dibujaarco.
Es conveniente, para un dibujo con un acabado mejor, dibujar en primer
lugar el arco o arcos deseados y después el ángulo o polı́gono.

5. Ejemplos del comando dibujararcorelleno


\begin{pspicture}(4,3)
\dibujaarcorelleno[red]%
(4,1)(1,1)(0,3){.4cm}
\psline[linewidth=1pt](4,1)(1,1)(0,3)
\end{pspicture}

\begin{pspicture}(4,3)
\dibujaarcorelleno|.6pt|%
(4,1)(1,1)(0,3){.4cm}
\psline[linewidth=1pt](4,1)(1,1)(0,3)
\end{pspicture}

3
Manual de Arcos de Ángulos Javier Serrano

\begin{pspicture}(4,3)
\psset{linecolor=green}
\dibujaarcorelleno[green]%
(4,1)(1,1)(0,3){.4cm}
\psset{linecolor=black}
\psline[linewidth=1pt](4,1)(1,1)(0,3)
\end{pspicture}

6. Implementación
Para que esté el comando disponible tiene dos opciones:
Copie el código que aparece más abajo en el preámbulo de cualquier
documento .tex en el que vaya a usarlo.

Incluya el código en su documento de comandos habitual y luego (en el


preámbulo o el cuerpo) insértelo mediante input{documentocomandos.tex}.

El código que hay que copiar es el siguiente:

\def\midibujaarco[#1](#2,#3)(#4,#5)(#6,#7)#8{%
\newdimen\Auno \newdimen\Ados%
\newdimen\Buno \newdimen\Bdos%
\newdimen\Cuno \newdimen\Cdos%
\newdimen\Vuno \newdimen\Vdos%
\newdimen\Wuno \newdimen\Wdos%
\newdimen\Dist%
\Buno=#2cm \Bdos=#3cm%
\Auno=#4cm \Ados=#5cm%
\Cuno=#6cm \Cdos=#7cm%
\Dist=#8%
\advance\Vuno by \Buno \advance\Vuno by -\Auno%
\advance\Vdos by \Bdos \advance\Vdos by -\Ados%
\advance\Wuno by \Cuno \advance\Wuno by -\Auno%
\advance\Wdos by \Cdos \advance\Wdos by -\Ados%
\SpecialCoor%
\psarc[linewidth=\ancholinea]{#1}%
(\Auno,\Ados){\Dist}{(\Vuno,\Vdos)}{(\Wuno,\Wdos)}
\NormalCoor}

\makeatletter
\def\mimidibujaarco|#1|{\newdimen\ancholinea \ancholinea=#1%
\@ifnextchar[{\midibujaarco}{\midibujaarco[-]}}

\def\dibujaarco{\@ifnextchar|{\mimidibujaarco}{\mimidibujaarco|.8pt|}}

4
Manual de Arcos de Ángulos Javier Serrano

\makeatother

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\def\midibujaarcorelleno[#1](#2,#3)(#4,#5)(#6,#7)#8{%
\newdimen\Auno \newdimen\Ados%
\newdimen\Buno \newdimen\Bdos%
\newdimen\Cuno \newdimen\Cdos%
\newdimen\Vuno \newdimen\Vdos%
\newdimen\Wuno \newdimen\Wdos%
\newdimen\Dist%
\Buno=#2cm \Bdos=#3cm%
\Auno=#4cm \Ados=#5cm%
\Cuno=#6cm \Cdos=#7cm%
\Dist=#8%
\advance\Vuno by \Buno \advance\Vuno by -\Auno
\advance\Vdos by \Bdos \advance\Vdos by -\Ados
\advance\Wuno by \Cuno \advance\Wuno by -\Auno%
\advance\Wdos by \Cdos \advance\Wdos by -\Ados%
\SpecialCoor%
\pswedge[linewidth=\ancholinea,fillstyle=solid,fillcolor=#1]%
(\Auno,\Ados){\Dist}{(\Vuno,\Vdos)}{(\Wuno,\Wdos)}
\NormalCoor}

\makeatletter
\def\mimidibujaarcorelleno|#1|{\newdimen\ancholinea \ancholinea=#1%
\@ifnextchar[{\midibujaarcorelleno}{\midibujaarcorelleno[white]}}
\def\dibujaarcorelleno{\@ifnextchar|%
{\mimidibujaarcorelleno}{\mimidibujaarcorelleno|.8pt|}}
\makeatother

Você também pode gostar