Foros del Web » Programando para Internet » Javascript »

Gráfica con canvas

Estas en el tema de Gráfica con canvas en el foro de Javascript en Foros del Web. Buenas, Tengo una gráfica que genero con canvas que de momento se rellena con datos aleatorios y la actualizo cada segundo. Aquí la función que ...
  #1 (permalink)  
Antiguo 21/03/2013, 04:13
 
Fecha de Ingreso: mayo-2012
Ubicación: Valencia
Mensajes: 67
Antigüedad: 12 años
Puntos: 0
Pregunta Gráfica con canvas

Buenas,
Tengo una gráfica que genero con canvas que de momento se rellena con datos aleatorios y la actualizo cada segundo. Aquí la función que ejecuto cada x segundos:

Código:
function draw() {

    var canvas = document.getElementById("canvas");
    var context = canvas.getContext("2d");
	
	var ancho = document.getElementById("canvas").width;
	var punto = ancho/(puntos_grafica-1);
	var alto = document.getElementById("canvas").height;	
	
	context.beginPath();
	context.moveTo(0, alto);
	
	var array = new Array(puntos_grafica-1);
	for (i=1;i<puntos_grafica;i++) {
		var aleatorio = Math.floor(Math.random()*101)
		array[i] = aleatorio;
	}
	
	var i
	for (i=1;i<puntos_grafica;i++) {
		context.lineTo(punto*i, alto-(array[i]));
	} 
	

	context.stroke();
	

}
Esta función la llamo con un setInterval cada x segundos para que pinte la gráfica, pero cada esos segundos la siguiente la pinta encima y así todo el rato.

Sé que parar borrarla se usa

Código:
clearRect(0, 0, ancho, alto);
Pero no sé donde ponerlo porque si lo pongo despues del context.stroke() no borra. Y si lo pongo antes, nunca llega a pintar.
¿Como lo hago para que cada x segundos borre lo que haya antes y la pinte con los nuevos datos?

Gracias.
  #2 (permalink)  
Antiguo 21/03/2013, 06:05
 
Fecha de Ingreso: mayo-2012
Ubicación: Valencia
Mensajes: 67
Antigüedad: 12 años
Puntos: 0
Respuesta: Gráfica con canvas

Lo he solucionado reasignando el ancho

Código:
canvas.width = canvas.width;
Funciona pero no sé si es la mejor manera

Etiquetas: canvas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:44.