<?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>1646-9895</journal-id>
<journal-title><![CDATA[RISTI - Revista Ibérica de Sistemas e Tecnologias de Informação]]></journal-title>
<abbrev-journal-title><![CDATA[RISTI]]></abbrev-journal-title>
<issn>1646-9895</issn>
<publisher>
<publisher-name><![CDATA[AISTI - Associação Ibérica de Sistemas e Tecnologias de Informação]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S1646-98952015000100008</article-id>
<article-id pub-id-type="doi">10.17013/risti.e3.85-92</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Mapeos Proyectivos: la base para el Funcionamiento del Pizarrón Interactivo WiimoteWhiteboard]]></article-title>
<article-title xml:lang="en"><![CDATA[Projective Mapping: the base function of the WiimoteWhiteboard]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Vázquez-Reyes]]></surname>
<given-names><![CDATA[Sodel]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Villa-Cisneros]]></surname>
<given-names><![CDATA[Juan L.]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Anaya-Villagrana]]></surname>
<given-names><![CDATA[José E.]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Barrera-Ambriz]]></surname>
<given-names><![CDATA[Fernando J.]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[León-Sigg]]></surname>
<given-names><![CDATA[María de]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Ramírez]]></surname>
<given-names><![CDATA[Carlos H. Casteñeda]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad Autónoma de Zacatecas  ]]></institution>
<addr-line><![CDATA[Zacatecas ]]></addr-line>
<country>México</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>03</month>
<year>2015</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>03</month>
<year>2015</year>
</pub-date>
<numero>spe3</numero>
<fpage>85</fpage>
<lpage>92</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://scielo.pt/scielo.php?script=sci_arttext&amp;pid=S1646-98952015000100008&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.pt/scielo.php?script=sci_abstract&amp;pid=S1646-98952015000100008&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.pt/scielo.php?script=sci_pdf&amp;pid=S1646-98952015000100008&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[En la actualidad han surgido diversos proyectos que se enfocan en la implementación de pizarrones interactivos de bajo costo usando el control Wii como principal componente. Sin embargo, aunque hay una gran cantidad de información acerca de estos proyectos y de cómo implementar este tipo de pizarrones, el funcionamiento que hay detrás de este proyecto aun no es muy conocido. En este artículo, se describe el algoritmo base para la implementación de este tipo de pizarrones, el cual está basado en transformaciones proyectivas, usando una matriz de Homografía.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[Nowadays, many emerging projects focus mainly in developing low cost interactive whiteboards, having the Wiimote as their main working tool. However, although there is a lot of information about these projects and how to implement these interactive whiteboards, only few people know how this project really works. This article describes the base algorithm of the low cost interactive whiteboards, which is based in projective transformations, using a homography matrix. The implementation of this technology in Mexican educative institutions could reinforce learning processes at all levels, without the need to spend too much. This is a collateral advantage of information technology re-engineering.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[Homografía]]></kwd>
<kwd lng="es"><![CDATA[pizarrón interactivo y operaciones de matriz]]></kwd>
<kwd lng="en"><![CDATA[homography]]></kwd>
<kwd lng="en"><![CDATA[interactive board and matrix operations]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <p align="right"><b>ARTÍCULOS</b></p>     <p><b>Mapeos Proyectivos: la base para el Funcionamiento del Pizarr&oacute;n Interactivo WiimoteWhiteboard</b></p>     <p> <b>Projective Mapping: the base function of the WiimoteWhiteboard</b></p>     <p>&nbsp;</p>     <p> <b>Sodel V&aacute;zquez-Reyes <sup>1</sup>, Juan L. Villa-Cisneros <sup>2</sup>, Jos&eacute; E. Anaya-Villagrana <sup>3</sup>, Fernando J. Barrera-Ambriz <sup>4</sup>, Mar&iacute;a de Le&oacute;n-Sigg <sup>5</sup> y Carlos H. Caste&ntilde;eda Ram&iacute;rez<sup>6</sup></b></p>     <p> <sup>1</sup> Profesor Investigador de la UAZ, Edificio de Ingenier&iacute;a en Computaci&oacute;n y Software, 1er Piso. Carretera a Guadalajara Km 6, Ejido la Escondida., 98160, Zacatecas, M&eacute;xico. E-mail: <a href="mailto:vazquezs@uaz.edu.mx">vazquezs@uaz.edu.mx</a></p>     <p> <sup>2</sup> Profesor Investigador de la UAZ, Edificio de Ingenier&iacute;a en Computaci&oacute;n y Software, 1er Piso. Carretera a Guadalajara Km 6, Ejido la Escondida., 98160, Zacatecas, M&eacute;xico. E-mail: <a href="mailto:jlvilla@uaz.edu.mx">jlvilla@uaz.edu.mx</a></p>     <p> <sup>3</sup> Egresado de Ingenier&iacute;a en Computaci&oacute;n (UAZ), patrocinio 118, col. centro, 98000, Zacatecas, Zac.E-mail: <a href="mailto:gran_ed@hotmail.com">gran_ed@hotmail.com</a></p>     <p> <sup>4</sup> Egresado de Ingenier&iacute;a en Computaci&oacute;n (UAZ), patrocinio 118, col. centro, 98000, Zacatecas, Zac. E-mail: <a href="mailto:fer_kail@hotmail.com">fer_kail@hotmail.com</a></p>     <p> <sup>5</sup> Profesor Investigador de la UAZ, Edificio de Ingenier&iacute;a en Computaci&oacute;n y Software, 1er Piso. Carretera a Guadalajara Km 6, Ejido la Escondida., 98160, Zacatecas, M&eacute;xico. E-mail: <a href="mailto:melonsigg@uaz.edu.mx">melonsigg@uaz.edu.mx</a></p>     ]]></body>
<body><![CDATA[<p> <sup>6</sup> Profesor Investigador de la UAZ, Edificio de Ingenier&iacute;a en Computaci&oacute;n y Software, 1er Piso. Carretera a Guadalajara Km 6, Ejido la Escondida., 98160, Zacatecas, M&eacute;xico. E-mail: <a href="mailto:castr@uaz.edu.mx">castr@uaz.edu.mx</a></p>     <p>&nbsp; </p>     <p> <b>RESUMEN</b></p>     <p> En la actualidad han surgido diversos proyectos que se enfocan en la implementaci&oacute;n de pizarrones interactivos de bajo costo usando el control Wii como principal componente. Sin embargo, aunque hay una gran cantidad de informaci&oacute;n acerca de estos proyectos y de c&oacute;mo implementar este tipo de pizarrones, el funcionamiento que hay detr&aacute;s de este proyecto aun no es muy conocido. En este art&iacute;culo, se describe el algoritmo base para la implementaci&oacute;n de este tipo de pizarrones, el cual est&aacute; basado en transformaciones proyectivas, usando una matriz de Homograf&iacute;a.</p>     <p> <b>Palabras-clave:</b> Homograf&iacute;a, pizarr&oacute;n interactivo y operaciones de matriz.</p>     <p>&nbsp; </p>     <p> <b>ABSTRACT</b></p>     <p> Nowadays, many emerging projects focus mainly in developing low cost interactive whiteboards, having the Wiimote as their main working tool. However, although there is a lot of information about these projects and how to implement these interactive whiteboards, only few people know how this project really works. This article describes the base algorithm of the low cost interactive whiteboards, which is based in projective transformations, using a homography matrix. The implementation of this technology in Mexican educative institutions could reinforce learning processes at all levels, without the need to spend too much. This is a collateral advantage of information technology re-engineering.</p>     <p> <b>Keywords:</b> homography, interactive board and matrix operations.</p>     <p>&nbsp; </p>     ]]></body>
<body><![CDATA[<p> <b>1.&nbsp; Introducci&oacute;n</b></p>     <p> Uno de los recursos did&aacute;cticos m&aacute;s innovadores para la impartici&oacute;n de clases son los pizarrones interactivos, los cuales pueden ser catalogados como t&aacute;ctiles o resistivos, electromagn&eacute;ticos, ultras&oacute;nicos-infrarrojos e infrarrojos. No obstante a pesar de ser un recurso did&aacute;ctico novedoso, su alto costo comercial, los convierte en una herramienta pr&aacute;cticamente inaccesible para la mayor&iacute;a de las personas y sobretodo para la gran mayor&iacute;a de las instituciones educativas.</p>     <p> Por esta raz&oacute;n, surgi&oacute; un pizarr&oacute;n de tecnolog&iacute;a infrarroja conocido como WiimoteWhiteboard, el cual usa un control Wii como c&aacute;mara infrarroja, para detectar la posici&oacute;n de la pluma Infrarroja (IR). Hoy en d&iacute;a existe una gran variedad de pizarrones que hacen uso del control Wii, con diferentes variaciones en la funcionalidad como es el soporte de varios controles, portabilidad en varios sistemas operativos, reconocimiento del doble clic y diferentes configuraciones del mouse. Tambi&eacute;n existen sitios en la web, donde explican c&oacute;mo montar un pizarr&oacute;n de este tipo y qu&eacute; componentes se requieren, sin embargo, en ninguno de estos sitios se explica c&oacute;mo es que este pizarr&oacute;n funciona.</p>     <p> Es por esto que se decidi&oacute; analizar los trabajos actuales hechos sobre este pizarr&oacute;n y crear un algoritmo que permita entender el funcionamiento del pizarr&oacute;n, para poder implementarlo en cualquier lenguaje de programaci&oacute;n. Una vez logrado esto, ser&aacute; posible que las personas, desarrollen sus propios pizarrones interactivos con caracter&iacute;sticas y funcionalidades propias, en lugar de utilizar software de terceros que podr&iacute;an no ajustarse a sus necesidades.</p>     <p>&nbsp; </p>     <p> <b>2. Marco de Referencia</b></p>     <p> El primero que us&oacute; el control Wii como sensor para crear un pizarr&oacute;n interactivo fue Johnny Chung Lee, cuando desarroll&oacute; en el lenguaje de programaci&oacute;n C#, la aplicaci&oacute;n WiimoteWhiteboard en Junio de 2008 (Lee, 2012). Mediante el uso de esta aplicaci&oacute;n y un control de la consola Wii, logr&oacute; usar cualquier proyecci&oacute;n de computadora sobre una superficie t&aacute;ctil, y mover el cursor del rat&oacute;n dentro de la computadora donde el usuario lo indicara con su pluma infrarroja en la proyecci&oacute;n. Solamente se ten&iacute;a que calibrar la imagen donde se quer&iacute;a usar la pluma y que el control Wii tuviera acceso al led IR de la pluma.</p>     <p> Para que Chung Lee pudiera realizar toda esta tarea, necesitaba la informaci&oacute;n enviada por el control Wii y almacenarla. Esta tarea la realiz&oacute; Brian Peek, quien desarroll&oacute; la primera biblioteca llamada Wiimotelib (Jin, 2012), que permit&iacute;a hacer uso de las funciones que ofrec&iacute;a el control Wii. Peek logr&oacute; leer la informaci&oacute;n del control Wii, as&iacute; como la conexi&oacute;n y desconexi&oacute;n correcta del control para usar los datos del control Wii correctamente.</p>     <p> Desde la aparici&oacute;n de la biblioteca Wiimotelib y de la aplicaci&oacute;n de WiimoteWhiteboard, muchos usuarios han desarrollado sus propias aplicaciones para convertir una proyecci&oacute;n en un pizarr&oacute;n interactivo tal y como lo hizo Chung Lee. Las m&aacute;s importantes son Wiimote Whiteboard for Java, creada por Uwe Schmidt (Peek, 2012), wiiBoardJ creada por Jan Markowski (Markowski, 2012) y Wiimote Smoothboard hecha por Goh Boon Jin (Schmidt, 2012).</p>     <p>&nbsp; </p>     ]]></body>
<body><![CDATA[<p> <b>3.&nbsp;&nbsp; Geometr&iacute;a Proyectiva, Base de los Pizarrones Wiimote</b></p>     <p> Este trabajo est&aacute; basado en el programa desarrollado por Uwe Schimdt, porque se busc&oacute; desarrollar un producto de software que fuera soportado por diferentes sistemas operativos, tales como, Linux, Windows y Mac OS. Al igual que en otros proyectos, Uwe Schimdt no explicaba como era el verdadero funcionamiento del control Wii en este tipo de pizarrones. El principal problema enfrentado fue que cuando el sensor IR o la c&aacute;mara IR del control Wii detecta los puntos infrarrojos, est&aacute; detect&aacute;ndolos en un plano totalmente diferente al que se tiene en la pantalla de la computadora.</p>     <p> Para poder hacer coincidir los planos de la pantalla de la computadora y el que es detectado por el control Wii, se tuvo que hacer an&aacute;lisis de la geometr&iacute;a proyectiva, la cual es el fundamento de la calibraci&oacute;n del pizarr&oacute;n. Cuando se calibra el espacio de trabajo, generalmente se coloca un punto en cada una de las 4 esquinas de la proyecci&oacute;n, que son donde se tendr&aacute; que poner la pluma IR para que pueda hacer la calibraci&oacute;n por medio de la c&aacute;mara o sensor IR.</p>     <p> Para que el pizarr&oacute;n pueda funcionar, hay que convertir el cuadril&aacute;tero irregular que detecta, a un cuadrado o rect&aacute;ngulo que representa el &aacute;rea de trabajo tal y como es, como se muestra en la <a href="#f1">Figura 1</a>. Para lograr esto se hace el uso de transformaciones y homograf&iacute;as.</p>     <p>&nbsp;</p> <a name="f1"></a> <img src="/img/revistas/rist/spe3/spe3a08f1.jpg">     
<p>&nbsp;</p>     <p> La transformaci&oacute;n que se usa es conocida como mapeo 2D, el cual distorsiona un espacio origen 2D en un espacio destino 2D. Mapea un punto origen (<i>x, y</i>) a un punto destino (<i>u, v</i>), de acuerdo a las funciones <i>x(u, v)</i> y <i>y(u ,v).</i> Las clases m&aacute;s simples de mapeo 2D son las transformaciones af&iacute;n, bilineal y proyectiva. La &uacute;ltima es la que m&aacute;s interesa, ya que es la que la que se usar&aacute; para la calibraci&oacute;n del espacio de trabajo.</p>     <p> En la geometr&iacute;a proyectiva el punto real 2D (<i>x, y</i>) es representado por el vector homog&eacute;neo <i>P=(x&rsquo;, y&rsquo;, w)=(xw, yw, w),</i> donde <i>w</i> es un n&uacute;mero arbitrario diferente de <i>0</i>, ya que para poder recobrar las coordenadas actuales del vector homog&eacute;neo, simplemente se divide entre el componente homog&eacute;neo. En el caso del vector homog&eacute;neo P, representa el punto actual <i>(x, y)=(x&rsquo;/w, y&rsquo;/w),</i> si <i>w=0</i>, se dice que el espacio proyectivo tiene puntos que tienden a infinito, para este caso en particular, se iguala w=1, por conveniencia.</p>     <p> Para el mapeo o transformaci&oacute;n proyectiva se denotan los puntos en el espacio origen con <i>Ps=(x&rsquo;, y&rsquo;, q)</i> y los puntos en el espacio destino con <i>Pd=(u&rsquo;, v&rsquo;, w).</i> Para realizar el mapeo entre el espacio origen y el destino, se hace uso de una matriz de transformaci&oacute;n de 3x3 conocida como matriz de homograf&iacute;a, la cual es denotada normalmente como H y se representa en la ecuaci&oacute;n 1.</p>     <p><img src="/img/revistas/rist/spe3/spe3a08e1.jpg"></p>     
]]></body>
<body><![CDATA[<p> La manipulaci&oacute;n de los mapeos proyectivos es representada por la ecuaci&oacute;n 2, y su interpretaci&oacute;n es m&aacute;s f&aacute;cil si se pasa a la notaci&oacute;n de matriz homog&eacute;nea representada por la ecuaci&oacute;n 3.</p>     <p><img src="/img/revistas/rist/spe3/spe3a08e2.jpg"></p>     
<p><img src="/img/revistas/rist/spe3/spe3a08e3.jpg"></p>     
<p> donde:</p>     <p> Pd es el plano destino, representado en forma de vector como <i>(ui, vi,&nbsp; wi)<sup>T</sup></i>.</p>     <p> <i>Msd=H</i> que es la matriz de homograf&iacute;a.</p>     <p> <i>Ps</i> es el plano origen, representado en forma de vector como <i>(xi, yi,&nbsp; qi)<sup>T</sup></i>.</p>     <p> <i>Y(x, y)=(x&rsquo;/q, y&rsquo;/q)</i> para <i>q</i><i>0 </i>y</p>     <p> <i>(u, v)=(u&rsquo;/w, v&rsquo;/w)</i> para <i>w</i><i>0</i>.</p>     <p> En este caso en particular se tomar&aacute; un m&uacute;ltiplo escalar diferente de 0, por lo tanto sin perder generalidad podemos asumir que <i>h<sub>22</sub></i>=1 d&aacute;ndonos 8 grados de libertad en un mapeo proyectivo 2D.</p>     ]]></body>
<body><![CDATA[<p> Hay que poner la transformaci&oacute;n en una forma m&aacute;s entendible, si se conocen los vectores <i>(ui, vi,&nbsp; wi)<sup>T</sup></i> y <i>(xi, yi,&nbsp; qi)<sup>T</sup></i>, entonces se tiene que calcular la matriz <i>H</i>, que es la que contiene las 8 inc&oacute;gnitas que se necesitan, por lo tanto, se obtienen las ecuaciones descritas en 4:</p>     <p><img src="/img/revistas/rist/spe3/spe3a08e4.jpg"></p>     
<p> Entonces si en coordenadas homog&eacute;neas se tiene que <i>ui&rsquo;=ui/w</i> y <i>vi&rsquo;=vi/w</i> se tiene que w= , se obtienen las ecuaciones 5 y 6 para cada uno de los puntos (<i>x,y</i>) del plano origen al plano destino:</p>     <p><img src="/img/revistas/rist/spe3/spe3a08e5.jpg"></p>     
<p> Las ecuaciones 5 y 6 corresponden a un solo punto <i>(x,y)</i>, si se tienen 4 correspondencias de puntos para <i>i</i> de <i>0</i> a <i>3</i>, entonces se pueden expresar estas ecuaciones en forma matricial de <i>Ax=b</i> quedando un sistema de <i>8x8</i>, como lo muestra la ecuaci&oacute;n 7.</p>     <p><img src="/img/revistas/rist/spe3/spe3a08e7.jpg"></p>     
<p> Este sistema lineal puede ser resuelto usando el Algoritmo de Transformaci&oacute;n Lineal Directa para la obtenci&oacute;n de las coordenadas espaciales tridimensionales de un objeto (DLT), en caso de ponerlo como <i>Ax=0</i>, para los coeficientes <i>h<sub>00</sub>-h<sub>21</sub></i>. Si el mapeo inverso es deseado en su lugar, entonces se puede calcular la matriz adjunta de <i>H</i>, pero en casos especiales de velocidad cr&iacute;tica como el caso que se presenta, hay f&oacute;rmulas m&aacute;s eficientes para el c&aacute;lculo de la matriz de transformaci&oacute;n. En el uso de la f&oacute;rmula 7, hay 3 casos a considerar: cuadrado a cuadril&aacute;tero, cuadril&aacute;tero a cuadrado y cuadril&aacute;tero a cuadril&aacute;tero, los cuales se pueden observar en la <a href="#f2">Figura 2</a>.</p>     <p>&nbsp;</p> <a name="f2"></a> <img src="/img/revistas/rist/spe3/spe3a08f2.jpg">     
<p>&nbsp;</p>     <p> <b>Caso 1</b>: el sistema es f&aacute;cilmente resuelto simb&oacute;licamente en el caso especial donde el cuadril&aacute;tero <i>xy </i>es un cuadrado unitario. Si la correspondencia de v&eacute;rtices de (u, v) a (x, y) es la siguiente:&nbsp; <i>(u0 ,v0) = (0, 0), (u1 ,v1) = (1, 0), (u2 ,v2) = (1, 1)</i> y <i>(u3 ,v3) = (0, 1)</i>. Al sustituir las <i>x</i> y <i>y</i>, en la ecuaci&oacute;n (7) y despejando las inc&oacute;gnitas (, &nbsp;y &nbsp;quedan las siguientes 8 ecuaciones:</p>     ]]></body>
<body><![CDATA[<p><img src="/img/revistas/rist/spe3/spe3a08e8.jpg"></p>     
<p><img src="/img/revistas/rist/spe3/spe3a08e9.jpg"></p>     
<p><img src="/img/revistas/rist/spe3/spe3a08e10.jpg"></p>     
<p><img src="/img/revistas/rist/spe3/spe3a08e11.jpg"></p>     
<p><img src="/img/revistas/rist/spe3/spe3a08e12.jpg"></p>     
<p><img src="/img/revistas/rist/spe3/spe3a08e13.jpg"></p>     
<p><img src="/img/revistas/rist/spe3/spe3a08e14.jpg"></p>     
<p><img src="/img/revistas/rist/spe3/spe3a08e15.jpg"></p>     
<p> <b>Caso 2</b>: el mapeo inverso, de un cuadril&aacute;tero a un cuadrado, tambi&eacute;n puede ser optimizado, si se usan las ecuaciones de cuadrado a cuadril&aacute;tero que se acaban de describir (8 a 15) para encontrar la inversa del mapeo deseado y luego se toma su adjunta para calcular el mapeo de cuadril&aacute;tero a cuadrado, lo cual puede verse en la <a href="#f2">Figura 2</a>, porque la inversa de un mapeo proyectivo es un mapeo proyectivo.</p>     <p> <b>Caso 3:</b> se pueden calcular los mapeos de un cuadrilateral a un cuadrado y de un cuadrado a un cuadrilateral r&aacute;pidamente, los 2 mapeos pueden f&aacute;cilmente ser compuestos, es decir, se multiplica la matriz del cuadril&aacute;tero a cuadrado por la matriz de cuadrado a cuadril&aacute;tero, para dar un mapeo de cuadril&aacute;tero a cuadril&aacute;tero.</p>     ]]></body>
<body><![CDATA[<p> Finalmente se pasaron los 3 casos anteriores a c&oacute;digo en lenguaje Java, se cre&oacute; una clase llamada TransformacionesProyectivas, la cual contiene 6 m&eacute;todos, un constructor, sus correspondientes accesores y mutadores. Cada uno de los 6 m&eacute;todos representa las principales operaciones matriciales que deben hacerse para el c&aacute;lculo de la matriz de transformaci&oacute;n, estos m&eacute;todos son los siguientes:</p> <ul>       <li> <i>cuadroCuadrilatero</i>: Este m&eacute;todo representa el caso 1 de las transformaciones proyectivas, donde se mapea un cuadrado unitario en un cuadril&aacute;tero irregular arbitrario, recibe como par&aacute;metro una matriz bidimensional de 4x2 y regresa como resultado una matriz de 3x3.</li>       <li> <i>cuadrilateroCuadro</i>: Este m&eacute;todo representa el caso 2 de las transformaciones proyectivas, donde al contrario del caso 1, se mapea un cuadril&aacute;tero irregular en un cuadrado unitario, recibe como par&aacute;metro una matriz bidimensional de 4x2 y regresa como resultado una matriz de transformaci&oacute;n de 3x3, este m&eacute;todo llama al m&eacute;todo cuadroCuadrilatero y luego aplica la operaci&oacute;n de matriz adjunta al resultado por medio del m&eacute;todo matrizAdjunta.</li>       <li> <i>cuadrilateroCuadrilatero</i>: Este m&eacute;todo multiplica las 2 matrices de transformaci&oacute;n obtenidas de los 2 casos anteriores por medio del m&eacute;todo multiplicaci&oacute;n y el resultado es la matriz de transformaci&oacute;n u homograf&iacute;a final de 3x3, la cual es asignada a una variable que representa esta matriz.</li>       <li> <i>matrizAdjunta</i>: Recibe como par&aacute;metro una matriz bidimensional de 3x3 y aplica la operaci&oacute;n de matriz adjunta a esta. Este m&eacute;todo ayuda al c&aacute;lculo del caso 2 de transformaciones proyectivas, ya que la inversa de una matriz de homograf&iacute;a es una matriz de homograf&iacute;a.</li>       <li> <i>multiplicacion</i>: Recibe como par&aacute;metro 2 matrices bidimensionales de 3x3 y las multiplica regresando una matriz bidimensional de 3x3. Este m&eacute;todo ayuda al c&aacute;lculo del caso 3, donde se tienen que multiplicar las matrices de transformaci&oacute;n del plano origen y el plano destino para sacar la matriz de transformaci&oacute;n que hace el mapeo entre estos 2 planos.</li>       <li> <i>transformacion</i>: este m&eacute;todo recibe como par&aacute;metro un punto 2D, la cual representa un punto (x,y) a ser transformado del un plano origen al plano destino y regresa un punto 2D, la cual representa el punto (x,y) transformado por medio de la matriz de transformaci&oacute;n.</li>     </ul>     <p> En el constructor se pasan como par&aacute;metros 2 matrices de 4x2, la primera representa los 4 puntos</p>     <p> <i>(x,y)</i> de las 4 esquinas del espacio de trabajo y la segunda los puntos <i>(x,y)</i> de las 4 esquinas de la pantalla de la computadora. Al llamar el m&eacute;todo cuadrilateroCuadrilateo calcula la matriz de transformaci&oacute;n para estos 2 planos, la cual es usada en el m&eacute;todo transformacion para calcular el punto equivalente entre los 2 planos. Esta clase aunque fue escrita en Java, puede ser implementada en cualquier lenguaje de programaci&oacute;n para as&iacute; poder mapear un punto de un plano a otro y poder implementar un pizarr&oacute;n interactivo en cualquier plataforma que se desee siempre y cuando se tengan las bibliotecas necesarias para conectar el Wiimote e interactuar con el stack del Bluetooth</p>     ]]></body>
<body><![CDATA[<p>&nbsp; </p>     <p> <b>4. Conclusiones</b></p>     <p> Despu&eacute;s de analizar el software del pizarr&oacute;n e investigar acerca de las homograf&iacute;as, como se describi&oacute; en la secci&oacute;n 3, el algoritmo implementa los 3 casos vistos acerca de las transformaciones proyectivas, con el cual se pudo reproducir exitosamente la transformaci&oacute;n de un punto detectado en un plano origen (la proyecci&oacute;n usada como espacio de trabajo) a un plano destino (la pantalla de la computadora), implementado con el lenguaje de programaci&oacute;n JAVA, y obteniendo un pizarr&oacute;n interactivo b&aacute;sico, en cuanto a funcionalidad se refiere, pero con la misma capacidad que el del software <i>WiimoteWhiteboard</i>.</p>     <p> Al demostrar que el mapeo proyectivo funciona, se puede concluir que usando geometr&iacute;a proyectiva se puede mapear un plano arbitrario origen en uno destino, usando operaciones matriciales para convertir un punto ubicado en el espacio origen a su equivalente en el espacio destino.</p>     <p> Se comprueba que los 3 casos de la geometr&iacute;a proyectiva: de cuadro unitario a cuadril&aacute;tero, de cuadril&aacute;tero a cuadro unitario y de cuadril&aacute;tero a cuadril&aacute;tero, permiten resolver el sistema de 8 ecuaciones y obtener la matriz de transformaci&oacute;n u homograf&iacute;a H mas r&aacute;pido y f&aacute;cil que al usar un algoritmo como DLT.</p>     <p> Finalmente, al implementar el c&oacute;digo, se comprueba que siguiendo los 3 casos de las transformaciones proyectivas, se puede desarrollar un algoritmo gen&eacute;rico para poder crear un pizarr&oacute;n interactivo infrarrojo funcional en cualquier lenguaje de programaci&oacute;n.</p>     <p>&nbsp; </p>     <p> <b>Referencias</b></p>     <p> Jin, G. B. (2012) Smoothboard. Accesado desde <a href="http://www.smoothboard.net/wiimote/" target="_blank">http://www.smoothboard.net/wiimote/</a></p>     <p> Lee, J. C. (2012) Wii Remote Projects. Accesado desde <a href="http://johnnylee.net" target="_blank">http://johnnylee.net</a></p>     ]]></body>
<body><![CDATA[<p> Markowski, J. (2012) wiiBoardJ. Accesado desde <a href="http://wiiboardj.veuti.com" target="_blank">http://wiiboardj.veuti.com</a></p>     <p> Peek, B. (2012) WiimoteLib - .NET Managed Library for the Nintendo Wii Remote. Accesado desde <a href="http://www.brianpeek.com/page/wiimotelib" target="_blank">http://www.brianpeek.com/page/wiimotelib</a></p>     <p> Schmidt, U. (2012) Wiimote Whiteboard. Accesado desde <a href="http://www.uweschmidt.org/wiimote-whiteboard" target="_blank">http://www.uweschmidt.org/wiimote-whiteboard</a></p>     <p>&nbsp;</p>     <p>Recebido / Recibido: 7/3/2015</p>     <p>Aceitação / Aceptación: 28/3/2015</p>      ]]></body>
</article>
