<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ubicuos.com &#187; Ciencia</title>
	<atom:link href="http://www.ubicuos.com/temas/ciencia/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ubicuos.com</link>
	<description>Tecnología,Programación, Proyectos, Ciencia y Empresas</description>
	<lastBuildDate>Sat, 31 Jul 2010 07:12:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Rotación de un cubo 3D usando Java</title>
		<link>http://www.ubicuos.com/2010/03/04/rotacion-de-un-cubo-usando-java/</link>
		<comments>http://www.ubicuos.com/2010/03/04/rotacion-de-un-cubo-usando-java/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 18:09:27 +0000</pubDate>
		<dc:creator>Jorge Alejandro</dc:creator>
				<category><![CDATA[Ciencia]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[algebra lineal]]></category>
		<category><![CDATA[grafiación]]></category>

		<guid isPermaLink="false">http://www.ubicuos.com/?p=617</guid>
		<description><![CDATA[Resumen Se muestra una manera sencilla de graficar y rotar un Cubo. Se comienza con la teor&#237;a de transformaciones lineales y proyecciones en el plano, se describen las matrices de rotaci&#243;n y al final se muestra un c&#243;digo muy sencillo de una aplicaci&#243;n hecha en Java que ejemplifica y muestra las transfomaciones descritas. Introducci&#243;n Se [...]]]></description>
			<content:encoded><![CDATA[<div align="left" style="padding: 0px 5px 5px 0px; clear: left; float: left;"><a name="fb_share" type="button_count" share_url="http://www.ubicuos.com/2010/03/04/rotacion-de-un-cubo-usando-java/"></a></div><div class="tweetmeme_button" style="float: left; margin-left: 10px;width:90px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.ubicuos.com%2F2010%2F03%2F04%2Frotacion-de-un-cubo-usando-java%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.ubicuos.com%2F2010%2F03%2F04%2Frotacion-de-un-cubo-usando-java%2F&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>
<p><em>Resumen</em></p>
<p>Se muestra una manera sencilla de graficar y rotar un Cubo. </p>
<p>Se comienza con la teor&iacute;a de transformaciones lineales y proyecciones en el plano, se describen las matrices de rotaci&oacute;n y al final se muestra un c&oacute;digo muy sencillo de una aplicaci&oacute;n hecha en Java que ejemplifica y muestra las transfomaciones descritas.</p>
<p><em>Introducci&oacute;n</em></p>
<p>Se puede rotar una figura en tres dimensiones, sobre el eje X, sobre el eje Y o sobre el eje Z. </p>
<p>En el caso de una computadora, la pantalla es un espacio de dos dimensiones, por lo tanto hay que hacer una proyecci&oacute;n sobre el plano XY cada vez que se manipulen figuras tridimensionales.<br />
 <span id="more-617"></span></p>
<p>Existe un vector <img src="http://www.ubicuos.com/wp-content/uploads/2010/03/v.png" width="19" height="20" alt="v" /> en el plano R2 con coordenadas (x, y) y un &aacute;ngulo <img src="http://www.ubicuos.com/wp-content/uploads/2010/03/alfa.png" width="19" height="15" alt="alfa" /> con respecto al eje X,<br />
se desea rotar el vector en un &aacute;ngulo <img src="http://www.ubicuos.com/wp-content/uploads/2010/03/teta.png" width="10" height="15" alt="teta" /> en sentido contrario de las manecillas del reloj con respecto al eje X. El nuevo vector <img src="http://www.ubicuos.com/wp-content/uploads/2010/03/v.png" width="19" height="20" alt="v" /> &#8216; forma un &aacute;ngulo <img src="http://www.ubicuos.com/wp-content/uploads/2010/03/teta.png" width="10" height="15" alt="teta" />+<img src="http://www.ubicuos.com/wp-content/uploads/2010/03/alfa.png" width="19" height="15" alt="alfa" />respecto al vector <img src="http://www.ubicuos.com/wp-content/uploads/2010/03/v.png" width="19" height="20" alt="v" /> y existe la misma longitud <em>r</em> en ambos vectores como se muestra en la figura:</p>
<p align="center">
<img src="http://www.ubicuos.com/wp-content/uploads/2010/03/Fig1.png" alt="fig1" />
</p>
<p>Utilizando las definiciones de seno y coseno obtenemos que para el vector <img src="http://www.ubicuos.com/wp-content/uploads/2010/03/v.png" width="19" height="20" alt="v" /></p>
<p align="center"><img src="http://www.ubicuos.com/wp-content/uploads/2010/03/Formula1.png" width="141" height="84" alt="Formula1" /></p>
<p>Para el vector <img src="http://www.ubicuos.com/wp-content/uploads/2010/03/v.png" width="19" height="20" alt="v" />&#8216;, de forma similar, se obtiene que:</p>
<p align="center"><img src="http://www.ubicuos.com/wp-content/uploads/2010/03/Formula2.png" width="178" height="85" alt="formula2" /></p>
<p>La suma de dos &aacute;ngulos esta dada por:</p>
<p align="center"><img src="http://www.ubicuos.com/wp-content/uploads/2010/03/Formula3.png" width="421" height="66" alt="formula3" /></p>
<p>Si se considera r = 1 y se sustituyen los valores correspondientes de <em>x</em> e<em> y</em> de la figura 1 tenemos.</p>
<p align="center"><img src="http://www.ubicuos.com/wp-content/uploads/2010/03/Formula4.png" width="438" height="66" alt="Formula4" /></p>
<p align="center"><img src="http://www.ubicuos.com/wp-content/uploads/2010/03/Formula5.png" width="251" height="66" alt="Formula5" /></p>
<p>Escribiendo las mismas ecuaciones en forma de matrices se obtiene:</p>
<p align="center"><img src="http://www.ubicuos.com/wp-content/uploads/2010/03/Formula6.png" width="483" height="66" alt="Formula7" /></p>
<p>La matriz (1) es mejor conocida como matriz de rotaci&oacute;n, la cual determina las nuevas coordenadas (x&#8217;, y&#8217;) obtenidas por rotar un &aacute;ngulo <img src="http://www.ubicuos.com/wp-content/uploads/2010/03/teta.png" width="10" height="15" alt="teta" /> un punto (x, y) en sentido contrario de las manecillas del reloj.</p>
<p>  Si las rotaciones se quieren hacer en el espacio R3, se necesita considerar el valor del eje de rotaci&oacute;n (en el cual se desea girar) igual a uno y poner el resto  de los valores igual a cero. En el caso de la matriz (1) se considera que rota con respecto al eje z.</p>
<p>  Las matrices de rotaci&oacute;n correspondientes a cada uno de los ejes est&aacute;n dadas por:</p>
<p align="center"><img src="http://www.ubicuos.com/wp-content/uploads/2010/03/matrices_rotacion.png"  alt="Matrcies rotacion" /></p>
<p>Para poder mostrar la rotaci&oacute;n en tres dimensiones en un plano de dos dimensiones hay que hacer una proyecci&oacute;n. Una proyecci&oacute;n es una trasnformaci&oacute;n lineal que toma un punto en el espacio de tres dimensiones y lo proyecta en un plano, que en este caso sera el plano xy. La matriz de transfomaci&oacute;n que nos brinda la proyecci&oacute;n de un punto en el plano xy es:</p>
<p align="center"><img src="http://www.ubicuos.com/wp-content/uploads/2010/03/Formula8.png" width="234" height="96" alt="Formula8" /></p>
<p>Ahora vamos a usar las matrices anteriores para tratar de rotar un cubo.</p>
<p>  Para construir un cubo se pueden tomar una lista de v&eacute;rtices, aristas o caras, para ejemplos ilustrativos vamos a tomar una lista de ocho v&eacute;rtices y vamos a enumerarlos como sigue:</p>
<p align="center"><img src="http://www.ubicuos.com/wp-content/uploads/2010/03/Fig2.png"  alt="Fig2" /></p>
<p>Si trazamos lineas que unan los v&eacute;rtices de forma tal que formen las aristas del cubo, se obtiene la siguiente figura:</p>
<p align="center"><img src="http://www.ubicuos.com/wp-content/uploads/2010/03/Fig3.png" width="410" height="337" alt="Fig3" /></p>
<p>La figura 3 muestra un cubo centrado en el origen pero a pesar de que la figura mostrada aparenta ser un cuadrado (dos dimensiones) se sabe que tiene una tercera dimensi&oacute;n dado que tiene las tres coordenadas en cada uno de sus ocho v&eacute;rtices, pero al proyectar sus puntos en el plano xy todos los valores z de los puntos son &quot;planchados&quot; al plano xy. Para darse cuenta de la forma tridimensional de la figura basta con rotar los puntos del cubo sobre el eje <em>x</em> o sobre el eje <em>y</em>. </p>
<p align="center"><img src="http://www.ubicuos.com/wp-content/uploads/2010/03/Fig4.png" width="309" height="282" alt="Fig4" /></p>
<p>El cubo aparenta estar representado en el espacio de tres dimensiones, pero carece de volumen, propiedad t&iacute;pica de los cuerpos tridimensionales. Para lograr una apariencia de volumen se necesitan crear diferentes pol&iacute;gonos que representen cada una de las caras del cubo, los v&eacute;rtices de cada cara del cubo ser&aacute;n los v&eacute;rtices de cada pol&iacute;gono y se puede asignar un color diferente a cada uno de ellos como se muestra.</p>
<p align="center"><img src="http://www.ubicuos.com/wp-content/uploads/2010/03/Fig5.png" width="309" height="282" alt="Fig5" /></p>
</p>
<p>Para ilustrar mejor lo antes mencionado, se contruyó un <em>applet</em> que muestra un cubo en 3D el cual puede rotar utlizando las matrices descritas. </p>
<p><strong>Da click en el siguiente enlace para abrir el applet:</strong></p>
<p><a href='http://www.ubicuos.com/wp-content/uploads/2010/03/Hola.html'>Rotación 3D de un cubo usando Java</a></p>
<p><em>Debes mover el ratón mientras mantienes presionado el botón izquierdo sobre el cubo para observar su rotación.</em></p>
<p align="left">A continuaci&oacute;n se muestra el c&oacute;digo que muestra la utilizaci&oacute;n de matrices de rotaci&oacute;n y proyecciones en el plano.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"> <span style="color: #008000; font-style: italic; font-weight: bold;">/**
this software is under GNU GPL
@author: Jorge Alejandro Gutiérrez Orozco
compilation
    javac Cube.java
Ejecution
    appletviewer Hola.html
*/</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.applet.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.awt.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.awt.event.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.lang.Math</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.awt.Polygon</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/* Represents a point in space */</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> <span style="color: #003399;">Point</span><span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">double</span> x<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">double</span> y<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">double</span> z<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003399;">Point</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">x</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">y</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">z</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003399;">Point</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">double</span> x,<span style="color: #000066; font-weight: bold;">double</span> y, <span style="color: #000066; font-weight: bold;">double</span> z<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">x</span><span style="color: #339933;">=</span>x<span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">y</span><span style="color: #339933;">=</span>y<span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">z</span><span style="color: #339933;">=</span>z<span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/* for move it at origin */</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">int</span> getXCoordinate<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000000; font-weight: bold;">return</span> Cube.<span style="color: #006633;">origin</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#41;</span><span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">x</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">int</span> getYCoordinate<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000000; font-weight: bold;">return</span> Cube.<span style="color: #006633;">origin</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#41;</span><span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">y</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">int</span> getZCoordinate<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000000; font-weight: bold;">return</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">/* projection on XY plane*/</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> Face<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #003399;">Point</span> p1,p2,p3,p4<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003399;">Polygon</span> side<span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Polygon</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
Face<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span>
&nbsp;
Face<span style="color: #009900;">&#40;</span><span style="color: #003399;">Point</span> p1,<span style="color: #003399;">Point</span> p2,<span style="color: #003399;">Point</span> p3,<span style="color: #003399;">Point</span> p4<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">p1</span><span style="color: #339933;">=</span>p1<span style="color: #339933;">;</span>this.<span style="color: #006633;">p2</span><span style="color: #339933;">=</span>p2<span style="color: #339933;">;</span>this.<span style="color: #006633;">p3</span><span style="color: #339933;">=</span>p3<span style="color: #339933;">;</span>this.<span style="color: #006633;">p4</span><span style="color: #339933;">=</span>p4<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">side</span>.<span style="color: #006633;">addPoint</span><span style="color: #009900;">&#40;</span>p1.<span style="color: #006633;">getXCoordinate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>,p1.<span style="color: #006633;">getYCoordinate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">side</span>.<span style="color: #006633;">addPoint</span><span style="color: #009900;">&#40;</span>p2.<span style="color: #006633;">getXCoordinate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>,p2.<span style="color: #006633;">getYCoordinate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">side</span>.<span style="color: #006633;">addPoint</span><span style="color: #009900;">&#40;</span>p3.<span style="color: #006633;">getXCoordinate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>,p3.<span style="color: #006633;">getYCoordinate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">side</span>.<span style="color: #006633;">addPoint</span><span style="color: #009900;">&#40;</span>p4.<span style="color: #006633;">getXCoordinate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>,p4.<span style="color: #006633;">getYCoordinate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> drawFace<span style="color: #009900;">&#40;</span><span style="color: #003399;">Graphics</span> g<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> g.<span style="color: #006633;">fillPolygon</span><span style="color: #009900;">&#40;</span>side<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> isVisible<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #003399;">Point</span> aux1, aux2<span style="color: #339933;">;</span>
&nbsp;
aux1 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Point</span><span style="color: #009900;">&#40;</span>p2.<span style="color: #006633;">x</span><span style="color: #339933;">-</span>p1.<span style="color: #006633;">x</span>, p2.<span style="color: #006633;">y</span><span style="color: #339933;">-</span>p1.<span style="color: #006633;">y</span>, p2.<span style="color: #006633;">z</span><span style="color: #339933;">-</span>p1.<span style="color: #006633;">z</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// p1-&gt;p2</span>
&nbsp;
aux2 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Point</span><span style="color: #009900;">&#40;</span>p4.<span style="color: #006633;">x</span><span style="color: #339933;">-</span>p1.<span style="color: #006633;">x</span>, p4.<span style="color: #006633;">y</span><span style="color: #339933;">-</span>p1.<span style="color: #006633;">y</span>, p4.<span style="color: #006633;">z</span><span style="color: #339933;">-</span>p1.<span style="color: #006633;">z</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// p1-&gt;p4</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>aux1.<span style="color: #006633;">x</span><span style="color: #339933;">*</span>aux2.<span style="color: #006633;">y</span> <span style="color: #339933;">-</span> aux1.<span style="color: #006633;">y</span><span style="color: #339933;">*</span>aux2.<span style="color: #006633;">x</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Cube <span style="color: #000000; font-weight: bold;">extends</span> <span style="color: #003399;">Applet</span> <span style="color: #000000; font-weight: bold;">implements</span>
&nbsp;
<span style="color: #003399;">Runnable</span>, <span style="color: #003399;">MouseMotionListener</span><span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #003399;">Thread</span> luxury<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">Point</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> vertex <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Point</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">8</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Cube vertexes</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> maxSize <span style="color: #339933;">=</span><span style="color: #cc66cc;">300</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// screen size</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> origin <span style="color: #339933;">=</span> maxSize<span style="color: #339933;">/</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// (0,0)</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> xMouseP<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span>, yMouseP <span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// X and Y mouse's positions</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">int</span> xAux , yAux <span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// old X and Y mouse's positions</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">int</span> module <span style="color: #339933;">=</span> <span style="color: #cc66cc;">50</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// length of lines of cube.</span>
&nbsp;
<span style="color: #003399;">Image</span> canvasAux<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003399;">Graphics</span> backBuffer<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> init<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
setSize<span style="color: #009900;">&#40;</span>maxSize,maxSize<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
setBackground<span style="color: #009900;">&#40;</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Color</span><span style="color: #009900;">&#40;</span>0.2f,0.6f,0.1f,1.0f<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
addMouseMotionListener<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/*Initial coordinates of eight vertex
module is half the length of the cube*/</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> coordX <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#123;</span><span style="color: #339933;">-</span>module,module,module,<span style="color: #339933;">-</span>module,<span style="color: #339933;">-</span>module,module,module,<span style="color: #339933;">-</span>module<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> coordY <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#123;</span><span style="color: #339933;">-</span>module,<span style="color: #339933;">-</span>module,module,module,<span style="color: #339933;">-</span>module,<span style="color: #339933;">-</span>module,module,module<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> coordZ <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#123;</span>module,module,module,module,<span style="color: #339933;">-</span>module,<span style="color: #339933;">-</span>module,<span style="color: #339933;">-</span>module,<span style="color: #339933;">-</span>module<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
canvasAux <span style="color: #339933;">=</span> createImage<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">500</span>,<span style="color: #cc66cc;">500</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
backBuffer <span style="color: #339933;">=</span> canvasAux.<span style="color: #006633;">getGraphics</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span>vertex.<span style="color: #006633;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
vertex<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Point</span><span style="color: #009900;">&#40;</span>coordX<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>,coordY<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>,coordZ<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> start<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span> luxury <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Thread</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> luxury.<span style="color: #006633;">start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> run<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> stop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> paint<span style="color: #009900;">&#40;</span><span style="color: #003399;">Graphics</span> g<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/* Cube's points.
Requires four points to create a face,
requires six faces to create a cube.*/</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> pts1 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#123;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">5</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">3</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> pts2 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#123;</span><span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">5</span>,<span style="color: #cc66cc;">4</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">4</span>,<span style="color: #cc66cc;">2</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> pts3 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#123;</span><span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">6</span>,<span style="color: #cc66cc;">7</span>,<span style="color: #cc66cc;">7</span>,<span style="color: #cc66cc;">5</span>,<span style="color: #cc66cc;">6</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> pts4 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#123;</span><span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">6</span>,<span style="color: #cc66cc;">4</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">7</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003399;">Color</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> colorRGB <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Color</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#123;</span> <span style="color: #003399;">Color</span>.<span style="color: #006633;">black</span>, <span style="color: #003399;">Color</span>.<span style="color: #006633;">blue</span>,<span style="color: #003399;">Color</span>.<span style="color: #006633;">orange</span>,
&nbsp;
<span style="color: #003399;">Color</span>.<span style="color: #006633;">pink</span>,<span style="color: #003399;">Color</span>.<span style="color: #006633;">red</span>, <span style="color: #003399;">Color</span>.<span style="color: #006633;">yellow</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
Face<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> faces <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Face<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">6</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
backBuffer.<span style="color: #006633;">clearRect</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">500</span>,<span style="color: #cc66cc;">500</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">6</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
backBuffer.<span style="color: #006633;">setColor</span><span style="color: #009900;">&#40;</span>colorRGB<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
faces<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> 
&nbsp;
Face<span style="color: #009900;">&#40;</span>vertex<span style="color: #009900;">&#91;</span>pts1<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span>,vertex<span style="color: #009900;">&#91;</span>pts2<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span>,vertex<span style="color: #009900;">&#91;</span>pts3<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span>,vertex<span style="color: #009900;">&#91;</span>pts4<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>faces<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">isVisible</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
faces<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">drawFace</span><span style="color: #009900;">&#40;</span>backBuffer<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
g.<span style="color: #006633;">drawImage</span><span style="color: #009900;">&#40;</span>canvasAux,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
g.<span style="color: #006633;">drawString</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot; Touche &quot;</span>, <span style="color: #cc66cc;">30</span>,<span style="color: #cc66cc;">30</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
g.<span style="color: #006633;">drawString</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot; X &quot;</span> <span style="color: #339933;">+</span> xMouseP, <span style="color: #cc66cc;">30</span>,<span style="color: #cc66cc;">50</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
g.<span style="color: #006633;">drawString</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot; Y &quot;</span> <span style="color: #339933;">+</span> yMouseP, <span style="color: #cc66cc;">30</span>,<span style="color: #cc66cc;">65</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> update<span style="color: #009900;">&#40;</span><span style="color: #003399;">Graphics</span> g<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> paint<span style="color: #009900;">&#40;</span>g<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> destroy<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span><span style="color: #003399;">Thread</span>.<span style="color: #006633;">sleep</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1500</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">InterruptedException</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Exception in sleep&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/* Rotate each vertex of cube over X, Y and Z axis */</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">void</span> rota<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">double</span> angleTeta, <span style="color: #000066; font-weight: bold;">double</span> anglePhi, <span style="color: #000066; font-weight: bold;">double</span> anglePsi<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">double</span> teta<span style="color: #339933;">=</span> <span style="color: #003399;">Math</span>.<span style="color: #006633;">toRadians</span><span style="color: #009900;">&#40;</span>angleTeta<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">double</span> phi<span style="color: #339933;">=</span> <span style="color: #003399;">Math</span>.<span style="color: #006633;">toRadians</span><span style="color: #009900;">&#40;</span>anglePhi<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">double</span> psi<span style="color: #339933;">=</span> <span style="color: #003399;">Math</span>.<span style="color: #006633;">toRadians</span><span style="color: #009900;">&#40;</span>anglePsi<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003399;">Point</span> pAux <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Point</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003399;">Point</span> pAux1 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Point</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003399;">Point</span> pAux2 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Point</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">8</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/* Rotating over x */</span>
&nbsp;
pAux1.<span style="color: #006633;">x</span> <span style="color: #339933;">=</span> vertex<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">x</span><span style="color: #339933;">;</span>
&nbsp;
pAux1.<span style="color: #006633;">y</span><span style="color: #339933;">=</span> vertex<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">y</span> <span style="color: #339933;">*</span> <span style="color: #003399;">Math</span>.<span style="color: #006633;">cos</span><span style="color: #009900;">&#40;</span>teta<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> vertex<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">z</span> <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #003399;">Math</span>.<span style="color: #006633;">sin</span><span style="color: #009900;">&#40;</span>teta<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
pAux1.<span style="color: #006633;">z</span> <span style="color: #339933;">=</span> vertex<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">y</span> <span style="color: #339933;">*</span> <span style="color: #003399;">Math</span>.<span style="color: #006633;">sin</span><span style="color: #009900;">&#40;</span>teta<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> vertex<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">z</span> <span style="color: #339933;">*</span> <span style="color: #003399;">Math</span>.<span style="color: #006633;">cos</span><span style="color: #009900;">&#40;</span>teta<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/* Rotating over y */</span>
&nbsp;
pAux2.<span style="color: #006633;">x</span> <span style="color: #339933;">=</span> pAux1.<span style="color: #006633;">x</span> <span style="color: #339933;">*</span> <span style="color: #003399;">Math</span>.<span style="color: #006633;">cos</span><span style="color: #009900;">&#40;</span>phi<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> pAux1.<span style="color: #006633;">z</span> <span style="color: #339933;">*</span> <span style="color: #003399;">Math</span>.<span style="color: #006633;">sin</span><span style="color: #009900;">&#40;</span>phi<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
pAux2.<span style="color: #006633;">y</span> <span style="color: #339933;">=</span> pAux1.<span style="color: #006633;">y</span><span style="color: #339933;">;</span>
&nbsp;
pAux2.<span style="color: #006633;">z</span> <span style="color: #339933;">=</span> pAux1.<span style="color: #006633;">x</span> <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #003399;">Math</span>.<span style="color: #006633;">sin</span><span style="color: #009900;">&#40;</span>phi<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> pAux1.<span style="color: #006633;">z</span> <span style="color: #339933;">*</span> <span style="color: #003399;">Math</span>.<span style="color: #006633;">cos</span><span style="color: #009900;">&#40;</span>phi<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/* Rotating over z */</span>
&nbsp;
pAux.<span style="color: #006633;">x</span><span style="color: #339933;">=</span> pAux2.<span style="color: #006633;">x</span> <span style="color: #339933;">*</span> <span style="color: #003399;">Math</span>.<span style="color: #006633;">cos</span><span style="color: #009900;">&#40;</span>psi<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> pAux2.<span style="color: #006633;">y</span> <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #003399;">Math</span>.<span style="color: #006633;">sin</span><span style="color: #009900;">&#40;</span>psi<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
pAux.<span style="color: #006633;">y</span> <span style="color: #339933;">=</span> pAux2.<span style="color: #006633;">x</span> <span style="color: #339933;">*</span> <span style="color: #003399;">Math</span>.<span style="color: #006633;">sin</span><span style="color: #009900;">&#40;</span>psi<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> pAux2.<span style="color: #006633;">y</span> <span style="color: #339933;">*</span> <span style="color: #003399;">Math</span>.<span style="color: #006633;">cos</span><span style="color: #009900;">&#40;</span>psi<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
pAux.<span style="color: #006633;">z</span><span style="color: #339933;">=</span> pAux2.<span style="color: #006633;">z</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/* new position */</span>
&nbsp;
vertex<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">x</span> <span style="color: #339933;">=</span> pAux.<span style="color: #006633;">x</span><span style="color: #339933;">;</span>
&nbsp;
vertex<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">y</span> <span style="color: #339933;">=</span> pAux.<span style="color: #006633;">y</span><span style="color: #339933;">;</span>
&nbsp;
vertex<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">z</span> <span style="color: #339933;">=</span> pAux.<span style="color: #006633;">z</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/* For move the cube over X and Y axis */</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> mouseDragged<span style="color: #009900;">&#40;</span> <span style="color: #003399;">MouseEvent</span> e <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/* old coordinates */</span>
&nbsp;
xAux <span style="color: #339933;">=</span> xMouseP<span style="color: #339933;">;</span>
&nbsp;
yAux <span style="color: #339933;">=</span> yMouseP<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/* new coordinates */</span>
&nbsp;
xMouseP <span style="color: #339933;">=</span> e.<span style="color: #006633;">getX</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
yMouseP <span style="color: #339933;">=</span> e.<span style="color: #006633;">getY</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>yMouseP <span style="color: #339933;">&gt;</span> yAux<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> rota<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>yMouseP <span style="color: #339933;">&lt;</span> yAux<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> rota<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>xMouseP <span style="color: #339933;">&gt;</span> xAux<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> rota<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>xMouseP <span style="color: #339933;">&lt;</span> xAux<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> rota<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #339933;">-</span><span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
&nbsp;
repaint<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
e.<span style="color: #006633;">consume</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> mouseMoved<span style="color: #009900;">&#40;</span> <span style="color: #003399;">MouseEvent</span> e <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>El c&oacute;digo anterior pertenece a un archivo llamado Cube.java, para poder visualizar el <em>applet</em> generado se necesita crear una archivo html.</p>
<p>El siguiente c&oacute;digo solo es un html para desplegar el <em>applet</em>.</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;!-- hola.html --&gt;
&lt;HTML&gt;
&lt;BODY&gt;
Cubo
&lt;APPLET width=&quot;500&quot; height=&quot;500&quot; CODE=&quot;Cube.class&quot;&gt;&lt;br /&gt;&lt;/APPLET&gt;
&lt;/BODY&gt;
&lt;/HTML&gt;</pre></div></div>

<p>En caso de contar con un IDE (Eclipse, jGrasp, etc.) no existe necesidad de crear dicho html para visualizar el cubo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ubicuos.com/2010/03/04/rotacion-de-un-cubo-usando-java/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Más información sobre el XXV Simposio de Computación en la Educación</title>
		<link>http://www.ubicuos.com/2009/09/19/informacion-sobre-el-xxv-simposio-somec/</link>
		<comments>http://www.ubicuos.com/2009/09/19/informacion-sobre-el-xxv-simposio-somec/#comments</comments>
		<pubDate>Sat, 19 Sep 2009 19:31:50 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Ciencia]]></category>
		<category><![CDATA[Empresas]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Social / Internet]]></category>
		<category><![CDATA[educación]]></category>
		<category><![CDATA[somece]]></category>

		<guid isPermaLink="false">http://www.ubicuos.com/?p=386</guid>
		<description><![CDATA[Se realizarán Talleres dirigidos a maestros, niños, jóvenes, coordinadores, tomadores de decisiones y padres de familia; los cuales tienen como objetivo promover y desarrollar nuevas habilidades, así como ampliar la perspectiva de los participantes en el uso de las TIC en educación.
Fechas: sábado 17 de octubre, de 12:00 a 16:00 horas y domingo 18 de octubre de 10:00 a 14:00 horas.]]></description>
			<content:encoded><![CDATA[<div align="left" style="padding: 0px 5px 5px 0px; clear: left; float: left;"><a name="fb_share" type="button_count" share_url="http://www.ubicuos.com/2009/09/19/informacion-sobre-el-xxv-simposio-somec/"></a></div><div class="tweetmeme_button" style="float: left; margin-left: 10px;width:90px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.ubicuos.com%2F2009%2F09%2F19%2Finformacion-sobre-el-xxv-simposio-somec%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.ubicuos.com%2F2009%2F09%2F19%2Finformacion-sobre-el-xxv-simposio-somec%2F&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>
<p>Se realizarán Talleres dirigidos a maestros, niños, jóvenes, coordinadores, tomadores de decisiones y padres de familia; los cuales tienen como objetivo promover y desarrollar nuevas habilidades, así como ampliar la perspectiva de los participantes en el uso de las TIC en educación.<br />
Fechas: sábado 17 de octubre, de 12:00 a 16:00 horas y domingo 18 de octubre de 10:00 a 14:00 horas.<br />
<a href="http://www.ubicuos.com/wp-content/uploads/2009/09/jovenes.jpg"><img src="http://www.ubicuos.com/wp-content/uploads/2009/09/jovenes-300x245.jpg" alt="jovenes" title="jovenes" width="300" height="245" class="alignleft size-medium wp-image-387" /></a><br />
El XVIII Encuentro Nacional de Cómputo Infantil y Juvenil celebrando el XXV aniversario del Programa Computación Gratuita para Niños y Jóvenes de la Academia Mexicana de Ciencias. Incluye presentaciones interactivas por parte de alumnos de educación básica.<br />
Fechas: sábado 17 de octubre, de 9:00 a 14:00 horas, domingo 18 de octubre, de 9:00 a 14:00 horas y lunes 19 de octubre, clausura a las 9:00 horas.</p>
<p>Conferencias Magistrales dictadas por autoridades reconocidas en el campo educativo, tanto nacionales como extranjeras,<br />
con el propósito de motivar la reflexión y visualizar los futuros horizontes tecnológicos y sus implicaciones en torno a la temática propuesta.<br />
Fechas: lunes 19 al miércoles 21 de octubre.</p>
<p>Los Grupos de Trabajo tienen el objeto de promover la participación de todos los asistentes, las ponencias se organizarán bajo la modalidad de grupos de trabajo. La dinámica consistirá en una exposición de 15 a 20 minutos por ponencia y el resto del tiempo se dedicará a la animación de espacios para la discusión y reflexión colectivas y la emisión de conclusiones.<br />
Fechas: lunes 19 al miércoles 21 de octubre.</p>
<p>SOMECE 2009 ofrecerá un espacio adicional para la interacción directa con los autores de proyectos, recursos y materiales, mediante la modalidad de Presentación tipo Carteles, con expresiones múltiples.<br />
Fechas: lunes 19 y martes 20 de octubre.</p>
<p>Se presentarán servicios y productos informáticos para ambientes educativos de reconocidas empresas y organismos del sector en la Exhibición Tecnológica.<br />
Fechas: lunes 19 al miércoles 21 de octubre.</p>
<p>Se convoca a invitados especiales de reconocidas empresas que realizarán Presentaciones Comerciales donde presentarán sus productos y servicios.<br />
Fechas: lunes 19 al miércoles 21 de octubre.</p>
<p>Expo – Arte Digital dónde se presentan trabajos diseñados con el uso de las tecnologías de la información y las comunicaciones, los cuales reflejan la iniciativa de incorporar los productos generados en el área del arte.<br />
Fechas: lunes 19 al miércoles 21 de octubre.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ubicuos.com/2009/09/19/informacion-sobre-el-xxv-simposio-somec/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XXV Simposio Internacional de Computación en la Educación‏</title>
		<link>http://www.ubicuos.com/2009/09/17/xxv-simposio-internacional-de-computacion-en-la-educacion%e2%80%8f/</link>
		<comments>http://www.ubicuos.com/2009/09/17/xxv-simposio-internacional-de-computacion-en-la-educacion%e2%80%8f/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 03:55:48 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Ciencia]]></category>
		<category><![CDATA[Empresas]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Social / Internet]]></category>
		<category><![CDATA[educación]]></category>
		<category><![CDATA[somece]]></category>

		<guid isPermaLink="false">http://www.ubicuos.com/?p=379</guid>
		<description><![CDATA[La Sociedad Mexicana de Computación en la Educación, SOMECE, la Universidad Nacional Autónoma de México, la Academia Mexicana de Ciencias, el Instituto Latinoamericano de la Comunicación Educativa y las instituciones colaboradoras  tienen el agrado de invitarle a participar en el XXV Simposio Internacional de Computación en la Educación.]]></description>
			<content:encoded><![CDATA[<div align="left" style="padding: 0px 5px 5px 0px; clear: left; float: left;"><a name="fb_share" type="button_count" share_url="http://www.ubicuos.com/2009/09/17/xxv-simposio-internacional-de-computacion-en-la-educacion%e2%80%8f/"></a></div><div class="tweetmeme_button" style="float: left; margin-left: 10px;width:90px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.ubicuos.com%2F2009%2F09%2F17%2Fxxv-simposio-internacional-de-computacion-en-la-educacion%25e2%2580%258f%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.ubicuos.com%2F2009%2F09%2F17%2Fxxv-simposio-internacional-de-computacion-en-la-educacion%25e2%2580%258f%2F&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>
<p>La Sociedad Mexicana de Computación en la Educación, SOMECE, la Universidad Nacional Autónoma de México, la Academia Mexicana de Ciencias, el Instituto Latinoamericano de la Comunicación Educativa y las instituciones colaboradoras  tienen el agrado de invitarle a participar en el <strong>XXV Simposio Internacional de Computación en la Educación.</strong><a href="http://www.ubicuos.com/wp-content/uploads/2009/09/simposio.jpg"><img class="alignleft size-medium wp-image-380" title="simposio" src="http://www.ubicuos.com/wp-content/uploads/2009/09/simposio-300x245.jpg" alt="simposio" width="300" height="245" /></a></p>
<p>Del 17 al 21 de octubre 2009, en la Ciudad de México.</p>
<p>Entre las actividades que se llevarán a cabo podemos nombrar:</p>
<ul>
<li><a title="Toda la información sobre los Talleres" href="http://www.somece.org.mx/Simposio2009/index.php/talleres" target="_blank">Talleres</a></li>
<li><a title="toda la información sobre el Encuentro" href="http://www.somece.org.mx/Simposio2009/index.php/encuentro-infantil" target="_blank">XVIII Encuentro Nacional de Cómputo Infantil y Juvenil</a></li>
<li><a title="toda la información" href="http://www.somece.org.mx/Simposio2009/index.php/ponecias" target="_blank">Conferencias Magistrales y Paneles</a></li>
<li><a title="toda la información sobre los Grupos de Trabajo" href="http://www.somece.org.mx/Simposio2009/index.php/grupos-de-trabajo" target="_blank">Grupos de Trabajo</a></li>
<li><a title="toda la información" href="http://www.somece.org.mx/Simposio2009/index.php/exibicion-de-carteles" target="_blank">Presentación de Carteles</a></li>
<li><a title="toda la información" href="http://www.somece.org.mx/Simposio2009/index.php/exibicion-tecnologica" target="_blank">Exhibición Tecnológica</a></li>
<li><a title="toda la información" href="http://www.somece.org.mx/Simposio2009/index.php/expo-artedigital" target="_blank">Expo – Arte Digital</a></li>
</ul>
<p>Contacto :</p>
<ul>
<li>Dirección: Gabriel Mancera N° 1537, entre Parroquia y Félix Cuevas, Colonia del Valle, Delegación Benito Juárez. Distrito Federal. CP 03100, México.</li>
<li>Teléfonos:+52 (55) 5543 3613  y   +52 (55) 5543 3613</li>
<li>Sitio web:http://www.somece.org.mx</li>
<li>Correo: informes@somece.org.mx</li>
</ul>
<p>
<object type="application/x-shockwave-flash" style="width:425px;height:344px;" data="http://www.youtube.com/v/Z9rhc5NohnA&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;feature=player_embedded&amp;fs=1"><param name="movie" value="http://www.youtube.com/v/Z9rhc5NohnA"/></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ubicuos.com/2009/09/17/xxv-simposio-internacional-de-computacion-en-la-educacion%e2%80%8f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Árbol fractal en BorlandC para DOS</title>
		<link>http://www.ubicuos.com/2009/07/28/arbol-fractal-en-borlandc-para-dos/</link>
		<comments>http://www.ubicuos.com/2009/07/28/arbol-fractal-en-borlandc-para-dos/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 04:50:26 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Ciencia]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Social / Internet]]></category>
		<category><![CDATA[fractal]]></category>

		<guid isPermaLink="false">http://www.ubicuos.com/?p=373</guid>
		<description><![CDATA[Árbol fractal en BorlandC para DOS /*arbol3*/ /*Fernando Galindo Soria*/ &#160; #include &#60;graphics.h&#62; #include &#60;math.h&#62; &#160; void arbol&#40;int,int,int,int&#41;; void arbolb&#40;int,int,int,int&#41;; int ind; &#160; void main&#40;&#41; &#123; int gd=DETECT,gm; initgraph&#40;&#38;gd,&#38;gm,&#34;&#34;&#41;; ind=1; arbol&#40;300,300,70,90&#41;; getch&#40;&#41;; closegraph&#40;&#41;; &#125; &#160; void arbol&#40;int x0,int y0,int l,int an&#41; &#123; int x1,y1; &#160; if&#40;bioskey&#40;2&#41;!=0x04&#41; if &#40;l &#62; ind &#41; &#123; x1=x0-&#40;l*cos&#40;an/57.29578&#41;&#41;; y1=y0-&#40;l*sin&#40;an/57.29578&#41;&#41;; line&#40;x0,y0,x1,y1&#41;; [...]]]></description>
			<content:encoded><![CDATA[<div align="left" style="padding: 0px 5px 5px 0px; clear: left; float: left;"><a name="fb_share" type="button_count" share_url="http://www.ubicuos.com/2009/07/28/arbol-fractal-en-borlandc-para-dos/"></a></div><div class="tweetmeme_button" style="float: left; margin-left: 10px;width:90px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.ubicuos.com%2F2009%2F07%2F28%2Farbol-fractal-en-borlandc-para-dos%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.ubicuos.com%2F2009%2F07%2F28%2Farbol-fractal-en-borlandc-para-dos%2F&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>
<p>Árbol fractal en BorlandC para DOS</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #ff0000; font-style: italic;">/*arbol3*/</span>
<span style="color: #ff0000; font-style: italic;">/*Fernando Galindo Soria*/</span>
&nbsp;
<span style="color: #339900;">#include &lt;graphics.h&gt;</span>
<span style="color: #339900;">#include &lt;math.h&gt;</span>
&nbsp;
<span style="color: #0000ff;">void</span> arbol<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span>,<span style="color: #0000ff;">int</span>,<span style="color: #0000ff;">int</span>,<span style="color: #0000ff;">int</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">void</span> arbolb<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span>,<span style="color: #0000ff;">int</span>,<span style="color: #0000ff;">int</span>,<span style="color: #0000ff;">int</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">int</span> ind<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">void</span> main<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
  <span style="color: #0000ff;">int</span> gd<span style="color: #000080;">=</span>DETECT,gm<span style="color: #008080;">;</span>
  initgraph<span style="color: #008000;">&#40;</span><span style="color: #000040;">&amp;</span>gd,<span style="color: #000040;">&amp;</span>gm,<span style="color: #FF0000;">&quot;&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  ind<span style="color: #000080;">=</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
  arbol<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">300</span>,<span style="color: #0000dd;">300</span>,<span style="color: #0000dd;">70</span>,<span style="color: #0000dd;">90</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  getch<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  closegraph<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> arbol<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> x0,<span style="color: #0000ff;">int</span> y0,<span style="color: #0000ff;">int</span> l,<span style="color: #0000ff;">int</span> an<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
  <span style="color: #0000ff;">int</span> x1,y1<span style="color: #008080;">;</span>
&nbsp;
  <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>bioskey<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span><span style="color: #000040;">!</span><span style="color: #000080;">=</span><span style="color: #208080;">0x04</span><span style="color: #008000;">&#41;</span>
  <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>l <span style="color: #000080;">&gt;</span> ind <span style="color: #008000;">&#41;</span>
  <span style="color: #008000;">&#123;</span>
    x1<span style="color: #000080;">=</span>x0<span style="color: #000040;">-</span><span style="color: #008000;">&#40;</span>l<span style="color: #000040;">*</span><span style="color: #0000dd;">cos</span><span style="color: #008000;">&#40;</span>an<span style="color: #000040;">/</span><span style="color:#800080;">57.29578</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    y1<span style="color: #000080;">=</span>y0<span style="color: #000040;">-</span><span style="color: #008000;">&#40;</span>l<span style="color: #000040;">*</span><span style="color: #0000dd;">sin</span><span style="color: #008000;">&#40;</span>an<span style="color: #000040;">/</span><span style="color:#800080;">57.29578</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    line<span style="color: #008000;">&#40;</span>x0,y0,x1,y1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    arbolb<span style="color: #008000;">&#40;</span>x1,y1,l<span style="color: #000040;">/</span><span style="color:#800080;">1.5</span>,an<span style="color: #000040;">-</span><span style="color: #0000dd;">47</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    arbolb<span style="color: #008000;">&#40;</span>x1,y1,l<span style="color: #000040;">/</span><span style="color:#800080;">1.5</span>,an<span style="color: #000040;">+</span><span style="color: #0000dd;">67</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  <span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span>
<span style="color: #0000ff;">void</span> arbolb<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> x0,<span style="color: #0000ff;">int</span> y0,<span style="color: #0000ff;">int</span> l,<span style="color: #0000ff;">int</span> an<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
  <span style="color: #0000ff;">int</span> x1,y1<span style="color: #008080;">;</span>
&nbsp;
  <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>bioskey<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span><span style="color: #000040;">!</span><span style="color: #000080;">=</span><span style="color: #208080;">0x04</span><span style="color: #008000;">&#41;</span>
  <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>l <span style="color: #000080;">&gt;</span> ind <span style="color: #008000;">&#41;</span>
  <span style="color: #008000;">&#123;</span>
    x1<span style="color: #000080;">=</span>x0<span style="color: #000040;">-</span><span style="color: #008000;">&#40;</span>l<span style="color: #000040;">*</span><span style="color: #0000dd;">cos</span><span style="color: #008000;">&#40;</span>an<span style="color: #000040;">/</span><span style="color:#800080;">57.29578</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    y1<span style="color: #000080;">=</span>y0<span style="color: #000040;">-</span><span style="color: #008000;">&#40;</span>l<span style="color: #000040;">*</span><span style="color: #0000dd;">sin</span><span style="color: #008000;">&#40;</span>an<span style="color: #000040;">/</span><span style="color:#800080;">57.29578</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    line<span style="color: #008000;">&#40;</span>x0,y0,x1,y1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    arbol<span style="color: #008000;">&#40;</span>x1,y1,l,an<span style="color: #000040;">-</span><span style="color: #0000dd;">17</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #ff0000; font-style: italic;">/*    arbolb(x1,y1,l,an+57);*/</span>
  <span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.ubicuos.com/2009/07/28/arbol-fractal-en-borlandc-para-dos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Una presentación sobre la definición de informática.</title>
		<link>http://www.ubicuos.com/2009/07/18/una-presentacion-sobre-la-definicion-de-informatica/</link>
		<comments>http://www.ubicuos.com/2009/07/18/una-presentacion-sobre-la-definicion-de-informatica/#comments</comments>
		<pubDate>Sat, 18 Jul 2009 21:17:46 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Ciencia]]></category>
		<category><![CDATA[Empresas]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tecnología]]></category>
		<category><![CDATA[informática]]></category>

		<guid isPermaLink="false">http://www.ubicuos.com/?p=363</guid>
		<description><![CDATA[Una presentación sobre la definición de informática.]]></description>
			<content:encoded><![CDATA[<div align="left" style="padding: 0px 5px 5px 0px; clear: left; float: left;"><a name="fb_share" type="button_count" share_url="http://www.ubicuos.com/2009/07/18/una-presentacion-sobre-la-definicion-de-informatica/"></a></div><div class="tweetmeme_button" style="float: left; margin-left: 10px;width:90px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.ubicuos.com%2F2009%2F07%2F18%2Funa-presentacion-sobre-la-definicion-de-informatica%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.ubicuos.com%2F2009%2F07%2F18%2Funa-presentacion-sobre-la-definicion-de-informatica%2F&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>
<p>Una presentación sobre la definición de informática.<br />
<object width="389" height="324" id="player"><param name="movie" value="http://www.authorstream.com/player/player.swf?p=215215_633835299919287500" /><param name="allowfullscreen" value="true" /><param name="allowScriptAccess" value="always"/><embed src="http://www.authorstream.com/player/player.swf?p=215215_633835299919287500" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="389" height="324"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ubicuos.com/2009/07/18/una-presentacion-sobre-la-definicion-de-informatica/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Método de la secante en C</title>
		<link>http://www.ubicuos.com/2009/07/12/metodo-de-la-secante-en-c/</link>
		<comments>http://www.ubicuos.com/2009/07/12/metodo-de-la-secante-en-c/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 20:29:32 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Ciencia]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.ubicuos.com/?p=331</guid>
		<description><![CDATA[Método de la secante.]]></description>
			<content:encoded><![CDATA[<div align="left" style="padding: 0px 5px 5px 0px; clear: left; float: left;"><a name="fb_share" type="button_count" share_url="http://www.ubicuos.com/2009/07/12/metodo-de-la-secante-en-c/"></a></div><div class="tweetmeme_button" style="float: left; margin-left: 10px;width:90px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.ubicuos.com%2F2009%2F07%2F12%2Fmetodo-de-la-secante-en-c%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.ubicuos.com%2F2009%2F07%2F12%2Fmetodo-de-la-secante-en-c%2F&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#include &lt;stdio.h&gt;</span>
<span style="color: #339900;">#include &lt;math.h&gt;</span>
<span style="color: #0000ff;">double</span>
f <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">double</span> x<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
  <span style="color: #0000ff;">return</span> <span style="color: #008000;">&#40;</span>x <span style="color: #000040;">*</span> x<span style="color: #008000;">&#41;</span> <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">double</span> df <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">double</span> x<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
  <span style="color: #0000ff;">return</span> <span style="color: #008000;">&#40;</span><span style="color: #0000dd;">2</span> <span style="color: #000040;">*</span> x<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">double</span> Secante <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">double</span> x01, <span style="color: #0000ff;">double</span> x02, <span style="color: #0000ff;">int</span> N, <span style="color: #0000ff;">double</span> T,
			      <span style="color: #0000ff;">double</span> <span style="color: #008000;">&#40;</span><span style="color: #000040;">*</span>fx<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">double</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> 
<span style="color: #008000;">&#123;</span>
  <span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
  <span style="color: #0000ff;">double</span> x<span style="color: #008080;">;</span>
  <span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span>i <span style="color: #000080;">&lt;=</span> N<span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
      x <span style="color: #000080;">=</span>
	x01 <span style="color: #000040;">-</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span>x01 <span style="color: #000040;">-</span> x02<span style="color: #008000;">&#41;</span> <span style="color: #000040;">*</span> <span style="color: #008000;">&#40;</span><span style="color: #000040;">*</span>fx<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#40;</span>x01<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">/</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">*</span>fx<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#40;</span>x01<span style="color: #008000;">&#41;</span> <span style="color: #000040;">-</span> <span style="color: #008000;">&#40;</span><span style="color: #000040;">*</span>fx<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#40;</span>x02<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
      <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #0000dd;">abs</span> <span style="color: #008000;">&#40;</span>x <span style="color: #000040;">-</span> x01<span style="color: #008000;">&#41;</span> <span style="color: #000080;">&lt;</span> T<span style="color: #008000;">&#41;</span>
	<span style="color: #0000ff;">break</span><span style="color: #008080;">;</span>
      i<span style="color: #000040;">++</span><span style="color: #008080;">;</span>
      x02 <span style="color: #000080;">=</span> x01<span style="color: #008080;">;</span>
      x01 <span style="color: #000080;">=</span> x<span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
  <span style="color: #0000dd;">printf</span> <span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;Iteraciones: %d&quot;</span>, i<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  <span style="color: #0000ff;">return</span> x<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">int</span> main <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">void</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
  <span style="color: #0000dd;">printf</span> <span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;Método de la Secante: %f&quot;</span>, Secante <span style="color: #008000;">&#40;</span><span style="color:#800080;">0.6</span>, <span style="color:#800080;">0.61</span>, <span style="color: #0000dd;">20</span>, <span style="color:#800080;">0.000001</span>, f<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.ubicuos.com/2009/07/12/metodo-de-la-secante-en-c/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>La Vida Artificial</title>
		<link>http://www.ubicuos.com/2009/05/31/la-vida-artificial/</link>
		<comments>http://www.ubicuos.com/2009/05/31/la-vida-artificial/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 00:59:57 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Ciencia]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[evolutivo]]></category>
		<category><![CDATA[ia]]></category>
		<category><![CDATA[inteligencia artificial]]></category>

		<guid isPermaLink="false">http://www.ubicuos.com/?p=212</guid>
		<description><![CDATA[La Vida Artificial pretende modelar el comportamiento que siguen los seres vivos durante su desarrollo y al relacionarse entre ellos y con su entorno. En su estudio se distinguen dos lineas; el diseño de seres virtuales y el de ecosistemas virtuales.]]></description>
			<content:encoded><![CDATA[<div align="left" style="padding: 0px 5px 5px 0px; clear: left; float: left;"><a name="fb_share" type="button_count" share_url="http://www.ubicuos.com/2009/05/31/la-vida-artificial/"></a></div><div class="tweetmeme_button" style="float: left; margin-left: 10px;width:90px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.ubicuos.com%2F2009%2F05%2F31%2Fla-vida-artificial%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.ubicuos.com%2F2009%2F05%2F31%2Fla-vida-artificial%2F&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>
<p>Marzo 2001</p>
<p>Paola Neri Ortiz (http://www.geocities.com/paolaneriortiz/main.htm)</p>
<h2>Introducción</h2>
<p>Desde la aparición de las primeras computadoras,     el hombre ha soñado con implementar sistemas que sean capaces de reaccionar     de manera similar a la de un ser vivo. Así se crea la Vida Artificial     la cual pretende modelar el comportamiento que siguen los seres vivos durante     su desarrollo y al relacionarse entre ellos y con su entorno. En su estudio     se distinguen dos lineas; el diseño de seres virtuales y el de ecosistemas     virtuales.<span id="more-212"></span></p>
<p>Como ejemplo de programacion de seres virtuales     tenemos al presentado en octubre de 1993, en el VI Congreso Internacional de     Informática y Computación por las maestras Angélica García     V., Angélica Muñoz Meléndez y el Dr. José Negrete     llamado &#8220;Propuesta de un Mundo Sintético Fundado en Metodologías     Basadas en el Comportamiento&#8221;. Un trabajo que simula el desarrollo de una     criatura en su medio ambiente y el proceso de adaptación al mismo. Para     realizar este proyecto, se dotó de atributos a un ser sintético     y se le programó para ser capaz de reconocer los elementos que forman     parte del espacio creado para él (como agua, tierra y comida) y &#8220;reaccionar&#8221;     de manera distinta ante cada uno de estos elementos.</p>
<p>Un ejemplo de ecosistema virtual es El juego     de la vida, un problema clásico de la programación creado en 1970     por John H. Conway, el cual intenta modelar el desarrollo de una población     con el uso de puntos llamados &#8220;células&#8221;, los cuales interaccionan     usando tres reglas preestablecidas que son:</p>
<ol>
<li>Cada elemento permanece vivo, si tiene dos     o tres vecinos (necesita compañía para vivir).</li>
<li>Un elemento muere, si tiene más de tres vecinos (por sobrepoblación).</li>
<li>Un elemento nace, en un espacio vacío, si tiene exactamente tres vecinos.</li>
<li>Cada elemento tiene la posibilidad de rodearse de un máximo     de ocho elementos vecinos (Vecindad de Moore).</li>
</ol>
<p>El juego de la vida no es el único ejemplo,     otros sistemas como presa-depredador, peces en un cardúmen y sistema     inmunológico también son problemas clásicos en el modelado     de Vida Artificial.</p>
<p>Cuando John H. Conway creo el juego de la vida,     muchos programadores se emocionaron al ver cuantos patrones de movimiento podían     encontrarse al cabo de algunas iteraciones. Los desplazamientos en &#8220;manada&#8221;,     surgen a la vista sin una aparente programación previa. Es decir, uno     de los elementos mas esperados en la vida artificial es precisamente lo que     &#8220;no se programa&#8221; en otras palabras la capacidad emergente del sistema.     Como ya habrá intuido el lector, esta ultima es una de las características     de la vida artificial y existen otras mas.</p>
<h2>Los Siete Principos de la Vida Artificial</h2>
<p>En el libro Vida Simulada en el Ordenador, la     Nueva Ciencia de la Inteligencia Artificial de Claus Emmeche, se mencionan los     siguientes siete puntos principales que describen la Vida Artificial:</p>
<ol>
<li>&#8220;La biología de lo posible. La Vida     Artificial no se restringe a la vida creada con carbono y es el objeto de la     biología experimental.</li>
<li>Método Sintético. Intento de la Vida Artificial por sintetizar     los procesos y comportamientos vitales, por medio de un ordenador.</li>
<li>Vida real (artificial). La conducta y los procesos generalizados, son tan     genuinos como la conducta exhibida por los organismos de la vida real. Lo artificial,     de la Vida Artificial descansa en los chips de silicio y demás componentes     del ordenador, que fueron creados por el hombre y no en el comportamiento, lo     cual es producido por la misma naturaleza.</li>
<li>Toda la Vida es forma. La vida es un proceso y es la forma de este proceso,     no la materia, lo que constituye la esencia de la vida. Uno puede ignorar por     lo tanto el material y en cambio, abstraer de él la lógica que     gobierna el proceso, tomándolo de la forma material concreta que conocemos.     En consecuencia se puede lograr la misma lógica en otro revestimiento     o sustrato material. La vida es fundamentalmente independiente del medio</li>
<li>Construcción de abajo hacia arriba. En la programación de abajo     hacia arriba, se definen pequeñas unidades y unas pocas y sencillas reglas     para su interacción interna, puramente local, de esta interacción,     surge un comportamiento coherente &#8220;global&#8221;, no programado previamente.     La programación de abajo hacia arriba, surge del hecho de que nuestras     proteínas están &#8220;programadas&#8221;, en forma relativamente     explícita por el ADN, pero, no hay un gen que especifique directamente     la forma de la cara o el número de dedos.</li>
<li>Procesamiento paralelo. El principio de procesamiento de información     en la Vida Artificial, se basa en el paralelismo masivo que ocurre en la vida     real. En la vida real, las células nerviosas del cerebro trabajan una     al lado de la otra, sin esperar a que su vecina &#8220;termine su trabajo&#8221;.</li>
<li>Facilidad de emergencia. La palabra emergencia, se usa para designar el fascinante     todo que se crea cuando muchas unidades semisimples interactúan unas     con otras de una manera compleja&#8221;.</li>
</ol>
<h2>Las Propiedades de la Vida</h2>
<p>En este mismo libro, se mencionan las Propiedades     de la Vida, y son las siguientes:</p>
<ol>
<li>&#8220;La vida es una configuración en     el espacio-tiempo.</li>
<li>La vida ama la autorreproducción.</li>
<li>La vida está asociada con el acopio de información, para su     autorrepresentación.</li>
<li>La vida prospera con la ayuda del metabolismo.</li>
<li>La vida participa en interacciones funcionales con el ambiente.</li>
<li>Las partes de los seres vivos tienen una crítica dependencia interna     de unas respecto de las otras.</li>
<li>La vida exhibe una estabilidad dinámica frente a perturbaciones.</li>
<li>La vida, no la individual, sino, su linaje, tiene la capacidad de evolucionar&#8221;.</li>
</ol>
<h2>Los Autómatas Celulares</h2>
<p>Una de las herramientas mas utilizadas en la     programación de ecosistemas virtuales son los autómatas celulares     propuestos originalmente por el Dr. Von Newman en los años cuarenta como     herramienta de programación.</p>
<p>Los autómatas celulares     son celdas que contienen valores donde el espacio y el tiempo son cantidades     discretas y por lo tanto, son sistemas dinámicos discretos y pueden definirse     en términos del estado o valor de las celdas, la vecindad y la regla     local.</p>
<p>El estado o valor es el dato que contienen,     el más común es el de 0 ó 1.</p>
<p>La vecindad se refiere a los elementos más     cercanos al retículo en estudio, por ejemplo, en un vector para un elemento     i sus vecinos son i-1 e i+1.</p>
<p>Los dos tipos más comunes de vecindad     son la Vecindad de Von Newman o vecindad de cuatro puntos donde un elemento     i tiene por vecinos a los elementos i+1, i-1, i+n e i-n.</p>
<table border="1" width="80" align="center">
<tbody>
<tr>
<td width="35%" align="center"></td>
<td width="35%" align="center">i-n</td>
<td width="30%" align="center"></td>
</tr>
<tr>
<td width="35%" align="center">i-1</td>
<td width="35%" align="center">i</td>
<td width="30%" align="center">i+1</td>
</tr>
<tr>
<td width="35%"></td>
<td width="35%" align="center">i+n</td>
<td width="30%"></td>
</tr>
</tbody>
</table>
<p align="center">Figura 1.1.1. Elementos vecinos<br />
a i en la Vecindad de Von Newman.</p>
<p>Y la Vecindad de Moore, o de ocho puntos, que considera     no solo a los cuatro anteriores, sino también a los elementos i+n+1,     i+n-1, i-n+1 e i-n-1.</p>
<table border="1" width="80" align="center">
<tbody>
<tr>
<td align="center">i-n-1</td>
<td align="center">i-n</td>
<td align="center">i-n+1</td>
</tr>
<tr>
<td align="center">i-1</td>
<td align="center">i</td>
<td align="center">i+1</td>
</tr>
<tr>
<td align="center">i+n-1</td>
<td align="center">i+n</td>
<td align="center">i+n+1</td>
</tr>
</tbody>
</table>
<p align="center">Figura 1.1.2. Elementos vecinos<br />
a i, en la Vecindad de Moore.</p>
<p>Las reglas, se refieren a la forma en que se     relacionan dos autómatas celulares, por ejemplo, cambiar de estado cuando     se encuentren dos autómatas con el mismo contenido. Esto se describe     con mas detalle en el <a href="http://www.geocities.com/paolaneriortiz/juego_vida.htm">Juego de la vida</a>.</p>
<h2>Referencias</h2>
<ul>
<li>EMMCHE, Claus. &#8220;Vida Simulada en el ordenador.     La nueva ciencia de la Inteligencia Artificial. Colección Limites de     la Ciencia. Editorial Gedisa (http://www.gedisa.com). Octubre de 1988</li>
<li>ADAMI, Christoph. &#8220;Introduction to Artificial     Life&#8221;. Editorial Telos (http://www.telospub.com)</li>
<li>GARCÍA V., Angélica, MUÑOZ     Meléndez, Angélica, NEGRETE, José. &#8220;Propuesta de un     Mundo Sintético Fundado en Metodologías Basadas en el Comportamiento&#8221;.     Memorias del VI Congreso Nac. sobre informática y computación     organizada por la Asociación Nac. de Instituciones de Educación     en Informática (ANIEI). Mérida, Yucatán. Octubre 1993</li>
<li>La Vida llegó a Maloka. Pagina web con     información descriptiva sobre el área de la Vida Artificial. http://maloka.org/virtual/vida/evolucion.htm</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ubicuos.com/2009/05/31/la-vida-artificial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MonaTweeta</title>
		<link>http://www.ubicuos.com/2009/05/31/monatweeta/</link>
		<comments>http://www.ubicuos.com/2009/05/31/monatweeta/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 00:36:15 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Ciencia]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Social / Internet]]></category>
		<category><![CDATA[evolutivo]]></category>
		<category><![CDATA[imagen]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.ubicuos.com/?p=189</guid>
		<description><![CDATA[Esta imagen es el resultado preliminar de una pequeña competencia con la meta de escribir un compresor/descompresor que permita enviar una imagen en un *"tweet", la imagen de la izquierda es la que ha sido envíada en 140 caracteres vía Twitter.]]></description>
			<content:encoded><![CDATA[<div align="left" style="padding: 0px 5px 5px 0px; clear: left; float: left;"><a name="fb_share" type="button_count" share_url="http://www.ubicuos.com/2009/05/31/monatweeta/"></a></div><div class="tweetmeme_button" style="float: left; margin-left: 10px;width:90px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.ubicuos.com%2F2009%2F05%2F31%2Fmonatweeta%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.ubicuos.com%2F2009%2F05%2F31%2Fmonatweeta%2F&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.ubicuos.com/wp-content/uploads/2009/05/3518306770_1de2bc2970.jpg"><img class="aligncenter size-medium wp-image-190" title="Mona Tweeta" src="http://www.ubicuos.com/wp-content/uploads/2009/05/3518306770_1de2bc2970-300x288.jpg" alt="Mona Tweeta" width="300" height="288" /></a><br />
Esta imagen es el resultado preliminar de una pequeña competencia con la meta de escribir un compresor/descompresor que permita enviar una imagen en un *&#8221;tweet&#8221;, la imagen de la izquierda es la que ha sido envíada en 140 caracteres vía Twitter.</p>
<p>Se utilizan ideogramas chinos dado que están en codificación UTF-8, los cuales permiten envíar 210 bytes de datos en 140 caracteres.<br />
En teoría se pudo haber ocupado cualquier parte del espectro de caracteres UTF-8, en el rango de 0&#215;0000-0xffff, pero debido a que hay caracteres de control en ese rango, posiblemente el mensaje no se envíe correctamente.</p>
<p>Además del pequeño truco en la codificación de los caracteres, se detallan otros puntos interesantes.</p>
<p>En una imagen típica en RGB se necesitan 24bits los cuales son tres bytes. Esto significa que si solamente guardas los puros colores, tu puedes enviar 70 colores. Desafortunadamente no podrías envías algo más,  a lo mucho una matriz de 7&#215;10 píxeles.<br />
La peor forma de almacenar las coordandas x/y completas serían dos veces 4 bytes, lo que significan 26 coordenadas en un &#8220;tweet.&#8221;</p>
<p>Eso es 8 triángulos. Obviamente necesitas hacer algunas conseciones con la precision aquín. ¿2 bytes por número? Esto resutan en que tienes 52 puntos o 17 triángulos. Desafortunadamente sin color alguno.</p>
<p>La creación actual de la imagen es un algoritmo evolutivo. Se empieza categorizando los colores de la imagen para obtener 8 colores representativos, despúes se dispersan 61 puntos en el área de la imagen, en cada punto se lee el color del píxel de la imagen y se escoje el matiz más cercano que se encuentra en la tabla de colores.</p>
<p>Con esots datos un &#8220;gen&#8221; binario ( la versión codificada de este &#8220;tweet&#8221; en chino). Del gen creo un diagrama de Voronoi que es la imagen resultante.</p>
<p>Si deseas leer el documento en su versión original (en inglés):</p>
<ul>
<li><a href="http://www.flickr.com/photos/quasimondo/3518306770/in/photostream/">Artículo original y la imagen de la Mona Tweeta<br />
</a></li>
<li><a href="http://es.wikipedia.org/wiki/Diagrama_de_Voronoi">Diagramas de Voronoi en Wikipedia</a></li>
<li><a href="http://www.twitter.com">Twitter.com</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ubicuos.com/2009/05/31/monatweeta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Super Evolución.</title>
		<link>http://www.ubicuos.com/2009/05/10/super-evolucion/</link>
		<comments>http://www.ubicuos.com/2009/05/10/super-evolucion/#comments</comments>
		<pubDate>Mon, 11 May 2009 00:46:52 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Ciencia]]></category>
		<category><![CDATA[evolución]]></category>

		<guid isPermaLink="false">http://www.ubicuos.com/?p=174</guid>
		<description><![CDATA[Una mariposa en la zona del Pacífico Sur ha evolucionado y encontrado la forma a escapar de la extinción, en solo un año. Mostrando la más rápido evolutivo observado por el hombre. La mariposa de la luna azul había sido diezmada por un parásito, pero ahora a evolucionado y creado una resistencia a la bacteria. [...]]]></description>
			<content:encoded><![CDATA[<div align="left" style="padding: 0px 5px 5px 0px; clear: left; float: left;"><a name="fb_share" type="button_count" share_url="http://www.ubicuos.com/2009/05/10/super-evolucion/"></a></div><div class="tweetmeme_button" style="float: left; margin-left: 10px;width:90px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.ubicuos.com%2F2009%2F05%2F10%2Fsuper-evolucion%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.ubicuos.com%2F2009%2F05%2F10%2Fsuper-evolucion%2F&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>
<p>Una mariposa en la zona del Pacífico Sur ha evolucionado y encontrado la forma a escapar de la extinción, en solo un año.</p>
<p>Mostrando la más rápido evolutivo observado por el hombre.</p>
<p>La mariposa de la luna azul había sido diezmada por un parásito, pero ahora a evolucionado y creado una resistencia a la bacteria.</p>
<p>La mariposa evolucionó tan rápido porque solamente la bacteria solamente afectaba a los machos.  La relación macho:hembra normalmente es de 50:50, cayendo a 1:99, permitiendo a esos machos con el gen de resistencia fecundar a más hembras que lo normal y no se habría dado este sorprendente caso.</p>
<div id="attachment_175" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.ubicuos.com/wp-content/uploads/2009/05/800px-hypolimnas_bolina_in_japan.jpg"><img class="size-medium wp-image-175" title="800px-hypolimnas_bolina_in_japan" src="http://www.ubicuos.com/wp-content/uploads/2009/05/800px-hypolimnas_bolina_in_japan-300x225.jpg" alt="Mariposa de la Luna Azul." width="300" height="225" /></a><p class="wp-caption-text">Mariposa de la Luna Azul.</p></div>
<p>Situaciones similares en las poblaciones de mariposas habían sido encontradas antes, pero nunca se había visto una evolución tan rápida y dramática .</p>
<p>Los científicos han etiquetado este fenómeno como &#8220;El principio de la Reina Roja de la evolución&#8221;, llamado así por el personaje de Lewis Carroll character, quien corriá más y más rápido solamente estando en el mismo lugar.</p>
<p>Visto en :</p>
<ul>
<li><a href="http://www.environmentalgraffiti.com/ecology/is-it-a-bird-is-it-a-plane-no-its-a-super-butterfly/112">Enviromental Graffity</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ubicuos.com/2009/05/10/super-evolucion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
