<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>2306-0522</journal-id>
<journal-title><![CDATA[Revista Investigación y Tecnología]]></journal-title>
<abbrev-journal-title><![CDATA[Rev Inv Tec]]></abbrev-journal-title>
<issn>2306-0522</issn>
<publisher>
<publisher-name><![CDATA[Universida Mayor de San Andrés]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S2306-05222016000200003</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Algoritmo de Fortune sin eventos de círculo usando la primitiva InCircle]]></article-title>
<article-title xml:lang="en"><![CDATA[Fortune 's algorithm without circle events using InCircle primitive]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Torrico]]></surname>
<given-names><![CDATA[Lucio]]></given-names>
</name>
</contrib>
</contrib-group>
<aff id="A">
<institution><![CDATA[,  ]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>12</month>
<year>2016</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>12</month>
<year>2016</year>
</pub-date>
<volume>4</volume>
<numero>2</numero>
<fpage>01</fpage>
<lpage>15</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.br/scielo.php?script=sci_arttext&amp;pid=S2306-05222016000200003&amp;lng=en&amp;nrm=iso&amp;tlng=en"></self-uri><self-uri xlink:href="http://www.scielo.br/scielo.php?script=sci_abstract&amp;pid=S2306-05222016000200003&amp;lng=en&amp;nrm=iso&amp;tlng=en"></self-uri><self-uri xlink:href="http://www.scielo.br/scielo.php?script=sci_pdf&amp;pid=S2306-05222016000200003&amp;lng=en&amp;nrm=iso&amp;tlng=en"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[Para hallar el diagrama de Voronoi (también llamado teselación de Dirichlet o polígonos de Thiessen) de un conjunto de puntos en el plano, el algoritmo de Fortune usa la propiedad de círculo vacío alrededor de los vértices de un modo implícito. Todas las presentaciones de dicho algoritmo usan eventos de círculo sin cálculos explícitos de la primitiva InCircle. El objetivo es averiguar si existe una versión alterna del algoritmo de Fortune sin eventos de círculo, utilizando exhaustivamente la primitiva InCircle. Se ha diseñado dicha variante del algoritmo, argumentado sus basamentos y, además de la presentación, se incluye un ejemplo de ejecución que permite aclarar su uso.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[To find the Voronoi diagram (also called Dirich let tessellation or Thiessen polygons) from a set of points in the plane, Fortune 's algorithm use the empty-circle property around the vertices in an implicit way. All presentations of this algorithm use circle-events without explicit calculations of the primitive InCircle. Our goal is to find out if there is an alternate version of Fortune 's algorithm without circle-events, using exhaustively the primitive InCircle. We have designed this variant of the algorithm, argued their bases and, in addition to the presentation, include an execution example that allows clarify their use.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[algoritmo de Fortune]]></kwd>
<kwd lng="es"><![CDATA[diagrama de Voronoi]]></kwd>
<kwd lng="es"><![CDATA[primitiva InCircle]]></kwd>
<kwd lng="en"><![CDATA[Fortune 's algorithm]]></kwd>
<kwd lng="en"><![CDATA[InCircle primitive]]></kwd>
<kwd lng="en"><![CDATA[Voronoi diagram]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <p align="right"><font color="#000000" size="2" face="verdana"><b>ART&Iacute;CULOS</b></font></p>     <p align="right">&nbsp;</p>     <p align="center"><font face="verdana" size="4"><b>Algoritmo de <i>Fortune </i>sin eventos de círculo usando la primitiva <i>InCircle</i></b></font></p>     <p align="center">&nbsp;</p>     <p align="center"><font face="verdana" size="3"><i><b>Fortune 's algorithm without circle events using InCircle primitive</b></i></font></p>     <p align="center">&nbsp;</p>     <p align="center">&nbsp;</p>     <p align="center"><font face="verdana" size="2"><b>Lucio Torrico    <br> </b></font><font face="verdana" size="2">Instituto de Investigaciones en Informática </font><font face="verdana" size="2">Carrera de Informática    <br> Facultad de Ciencias Puras y Naturales Universidad Mayor de San Andrés    ]]></body>
<body><![CDATA[<br> </font><font face="verdana" size="2">La Paz - Bolivia    <br> Autor de correspondencia: <a href="mailto:luciotorrico@informatica.edu.bo"></a><a href="mailto:luciotorrico@informatica.edu.bo">luciotorrico@informatica.edu.bo</a>    <br> </font><font face="verdana" size="2"><b>Presentado: </b>La Paz, 25 de octubre de 2016 <b>Aceptado</b>: La Paz, 20 de Diciembre de 2016</font></p>     <p align="center">&nbsp;</p>     <p align="center">&nbsp;</p> <hr>     <p align="justify"><font face="verdana" size="2"><b>Resumen</b></font></p>     <p align="justify"><font face="verdana" size="2">Para hallar el diagrama de <i>Voronoi </i>(también llamado teselación de Dirichlet o polígonos de Thiessen) de un conjunto de puntos en el plano, el algoritmo de <i>Fortune </i>usa la propiedad de círculo vacío alrededor de los vértices de un modo implícito.</font></p>     <p align="justify"><font face="verdana" size="2">Todas las presentaciones de dicho algoritmo usan eventos de círculo sin cálculos explícitos de la primitiva <i>InCircle.</i></font></p>     <p align="justify"><font face="verdana" size="2">El objetivo es averiguar si existe una versión alterna del algoritmo de <i>Fortune </i>sin eventos de círculo, utilizando exhaustivamente la primitiva <i>InCircle.</i></font></p>     <p align="justify"><font face="verdana" size="2">Se ha diseñado dicha variante del algoritmo, argumentado sus basamentos y, además de la presentación, se incluye un ejemplo de ejecución que permite aclarar su uso.</font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2"><b>Palabras clave: </b>algoritmo <i>de Fortune; </i>diagrama de <i>Voronoi., </i>primitiva <i>InCircle</i></font></p> <hr>     <p align="justify"><font face="verdana" size="2"><b><i>Abstract</i></b></font></p>     <p align="justify"><font face="verdana" size="2"><i>To find the Voronoi diagram (also called Dirich let tessellation or Thiessen polygons) from a set of points in the plane, Fortune 's algorithm use the empty-circle property around the vertices in an implicit way.</i></font></p>     <p align="justify"><font face="verdana" size="2"><i>All presentations of this algorithm use circle-events without explicit calculations of the primitive InCircle.</i></font></p>     <p align="justify"><font face="verdana" size="2"><i>Our goal is to find out if there is an alternate version of Fortune 's algorithm without circle-events, using exhaustively the primitive InCircle.</i></font></p>     <p align="justify"><font face="verdana" size="2"><i>We have designed this variant of the algorithm, argued their bases and, in addition to the presentation, include an execution example that allows clarify their use.</i></font></p>     <p align="justify"><font face="verdana" size="2"><i><b>Keywords:</b> Fortune 's algorithm; InCircle primitive; Voronoi diagram</i></font></p> <hr>     <p align="justify">&nbsp;</p>     <p align="justify">&nbsp;</p>     <p align="justify"><font face="verdana" size="3"><b>Introducción</b></font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2">Desde que (Guibas, L. 1, Stolfi, J., 1989) dieron una nueva presentación al algoritmo de <i>Fortune </i>(Fortune, 1987) para el cálculo del diagrama de <i>Voronoi </i>de un conjunto <i>C </i>de sitios o puntos en 2D, dicha presentación se ha popularizado hasta convertirse prácticamente en un estándar (De Berg <i>et al. </i>1997, O'Rourke 1994).</font></p>     <p align="justify"><font face="verdana" size="2">Aquí se presenta otra forma de calcular el diagrama, basados en dicho algoritmo pero sin utilizar eventos de círculo.</font></p>     <p align="justify"><font face="verdana" size="2">La versión estándar que se relata, utiliza los llamados eventos de círculo de manera explícita y exhaustiva a partir de tripletas en la línea de playa, calculando el circuncentro de la circunferencia definida por los sitios de la tripleta, y luego restando el radio (previamente calculado) para hallar el punto más bajo de dicha circunferencia.</font></p>     <p align="justify"><font face="verdana" size="2">En su lugar se calcula la primitiva <i>InCircle </i>para ver si un sitio está dentro del círculo definido por los tres sitios de una tripleta, de ser así la tripleta no es más que una falsa alarma. Si el sitio está fuera, o lo trabaja como un sitio más añadiéndolo a la línea de playa, o si está fuera y muy abajo se concluye que la circunferencia está vacía y define un vértice.</font></p>     <p align="justify">&nbsp;</p>     <p align="justify"><font face="verdana" size="3"><b>Primitiva <i>InCircle</i></b><i></i></font></p>     <p align="justify"><font face="verdana" size="2">Dada una tripleta de puntos <i>p<sub>1</sub >  p<sub>2 </sub >p<sub>3 </sub ></i>no colineales (que en ese orden están en sentido antihorario), un nuevo punto <i>p4 </i>está dentro del círculo definido por la tripleta cuando:</font></p>     <p align="center"><img src="img/revistas/rit/v4n2/a03_figura01.GIF" width="257" height="123"></p>     <p align="justify"><font face="verdana" size="2">Lo que se conoce como la primitiva <i>InCircle (p<sub>1</sub >,p<sub>2</sub >,<sub> </sub >p<sub>3</sub >,p<sub>4</sub ><sub> </sub >) </i>(Gravesen 2012).</font></p>     <p align="justify">&nbsp;</p>     ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="3"><b>Evento de sitio</b></font></p>     <p align="justify"><font face="verdana" size="2">Cuando un sitio nuevo está en la punta de la cola, debe manejarse: corta a un arco, define tripletas, etc.</font></p>     <p align="justify"><font face="verdana" size="2">Si está dentro del círculo de una tripleta previamente definida, dicha tripleta convergente es una falsa alarma, pues es una propiedad conocida (De Berg <i>et al., </i>1997) que los vértices de un diagrama de <i>Voronoi </i>son el centro de círculos vacíos que tienen en el borde de su circunferencia tres (o más) sitios.</font></p>     <p align="justify">&nbsp;</p>     <p align="justify"><font face="verdana" size="3"><b>La variante</b></font></p>     <p align="justify"><font face="verdana" size="2">Para el cálculo del diagrama de <i>Voronoi, </i>no se maneja eventos de círculo, sólo eventos de sitio.</font></p>     <p align="justify"><font face="verdana" size="2">La cola de prioridad <i><b>Q</b> </i>contienen los sitios clasificados de mayor a menor de acuerdo a su ordenada. La lista doblemente enlazada <i><b>D</b> </i>alberga las aristas y los vértices.</font></p>     <p align="justify"><font face="verdana" size="2">Seguir manejando el concepto de tripleta, aunque los arcos centrales no apuntarán a nada en <i><b>Q</b>. </i>Sí tendrán un indicador de que son centros de tripleta en caso de convergencia.</font></p>     <p align="justify"><font face="verdana" size="2">Al bajar la línea de barrido: para determinar el nodo hoja que se corta, el orden de los subíndices de un nodo intermedio en el árbol <i><b>T</b>, </i>importa:</font></p>     <p align="justify"><font face="verdana" size="2">1) <i>menor,MAYOR </i>(por ej, <i>&lt;p<sub>1</sub > p<sub>3</sub >&gt;): </i>representa una intersección izquierda (*)</font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2"><i>2) MAYOR,menor </i>(por ej, <i>&lt;<sub> </sub >p<sub>3</sub > p<sub>2</sub >&gt;): </i>representa una intersección derecha</font></p>     <p align="justify"><font face="verdana" size="2">La variante se basa en el siguiente hecho: una tripleta convergente en el algoritmo estándar define un círculo, el arco central desaparece al llegar al <i>circle-event </i>añadiendo un vértice. Para el siguiente sitio ese arco ya no juega ningún rol (pues en dicho algoritmo estándar, se elimina). Ver un ejemplo en la <a href="#f1">Figura 1</a>.</font></p>     <p align="center"><a name="f1"></a><img src="img/revistas/rit/v4n2/a03_figura02.gif" width="326" height="140"></p>     <p align="justify"><font face="verdana" size="2">Como no se tiene eventos de círculo, se debe identificar cuándo ha sobrepasado ese ficticio punto extremo de las ficticias circunferencias. Se explica con un ejemplo básico, pero generalizable: la línea de playa tiene este desarrollo (sin eventos de círculo). Luego de los tres primeros sitios:</font></p>     <p align="center"><img src="img/revistas/rit/v4n2/a03_figura03.gif" width="147" height="30"></p>     <p align="justify"><font face="verdana" size="2">Se ha <u>marcado</u> el sitio que desaparecería en el ficticio evento de círculo.</font></p>     <p align="justify"><font face="verdana" size="2">Cuando aparece <i>p<sub>4</sub >, </i>cortará a <i>p<sub>3</sub >. </i>El vecino derecho <i>de p<sub>3</sub > es p<sub>1</sub > </i>que tiene un indicador de que es centro de tripleta.</font></p>     <p align="justify"><font face="verdana" size="2">Nótese que cuando el nuevo sitio está fuera de la circunferencia ficticia, el arco de parábola que debía desaparecer, señalado con una línea vertical correspondiente a <i>p<sub>1</sub >, </i>es tal que la situación de los arcos viene graficada según lo muestra la siguiente <a href="#f2">figura 2</a>:</font></p>     <p align="center"><a name="f2"></a><img src="img/revistas/rit/v4n2/a03_figura04.gif" width="336" height="257"></p>     <p align="justify"><font face="verdana" size="2">Si calcula la abscisa de la intersección entre los extremos <i>de p<sub>3</sub > p<sub>1 </sub >p<sub>2</sub >, </i>es decir <i>&lt;p<sub>3</sub >,p<sub>2</sub >&gt;, </i>la ordenada de dicha intersección está más abajo que la ordenada del arco de parábola<i> p<sub>1</sub ></i>calculada en dicha abscisa.</font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2">Ese será el dato que se necesita para eliminar <i>p<sub>1</sub ></i>.</font></p>     <p align="justify"><font face="verdana" size="2">Es interesante anotar que la abscisa de la intersección puede calcularse sin utilizar raíz cuadrada <i>(sqrt).</i></font></p>     <p align="justify"><font face="verdana" size="2">Este es un ejemplo genérico, puede verse la misma situación en cualquier momento en que procesa los sitios de la cola, no sólo con los cuatro primeros sitios:</font></p>     <p align="justify"><font face="verdana" size="2">Los arcos que deben desaparecer, lo que era notorio en los eventos de círculo, ahora salen a la luz cuando están por encima de intersecciones.</font></p>     <p align="justify"><font face="verdana" size="2">Si un sitio nuevo cae dentro de una circunferencia, se eliminan la falsa alarma.</font></p>     <p align="justify"><font face="verdana" size="2">Si está fuera de la circunferencia:</font></p>     <p align="justify"><font face="verdana" size="2">• Es posible que esté por encima de la ficticia línea horizontal donde estaría el evento de círculo -ahora inexistente-, en cuyo caso debe tratarse como un sitio más.</font></p>     <p align="justify"><font face="verdana" size="2">• Es posible que esté debajo de dicha línea ficticia, en cuyo caso, dado que los sitios se trabajan en orden, la circunferencia define un vértice (eso se puede reconocer según lo dicho con ayuda de la Figura 2); entonces se define el vértice, desaparecen arcos y luego se trata el sitio como antes.</font></p>     <p align="justify"><font face="verdana" size="2">Debido a que no hay eventos de círculo, pueden existir iteraciones.</font></p>     <p align="justify">&nbsp;</p>     ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="3"><b>Métodos</b></font></p>     <p align="justify"><font face="verdana" size="2">Además de recurrir a la recopilación documental y su selección, principalmente se ha utilizado el método analítico deductivo y, dentro de él, esquemas usuales de demostración, técnicas de diseño de algoritmos, en particular los de barrido, así como técnicas de análisis de algoritmos, en particular los que conciernen a la complejidad temporal.</font></p>     <p align="justify">&nbsp;</p>     <p align="justify"><font face="verdana" size="3"><b>Resultados</b></font></p>     <p align="justify"><font face="verdana" size="2">El principal resultado es la construcción de la variante del algoritmo de <i>Fortune </i>sin eventos de círculo. Se muestra completo en la página siguiente.</font></p>     <p align="justify"><font face="verdana" size="2">En el Anexo se presenta un ejemplo de ejecución de la variante, mismo que termina de clarificar algunas partes.</font></p>     <p align="justify">&nbsp;</p>     <p align="justify"><font face="verdana" size="3"><b>Discusión</b></font></p>     <p align="justify"><font face="verdana" size="2">La variante presentada sigue perteneciendo a la clase de algoritmos de barrido y, al estar basado en el algoritmo de <i>Fortune </i>su complejidad temporal es <b>0<i>(n log n).</i></b></font></p>     <p align="justify"><font face="verdana" size="2">Aunque ya no hay eventos de círculo, los arcos se añaden a la línea de playa o desaparecen de él iterativamente, en las estructuras &quot;Mientras&quot; del algoritmo.</font></p>     ]]></body>
<body><![CDATA[<p align="justify">&nbsp;</p>     <p align="justify"><font face="verdana" size="3"><b>Conclusiones</b></font></p>     <p align="justify"><font face="verdana" size="2">Se ha mostrado que con la ayuda de la primitiva <i>InCircle </i>explícitamente utilizada, puede construirse una alternativa de presentación del algoritmo de <i>Fortune </i>popularizado por (Guibas L. J., Stolfi J., 1989).</font></p>     <p align="justify"><font face="verdana" size="2">A diferencia de dicho estándar, la alternativa que se presenta no tiene eventos de círculo.</font></p>     <p align="justify"><font face="verdana" size="2">El ejemplo de ejecución (que puede verse en el Anexo) muestra operativamente la teoría de base y el algoritmo propiamente dicho en acción.</font></p>     <p align="justify"><font face="verdana" size="2">Tener una variante de cualquier algoritmo es muy común en Ciencias de la Computación, y pueden buscarse ventajas y beneficios de ella.</font></p>     <p align="justify">&nbsp;</p>     <p align="justify"><font face="verdana" size="3"><b>Agradecimientos</b></font></p>     <p align="justify"><font face="verdana" size="2">Un agradecimiento especial a los estudiantes que colaboraron temporalmente con este trabajo: Rodrigo Castillo, Gauss Carvajal, Fernando Tórrez, Leonardo Ríos y Adrián Fernández.</font></p>     <p align="justify">&nbsp;</p>     ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="3"><b>Referencias</b></font></p>     <!-- ref --><p align="justify"><font face="verdana" size="2">De Berg, M., Van Kreveld, M., Overmars M., Scwarzkopf, O. (1997). <i>&quot;Computational geometry &quot;. </i>Springer.</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scieloOrg/php/reflinks.php?refpid=S2306-0522201600020000300001&pid=S2306-05222016000200003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');"></a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font face="verdana" size="2">Fortune, S. (1987). <i>&quot;A Sweep Une Algorithm for Voronoi Diagrams&quot;, </i>Algorithmic, pp. 153-174.</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scieloOrg/php/reflinks.php?refpid=S2306-0522201600020000300002&pid=S2306-05222016000200003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');"></a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font face="verdana" size="2">Gravesen, J. (2012). <i>&quot;Guide to Computational Geometry Processing&quot;. </i>Springer.</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scieloOrg/php/reflinks.php?refpid=S2306-0522201600020000300003&pid=S2306-05222016000200003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');"></a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font face="verdana" size="2">Guibas, L. J, Stolfi J. (1989). <i>&quot;Ruler, Compass, and Computer: The Design and Analysis of. Geometric Algorithms&quot;. En &quot;Theoretical Foundations of Comput. Graph. and CAD&quot;, </i>Vol. 40, pp. 111-165. Springer.</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scieloOrg/php/reflinks.php?refpid=S2306-0522201600020000300004&pid=S2306-05222016000200003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');"></a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font face="verdana" size="2">O'Rourke, C. J. (1994).  <i>&quot;Computational geometry&quot;. </i>Cambridge University Press.</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scieloOrg/php/reflinks.php?refpid=S2306-0522201600020000300005&pid=S2306-05222016000200003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');"></a>&#160;]<!-- end-ref --><p align="justify">&nbsp;</p>     <p align="justify"><font face="verdana" size="3"><b>ANEXO</b></font></p>     <p align="justify"><font face="verdana" size="2">Para  el  primer  y  segundo  sitios   se  coloca <i>p<sub>1</sub ></i> <i>p<sub>2</sub ></i> <i>p<sub>1</sub ></i>     en  la  linea  de playa. Se  añade  la  arista <i>p<sub>1</sub ></i>-<i>p<sub>2</sub ></i>  a  D.</font></p>     <p align="justify"><font face="verdana" size="2">Para  cada  siguiente  sitio  nuevo <i>p<sub>k</sub ></i> en  la  cola  de prioridad Q:</font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2">Sea <i>p<sub>1</sub ></i> el  sitio cortado por<i> p<sub>k</sub ></i>.  Vemos  si  el  arco cortado,   su predecesor o su sucesor tienen un indicador de  centro de tripleta  convergente.   Para  cada uno de  ellos:</font></p>     <p align="justify"><font face="verdana" size="2">1)&nbsp; &nbsp;Mientras  el predecesor del  arco cortado tiene  indicador de tripleta</font></p>     <blockquote>       <p align="justify"><font face="verdana" size="2">AND</font></p> </blockquote>     <p align="justify"><font face="verdana" size="2">el  nuevo sitio est  á  fuera de  la  circunferencia definida por los  tres  sitios</font></p>     <blockquote>       <p align="justify"><font face="verdana" size="2">AND</font></p> </blockquote>     <p align="justify"><font face="verdana" size="2">la  ordenada  de  la  intersección  de  las  parábolas  de  los  costados (tomándolos  en  el  orden  señalado  en   (*))</font></p>     <blockquote>       <p align="justify"><font face="verdana" size="2">es  menor  que   (&lt;)    (en  nuestro  contexto  está  más  abajo)</font></p>       ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2"><b>la ordenada de la parábola del predecesor considerado evaluada en la abscisa de dicha intersección </b>: </font></p>       <blockquote>         <p align="justify"><font face="verdana" size="2">La  tripleta  define  un  vértice:   insertar  vértice. Añadir  arista  con  los  extremos  de  la  tripleta. Eliminar  el  sitio   (arco)   central  a  de  la  tripleta En  la  nueva  linea  de  playa,    <br>     </font><font face="verdana" size="2">verificar  tripletas  involucradas  con  el  sitio  eliminado,   llamémoslo  <i>p<sub>j</sub ></i>: </font></p>   </blockquote>       <p align="justify"><font face="verdana" size="2">Si  predecesor  de  <i>p<sub>j</sub ></i>  tomado  como  centro  de  tripleta  converge:   añadir  indicador Si       sucesor    de  <i>p<sub>j</sub ></i>  tomado  como  centro  de  tripleta  converge:   añadir  indicador</font></p> </blockquote>     <p align="justify"><font face="verdana" size="2">Fin-Mientras </font></p>     <p align="justify"><font face="verdana" size="2">Si  el  predecesor  del  arco  cortado  tiene  indicador  de  tripleta</font></p>     <blockquote>       <p align="justify"><font face="verdana" size="2">AND </font></p> </blockquote>     <p align="justify"><font face="verdana" size="2">el  nuevo  sitio  está  dentro  de  la  circunferencia  definida  por  la  tripleta:</font></p>     ]]></body>
<body><![CDATA[<blockquote>       <blockquote>         <blockquote>           <blockquote>             <blockquote>               <blockquote>                 <blockquote>                   <blockquote>                     <p align="justify"><font face="verdana" size="2">borrar  indicador   (falsa  alarma)</font></p>               </blockquote>             </blockquote>           </blockquote>         </blockquote>       </blockquote>     </blockquote>   </blockquote> </blockquote>     <p align="justify"><font face="verdana" size="2">2)&nbsp; &nbsp;Mientras  el  sucesor  del  arco  cortado  tiene  indicador  de  tripleta</font></p>     ]]></body>
<body><![CDATA[<blockquote>       <p align="justify"><font face="verdana" size="2">AND </font></p> </blockquote>     <p align="justify"><font face="verdana" size="2">el  nuevo  sitio  está  fuera  de  la  circunferencia  definida  por  los  tres  sitios</font></p>     <blockquote>       <p align="justify"><font face="verdana" size="2">AND</font></p> </blockquote>     <p align="justify"><font face="verdana" size="2">la  ordenada  de  la  intersección  de  las  parábolas  de  los  costados (tomándolos  en  el  orden  señalado  en   (*))</font></p>     <blockquote>       <p align="justify"><font face="verdana" size="2">es  menor  que   (&lt;)    (en nuestro contexto está más abajo)</font></p> </blockquote>     <p align="justify"><font face="verdana" size="2"><b>la ordenada de la parábola del predecesor considerado evaluada en la abscisa de dicha intersección </b>: </font></p>     <blockquote>       ]]></body>
<body><![CDATA[<blockquote>         <blockquote>           <p align="justify"><font face="verdana" size="2">La tripleta define un vértice:   insertar vértice. Añadir arista  con los  extremos  de  la tripleta. Eliminar el  sitio   (arco)   central  a de  la tripleta En la nueva  linea de playa,</font></p>     </blockquote>   </blockquote> </blockquote>     <p align="justify"><font face="verdana" size="2">verificar tripletas  involucradas  con el  sitioeliminado,   llamémosmlo <i>p<sub>j</sub ></i>: </font></p>     <p align="justify"><font face="verdana" size="2">Si predecesor de <i>p<sub>j</sub ></i> tomado como centro de tripleta  converge:   añadir indicador</font></p>     <blockquote>       <p align="justify"><font face="verdana" size="2">Si  sucesor de <i>p<sub>j</sub ></i> tomado como centro de tripleta  converge:   añadir indicador </font></p> </blockquote>     <p align="justify"><font face="verdana" size="2">Fin-Mientras </font></p>     <p align="justify"><font face="verdana" size="2">Si  el  sucesor del  arco cortado tiene  indicador de tripleta</font></p>     <blockquote>       ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2">AND </font></p> </blockquote>     <p align="justify"><font face="verdana" size="2">el  nuevo sitio está dentro de  la  circunferencia definida por la tripleta:</font></p>     <blockquote>       <blockquote>         <blockquote>           <blockquote>             <blockquote>               <blockquote>                 <blockquote>                   <blockquote>                     ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2">borrar indicador   (falsa  alarma) </font></p>               </blockquote>             </blockquote>           </blockquote>         </blockquote>       </blockquote>     </blockquote>   </blockquote> </blockquote>     <p align="justify"><font face="verdana" size="2">3) Si  el  arco cortado tiene  indicador de tripleta:</font></p>     <blockquote>       <blockquote>         <p align="justify"><font face="verdana" size="2">Si  el  nuevo sitio está dentro de  la  circunferencia definida por los  tres  sitios correspondientes  a  la tripleta:   borrar indicador   (falsa  alarma).</font></p>   </blockquote> </blockquote>     <p align="justify"><font face="verdana" size="2">Insertar arista <i>p<sub>k</sub ></i>-<i>p<sub>i</sub ></i>.</font></p>     <p align="justify"><font face="verdana" size="2">Insertar <i>p<sub>k</sub ></i> que   (corta <i>p<sub>i</sub ></i>)   en la linea de playa.</font></p>     <p align="justify"><font face="verdana" size="2">Verificar tripletas   (<i>p<sub>k</sub ></i> el más  izquierdo/derecho):   si  converge  añadir indicador.</font></p>     <p align="justify"><font face="verdana" size="2">Terminación:    (ya acabamos  con todos  los  sitios <i>p<sub>k</sub ></i>,   cola de prioridad Q vacia) Es posible  que  la linea de playa contenga  sitios  con indicador de  tripleta:</font></p>     <p align="justify"><font face="verdana" size="2">Mientras haya  sitios  con indicador de  tripleta    ]]></body>
<body><![CDATA[<br> </font><font face="verdana" size="2">La tripleta define un vértice,   añadirlo.    <br> </font><font face="verdana" size="2">Añadir arista con los  extremos  de  la tripleta.    <br> </font><font face="verdana" size="2">Eliminar el  sitio   (arco)   central</font> &alpha;    <br> <font face="verdana" size="2">En la nueva linea de playa,</font></p>     <blockquote>       <p align="justify"><font face="verdana" size="2">verificar tripletas  involucradas  con el  sitioeliminado,   llamémosmlo <i>p<sub>j</sub ></i>:    <br> </font><font face="verdana" size="2">Si predecesor de <i>p<sub>j</sub ></i>   tomado como centro de  tripleta converge:   añadir indicador</font></p> </blockquote>     <p align="justify"><font face="verdana" size="2">Si  sucesor de <i>p<sub>j</sub ></i>   tomado como centro de  tripleta converge:   añadir indicador    <br> </font><font face="verdana" size="2">Fin-Mientras</font></p>     <p align="justify"><font face="verdana" size="2"><b>EJEMPLO DE EJECUCIÓN DE LA VARIANTE</b></font></p>     ]]></body>
<body><![CDATA[<p align="center"><img src="img/revistas/rit/v4n2/a03_figura05.gif" width="381" height="249"></p>     <p align="center"><img src="img/revistas/rit/v4n2/a03_figura06.gif" width="685" height="191"><img src="img/revistas/rit/v4n2/a03_figura07.gif" width="672" height="266"></p>     <p align="center"><img src="img/revistas/rit/v4n2/a03_figura08.gif" width="679" height="513"></p>     <p align="center"><img src="img/revistas/rit/v4n2/a03_figura09.gif" width="675" height="470"></p>     <p align="center"><img src="img/revistas/rit/v4n2/a03_figura10.gif" width="675" height="997"></p>     <p align="center"><img src="img/revistas/rit/v4n2/a03_figura11.gif" width="675" height="951"></p>     <p align="center"><img src="img/revistas/rit/v4n2/a03_figura12.gif" width="671" height="1000"></p>     <p align="center"><img src="img/revistas/rit/v4n2/a03_figura13.gif" width="673" height="829"></p>     <p align="center"><img src="img/revistas/rit/v4n2/a03_figura14.gif" width="673" height="999"></p>     <p align="justify"><img src="img/revistas/rit/v4n2/a03_figura15.gif" width="675" height="213"></p>     ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2">Terminación:</font></p>     <p align="justify"><font face="verdana" size="2">La cola está vacía pero la línea de playa contiene sitios con indicador de tripleta.</font></p>     <p align="justify"><font face="verdana" size="2">LP =  <i>p<sub>1</sub ></i> <i>p<sub>4</sub ></i><i> p<sub>6 </sub ></i><i>p<sub>4</sub ></i><i> p<sub>7</sub ></i><i> p<sub>4</sub ></i><i> p<sub>3</sub ></i><i> p<sub>5</sub ></i><i> p<sub>3</sub ></i></font><font face="verdana" size="2"><i> p<sub>1</sub ></i></font></p>     <p align="justify"><font face="verdana" size="2">Insertar vértice y arista-extremos para <i>p<sub>1</sub ></i> <i>p<sub>4 </sub >p<sub>6</sub ></i>:</font></p>     <p align="justify"><font face="verdana" size="2">D = <i>p<sub>1</sub ></i>-<i>p<sub>2 </sub ></i><i>p<sub>2</sub ></i>-<i>p<sub>3</sub ></i><i> p<sub>2</sub ></i>-<i>p<sub>4</sub ></i><i> p<sub>3</sub ></i>-<i>p<sub>1 </sub ></i><i>p<sub>3</sub ></i>-<i>p<sub>5</sub ></i><i> p<sub>1</sub ></i>-<i>p<sub>4</sub ></i><i> p<sub>4</sub ></i>-<i>p<sub>3</sub ></i><i> p<sub>4</sub ></i>-<i>p<sub>6</sub ></i><i> p<sub>4</sub ></i>-<i>p<sub>7 </sub ></i><i>p<sub>1</sub ></i>-<i>p<sub>6</sub ></i><i> p<sub>c321</sub ></i><i> p<sub>c124</sub ></i><i> p<sub>c423</sub ></i><i> p<sub>c146</sub ></i></font></p>     <p align="justify"><font face="verdana" size="2">Eliminar arco central <i>p<sub>4</sub ></i>:</font></p>     <p align="justify"><font face="verdana" size="2">LP =<i>p<sub>6 </sub ></i><i>p<sub>6</sub ></i><i> p<sub>4 </sub ></i><i>p<sub>7</sub ></i><i> p<sub>4</sub ></i> <i>p<sub>3 </sub ></i><i> p<sub>5</sub ></i><i> p<sub>3 </sub ></i><i>p<sub>1</sub ></i></font></p>     <p align="justify"><font face="verdana" size="2">Verificar (en la nueva línea de playa) tripletas involucradas con el sitio eliminado <i>p<sub>4</sub ></i>:     <br>   Su predecesor es <i>p<sub>1</sub ></i>: <i>p<sub>nphay</sub ></i><i>p<sub>1</sub ></i><i>p<sub>6</sub ></i> no procede.     <br> Su sucesor    es<i> p<sub>6</sub ></i>:<i>p<sub>1</sub ></i><i>p<sub>6</sub ></i><i>p<sub>4</sub ></i>      no converge.</font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2">Insertar vértice y arista-extremos para <i>p<sub>6</sub ></i><i> p<sub>4</sub ></i><i> p<sub>7</sub ></i>:</font></p>     <p align="justify"><font face="verdana" size="2">D = <i>p<sub>1</sub ></i>-<i>p<sub>2</sub ></i> <i>p<sub>2</sub ></i>-<i>p<sub>3</sub ></i> <i>p<sub>2</sub ></i>-<i>p<sub>4</sub ></i> <i>p<sub>3</sub ></i>-<i>p<sub>1</sub ></i> <i>p<sub>3</sub ></i>-<i>p<sub>5</sub ></i> <i>p<sub>1</sub ></i>-<i>p<sub>4</sub ></i><i> p<sub>4</sub ></i>-<i>p<sub>3</sub ></i> <i>p<sub>4</sub ></i>-<i>p<sub>6</sub ></i> <i>p<sub>4</sub ></i>-<i>p<sub>7</sub ></i> <i>p<sub>1</sub ></i>-<i>p<sub>6</sub ></i> <i>p<sub>6</sub ></i>-<i>p<sub>7</sub ></i> <i>p<sub>c321</sub ></i><i> p<sub>c124</sub ></i><i> p<sub>c423</sub ></i><i> p<sub>c146 </sub >p<sub>c647</sub ></i></font></p>     <p align="justify"><font face="verdana" size="2">Eliminar arco central <i>p<sub>4</sub ></i>:</font></p>     <p align="justify"><font face="verdana" size="2">LP = <i>p<sub>1</sub ></i><i>p<sub>6</sub ></i><i>p<sub>7</sub ></i><i>p<sub>4</sub ></i><i>p<sub>3</sub ></i><i> p<sub>5</sub ></i><i>p<sub>3</sub ></i><i>p<sub>1</sub ></i></font></p>     <p align="justify"><font face="verdana" size="2">Verificar (en la nueva línea de playa) tripletas involucradas con el sitio eliminado <i>p<sub>4</sub ></i>:     <br> Su predecesor es <i>p<sub>6</sub ></i>: <i>p<sub>1</sub ></i><i>p<sub>6</sub ></i><i>p<sub>7</sub ></i> no converge.     <br> Su sucesor    es <i>p<sub>7</sub ></i>: <i>p<sub>6</sub ></i><i>p<sub>7</sub ></i><i>p<sub>4</sub ></i> no converge.</font></p>     <p align="justify"><font face="verdana" size="2">Insertar vértice y arista-extremos para <i>p<sub>7</sub ></i><i>p<sub>4</sub ></i><i>p<sub>3</sub ></i>:</font></p>     <p align="justify"><font face="verdana" size="2">D = <i>p<sub>1</sub ></i>-<i>p<sub>2 </sub ></i><i>p<sub>2</sub ></i>-<i>p<sub>3</sub ></i><i> p<sub>2</sub ></i>-<i>p<sub>4</sub ></i> <i>p<sub>3</sub ></i>-<i>p<sub>1</sub ></i> <i>p<sub>3</sub ></i>-<i>p<sub>5</sub ></i> <i>p<sub>1</sub ></i>-<i>p<sub>4</sub ></i><i> p<sub>4</sub ></i>-<i>p<sub>3</sub ></i> <i>p<sub>4</sub ></i>-<i>p<sub>6</sub ></i> <i>p<sub>4</sub ></i>-<i>p<sub>7</sub ></i> <i>p<sub>1</sub ></i>-<i>p<sub>6</sub ></i> <i>p<sub>6</sub ></i>-<i>p<sub>7</sub ></i><i> p<sub>7</sub ></i>-<i>p<sub>3</sub ></i>     <br> <i>p<sub>c321</sub ></i><i> p<sub>c124</sub ></i><i> p<sub>c423</sub ></i><i> p<sub>c146 </sub >p<sub>c647</sub ></i></font> <font face="verdana" size="2"><i>p<sub>c743</sub ></i></font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2">Eliminar arco central <i>p<sub>4</sub ></i>:</font></p>     <p align="justify"><font face="verdana" size="2">LP = <i>p<sub>1</sub ></i><i>p<sub>6</sub ></i><i>p<sub>7</sub ></i><i>p<sub>3</sub ></i><i> p<sub>5</sub ></i><i>p<sub>3</sub ></i><i>p<sub>1</sub ></i></font></p>     <p align="justify"><font face="verdana" size="2">Verificar (en la nueva línea de playa) tripletas involucradas con el sitio eliminado <i>p<sub>4</sub ></i>:</font></p>     <p align="justify"><font face="verdana" size="2">Su predecesor es <i>p<sub>7</sub ></i>: <i>p<sub>6</sub ></i><i>p<sub>7</sub ></i><i>p<sub>3</sub ></i> no converge.    <br> </font><font face="verdana" size="2">Su sucesor    es <i>p<sub>3</sub ></i>: <i>p<sub>7</sub ></i><i>p<sub>3</sub ></i><i>p<sub>5</sub ></i> converge, añadir indicador de tripleta.</font></p>     <p align="justify"><font face="verdana" size="2">LP = <i>p<sub>1</sub ></i><i>p<sub>6</sub ></i><i>p<sub>7</sub ></i><i>p<sub>3</sub ></i><i> p<sub>5</sub ></i><i>p<sub>3</sub ></i><i>p<sub>1</sub ></i></font></p>     <p align="justify"><font face="verdana" size="2">Insertar vértice y arista-extremos para <i>p<sub>7</sub ></i><i>p<sub>3</sub ></i><i>p<sub>5</sub ></i>:</font></p>     <p align="justify"><font face="verdana" size="2">D = <i>p<sub>1</sub >-p<sub>2 </sub >p<sub>2</sub >-p<sub>3</sub ></i> <i>p<sub>2</sub >-p<sub>4</sub ></i> <i>p<sub>3</sub >-p<sub>1</sub ></i> <i>p<sub>3</sub >-p<sub>5</sub ></i> <i>p<sub>1</sub >-p<sub>4 </sub >p<sub>4</sub >-p<sub>3 </sub >p<sub>4</sub >-p<sub>6</sub ></i> <i>p<sub>4</sub >-p<sub>7</sub ></i> <i>p<sub>1</sub >-p<sub>6</sub > p<sub>6</sub >-p<sub>7</sub > p<sub>7</sub >-p<sub>3</sub ></i> <i>p<sub>7</sub ></i>-<i>p<sub>5</sub ></i>     <br> 	<i>p<sub>c321</sub > p<sub>c124</sub > p<sub>c423</sub > p<sub>c146 </sub >p<sub>c647</sub ></i></font> <font face="verdana" size="2"><i>p<sub>c743</sub ></i></font> <font face="verdana" size="2"><i>p<sub>c735</sub ></i></font></p>     <p align="justify"><font face="verdana" size="2">Eliminar arco central <i>p<sub>3</sub ></i>:</font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2">LP = <i>p<sub>1</sub ></i><i>p<sub>6</sub ></i><i>p<sub>7</sub ></i><i>p<sub>5</sub ></i><i>p<sub>3</sub ></i><i>p<sub>1</sub ></i></font></p>     <p align="justify"><font face="verdana" size="2">Verificar (en la nueva línea de playa) tripletas involucradas con el sitio eliminado <i>p<sub>4</sub ></i>:     <br> Su predecesor es <i>p<sub>7</sub ></i>: <i>p<sub>6</sub ></i><i>p<sub>7</sub ></i><i>p<sub>5</sub ></i> no converge.     <br> Su sucesor    es <i>p<sub>5</sub ></i>: <i>p<sub>7</sub ></i><i>p<sub>5</sub ></i><i>p<sub>3</sub ></i> no converge.</font></p>     <p align="justify"><font face="verdana" size="2">Insertar vértice y arista-extremos para <i>p<sub>5</sub ></i><i>p<sub>3</sub ></i><i>p<sub>1</sub ></i>:</font></p>     <p align="justify"><font face="verdana" size="2">D = <i>p<sub>1</sub ></i>-<i>p<sub>2 </sub >p<sub>2</sub >-p<sub>3</sub ></i><i> p<sub>2</sub ></i>-<i>p<sub>4</sub ></i> <i>p<sub>3</sub >-p<sub>1</sub ></i> <i>p<sub>3</sub >-p<sub>5</sub ></i> <i>p<sub>1</sub >-p<sub>4</sub > p<sub>4</sub >-p<sub>3</sub > p<sub>4</sub >-p<sub>6</sub ></i> <i>p<sub>4</sub >-p<sub>7</sub ></i> <i>p<sub>1</sub >-p<sub>6</sub > p<sub>6</sub >-p<sub>7</sub > p<sub>7</sub >-p<sub>3</sub > p<sub>7</sub >-p<sub>5</sub > p<sub>5</sub >-p<sub>1</sub >    <br> p<sub>c321</sub > p<sub>c124</sub > p<sub>c423</sub > p<sub>c146 </sub >p<sub>c647</sub ></i></font> <font face="verdana" size="2"><i>p<sub>c743</sub ></i></font> <font face="verdana" size="2"><i>p<sub>c735</sub ></i></font> <font face="verdana" size="2"><i>p<sub>c531</sub ></i></font></p>     <p align="justify"><font face="verdana" size="2">Eliminar arco central <i>p<sub>3</sub ></i>:</font></p>     <p align="justify"><font face="verdana" size="2">LP = <i>p<sub>1</sub ></i>p<sub>6</sub><i>p<sub>7</sub ></i><i>p<sub>5</sub ></i><i>p<sub>1</sub ></i></font></p>     <p align="justify"><font face="verdana" size="2">Verificar (en la nueva línea de playa) tripletas involucradas con el sitio eliminado <i>p<sub>4</sub ></i>:</font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2">Su predecesor es <i>p<sub>5</sub ></i>: <i>p<sub>7</sub ></i><i>p<sub>5</sub ></i><i>p<sub>1</sub ></i>      no converge.</font></p>     <p align="justify"><font face="verdana" size="2">Su sucesor    es <i>p<sub>1</sub ></i>: pspipnohay  no procede.</font></p>     <p align="justify"><font face="verdana" size="2">Hemos finalizado. El diagrama de Voronoi para el ejemplo es este:</font></p>     <p align="justify"><font face="verdana" size="2">D = <i>p<sub>1</sub ></i>-<i>p<sub>2 </sub >p<sub>2</sub >-p<sub>3</sub ></i> <i>p<sub>2</sub >-p<sub>4</sub ></i> <i>p<sub>3</sub >-p<sub>1</sub ></i> <i>p<sub>3</sub >-p<sub>5</sub ></i> <i>p<sub>1</sub >-p<sub>4 </sub >p<sub>4</sub >-p<sub>3 </sub >p<sub>4</sub >-p<sub>6</sub ></i> <i>p<sub>4</sub >-p<sub>7</sub ></i> <i>p<sub>1</sub >-p<sub>6</sub > p<sub>6</sub >-p<sub>7</sub ></i> <i>p<sub>7</sub >-p<sub>3</sub ></i> <i>p<sub>7</sub >-p<sub>5</sub > p<sub>5</sub >-p<sub>1    <br> </sub ></i></font><font face="verdana" size="2"><i>p<sub>c321</sub > p<sub>c124</sub > p<sub>c423</sub > p<sub>c146 </sub >p<sub>c647</sub ></i></font> <font face="verdana" size="2"><i>p<sub>c743</sub ></i></font> <font face="verdana" size="2"><i>p<sub>c735</sub ></i></font> <font face="verdana" size="2"><i>p<sub>c531</sub ></i></font></p>     <p align="justify"><font face="verdana" size="2">Podría verse así, <u>algunas</u> aristas y vértices presentes en D se señalan con flechas torpemente dibujadas:</font></p>     <p align="center"><img src="img/revistas/rit/v4n2/a03_figura16.gif" width="657" height="389"></p>     <p align="justify">&nbsp;</p>     <p align="justify">&nbsp;</p>      ]]></body><back>
<ref-list>
<ref id="B1">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[De Berg]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Van Kreveld]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Overmars]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Scwarzkopf]]></surname>
<given-names><![CDATA[O]]></given-names>
</name>
</person-group>
<source><![CDATA[Computational geometry]]></source>
<year>1997</year>
<publisher-name><![CDATA[Springer]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B2">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Fortune]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
</person-group>
<source><![CDATA[A Sweep Une Algorithm for Voronoi Diagrams]]></source>
<year>1987</year>
<page-range>153-174</page-range><publisher-name><![CDATA[Algorithmic]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B3">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Gravesen]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<source><![CDATA[Guide to Computational Geometry Processing]]></source>
<year>2012</year>
<publisher-name><![CDATA[Springer]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B4">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Guibas]]></surname>
<given-names><![CDATA[L. J]]></given-names>
</name>
<name>
<surname><![CDATA[Stolfi]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Ruler, Compass, and Computer: The Design and Analysis of. Geometric Algorithms]]></article-title>
<source><![CDATA[Theoretical Foundations of Comput. Graph. and CAD]]></source>
<year>1989</year>
<volume>40</volume>
<page-range>111-165</page-range><publisher-name><![CDATA[Springer]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B5">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[O'Rourke]]></surname>
<given-names><![CDATA[C. J.]]></given-names>
</name>
</person-group>
<source><![CDATA[Computational geometry]]></source>
<year>1994</year>
<publisher-name><![CDATA[Cambridge University Press]]></publisher-name>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
