Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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:
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.
\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}
\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.
\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