<?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>Scipion Strikes Back &#187; random</title>
	<atom:link href="http://scipion.es/tag/random/feed/" rel="self" type="application/rss+xml" />
	<link>http://scipion.es</link>
	<description>Scipion Strikes Back. Padawan de la web2.0 metido a desarrollador web.</description>
	<lastBuildDate>Sat, 11 Feb 2012 19:28:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Más pixels aleatorios, esta vez con Canvas</title>
		<link>http://scipion.es/2011/12/mas-pixels-aleatorios-esta-vez-con-canvas/</link>
		<comments>http://scipion.es/2011/12/mas-pixels-aleatorios-esta-vez-con-canvas/#comments</comments>
		<pubDate>Fri, 23 Dec 2011 16:32:58 +0000</pubDate>
		<dc:creator>Scipion</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[pixel]]></category>
		<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://scipion.es/?p=208</guid>
		<description><![CDATA[Hace tiempo escribí un post acerca de los pixels aleatorios. Dibujaba una imagen en java para probar que no ser repetían patrones en la funcion random. Para hacer lo propio en javascript ahora gracias al html5 podemos usar la etiqueta canvas y pintar dentro de ella. Nos declaramos un canvas del tamaño que queramos, por [...]]]></description>
			<content:encoded><![CDATA[<p>Hace tiempo escribí un post acerca de los pixels aleatorios. Dibujaba una imagen en java para probar que no ser repetían patrones en la funcion random. Para hacer lo propio en javascript ahora gracias al html5 podemos usar la etiqueta canvas y pintar dentro de ella. Nos declaramos un canvas del tamaño que queramos, por ejemplo de 300 x 300</p>
<pre class="brush:html">&lt;canvas height="300" width="300" id="mycanvas"&gt;&lt;/canvas&gt;</pre>
<p>Antes de dibujar en nuestro lienzo tenemos que usar el contexto, en este caso en 2d.</p>
<p>Para dibujar pixel a pixel solo tienes que dibujar cuadrados de un pixel de tamaño. Empezamos por la cordenada (0,0) hasta la (299,299). En realidad puedes dibujar fuera del canvas, pero por supuesto no esperes que se vea.</p>
<pre class="brush:js">function drawRandom(id){
	var canvas = document.getElementById(id);
	var ctx = canvas.getContext('2d');

	for(var j=0;j&lt;300; j++){
		for(var i=0;i&lt;300; i++){
			ctx.fillStyle = getRandColor();
			ctx.fillRect(i, j,i+1, j+1);
		}
	}
}

function getRandColor(){
	//Si quieres puedes usar solo blanco y negro para verlo más claro
	//var blanco="rgb(255,255,255)";
	//var negro="rgb(0,0,0)";
	return ("rgb("+(parseInt( (Math.random()*1000) % 256))+","
		+(parseInt( (Math.random()*1000) % 256))+","
		+(parseInt( (Math.random()*1000) % 256))+")");
}

drawRandom("mycanvas");</pre>
<p>Puede que tarde un rato, o incluso que el navegador piense que tienes un bucle infinito en ejecución. Después te pintará una imagen tan &#8220;bonita&#8221; como esta:</p>
<div id="attachment_216" class="wp-caption aligncenter" style="width: 310px"><a href="http://scipion.es/wp-content/uploads/2011/12/canvas.png"><img class="size-full wp-image-216" title="canvas" src="http://scipion.es/wp-content/uploads/2011/12/canvas.png" alt="canvas con pixels de colores aleatorios" width="300" height="300" /></a><p class="wp-caption-text">canvas con pixels de colores aleatorios</p></div>
<p>Para este ejemplo sencillo vemos que la funcion <em>Math.random( )</em> se comporta bastante bien en cuanto al grado de aleatoriedad. Pero si quieres profundizar en hacer dibujos con canvas puedes ver más cosas <a href="https://developer.mozilla.org/en/Canvas_tutorial/Drawing_shapes" target="_blank">aquí</a>. Si ya lo has hecho en otros lenguajes (no como yo) no te resultará complicado hacerlo en javascript.</p>
]]></content:encoded>
			<wfw:commentRss>http://scipion.es/2011/12/mas-pixels-aleatorios-esta-vez-con-canvas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

