Comunidad de diseño web y desarrollo en internet online

canvas y array

Citar            
MensajeEscrito el 18 Oct 2012 10:13 pm
hola gente tengo este codigo

Código HTML :

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Título</title>
<style type="text/css">
html, body{margin: 0;padding: 0;width: 100%;height: 100%;overflow: hidden;}
</style>
</head>
<body onmousemove="c(event);" >
   <div class="contenedor">
      <canvas id="myCanvas" height="1000" width="2000">
         Your browser does not support the HTML5 canvas tag.
      </canvas>
   </div>
</body>
<script type="text/javascript">

var i = 0;
function c(e){
   var arr = [];
   var c=document.getElementById("myCanvas");
   var ctx=c.getContext("2d");
   ctx.beginPath();
   ctx.arc(e.pageX + Math.random() * 25,e.pageY + Math.random() * 25,Math.random() * 25,0,4*Math.PI);
   ctx.strokeStyle = "#" + Math.round(Math.random()*999999);
   ctx.stroke();
   arr.push(ctx);
}
//EXECUTION
</script>
</html>


que genera circulos en lugares random de un html, siguiendo al mouse, ahora, me gustaria saber si hay alguna forma de ir borrando los que se quedan atras, apra que no quede un rastro interminable de circulos :D, gracias, si quieren prueben el codigo.

Por skaterseba

Claber

170 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Oct 2012 05:47 pm
Interesante! a lo mejor borrando elementos del array arr usando un setInterval

aqui http://motyar.info/draw/#themain con el boton Undo borra los anteriores, lo que puedes ir haciendo es con setInterval ir borrando el elemento 0 de arr o guardando los valores del arr que dibuja y sobreescribiendo el canvas con un fill #ffffff, no lo he probado pero se me ocurre eso. Canvas dibuja con layers, en ese ejemplo Undo borra el layer anterior, abria que ver como remover no el ultimo sino el primer layer

Por comicSans

Claber

151 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Oct 2012 06:49 pm
En todo caso antes de imprimir una nueva figura, borrar la anterior.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 20 Oct 2012 04:39 pm
claro, pero el tema, es como borro la figura? jeje, ya que el evento se ejecuta onmousemove, entonces, como tendria que ahcer?

Por skaterseba

Claber

170 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Oct 2012 03:01 pm
Dibujar la misma figura pero con el mismo color que el fondo.

En realidad no sé mucho de canvas en HTML5 pero lo que he visto es muy similar a cualquier otro canvas (en programas de escritorio). La técnica que propuse es la más común para cosas sencillas aunque tiene sus problemas, por ejemplo, en animaciones rápidas provoca "flickering" y es bastante lento (por lo ineficiente). Lo ideal es capturar la región del canvas que va a ocupar la figura antes de dibujarla y al momento de borrarla restaurar esa región, pero ignoro si esto se puede hacer con canvas de HTML5.

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.