function addPlot(){ plotArea.ox = 0; plotArea.oy = 0; plotArea.count = 0; plotArea.unit = 1000;//parseInt(prompt("Enter unit of time(in milli seconds)")); plotArea.specificTimeX = 0; } StopWatch = function() { this.StartMilliseconds = 0; this.ElapsedMilliseconds = 0; } StopWatch.prototype.Start = function() { this.StartMilliseconds = new Date().getTime(); } StopWatch.prototype.Stop = function() { this.ElapsedMilliseconds = new Date().getTime() - this.StartMilliseconds; } function startPlot(){ plotArea.stopWatch.Start(); for(var i=0;i0 && 80+(arr[j][0]*unit)-plotArea.ox>0 ){ // console.log("HIT1"); j--; // start= } if(j)j--; globalScope.Flag[i].cachedIndex=j; for( ;j=0){ mid = 80+((end-3000)/Math.round(plotArea.unit*plotArea.scale))*this.pixel; } ctx.fillText(arr[j][1].toString()||"x",mid-plotArea.ox,57+30*i-plotArea.oy); ctx.stroke(); } } else { break; } if(80+(end*unit)-plotArea.ox>this.c.width)break; } ctx.stroke(); ctx.beginPath(); } // 2 rectangles showing the time and labels ctx.fillStyle = '#eee'; ctx.fillRect(0, 0, this.c.width, 30); ctx.font="14px Georgia"; ctx.fillStyle = 'black'; for(var i=1; i*Math.round(plotArea.unit*plotArea.scale)<=time + Math.round(plotArea.unit*plotArea.scale) ;i++) { ctx.fillText(Math.round(plotArea.unit*plotArea.scale)*i/1000+"s",48+this.pixel*i-plotArea.ox,20); } ctx.fillStyle = '#eee'; ctx.fillRect(0,0,75,this.c.height); ctx.font="15px Georgia"; ctx.fillStyle = 'black'; for(var i=0;i= 80){ ctx.fillStyle = 'black'; ctx.fillRect(plotArea.specificTimeX - 35, 0, 70, 30); ctx.fillStyle = 'red'; ctx.fillRect(plotArea.specificTimeX - 30, 2, 60, 26); ctx.font="12px Georgia"; ctx.fillStyle = 'black'; ctx.fillText(Math.round(specificTime)+"ms",plotArea.specificTimeX - 25, 20); } // borders ctx.strokeStyle = 'black'; ctx.lineWidth = 2; ctx.beginPath(); ctx.moveTo(0,0); ctx.lineTo(0,this.c.height); // ctx.fillRect(0, 0, 3, this.c.height); ctx.moveTo(74,0); ctx.lineTo(74,this.c.height); // ctx.fillRect(74, 0, 3, this.c.height); ctx.moveTo(0,0); ctx.lineTo(this.c.width,0); // ctx.fillRect(0, 0, this.c.width, 3); // ctx.moveTo(0,27); // ctx.lineTo(this.c.width,27); // ctx.fillRect(0, 27, this.c.width, 3); ctx.stroke(); }, clear: function(ctx){ ctx.clearRect(0,0,plotArea.c.width,plotArea.c.height); // clearInterval(timeOutPlot); } } document.getElementById("plotArea").addEventListener('mousedown', function(e) { var rect = plotArea.c.getBoundingClientRect(); var x=e.clientX - rect.left; plotArea.scrollAcc=0; if(e.shiftKey){ plotArea.specificTimeX = x; } else{ plotArea.scroll=0; plotArea.mouseDown=true; plotArea.prevX=x; console.log("HIT"); } }); document.getElementById("plotArea").addEventListener('mouseup', function(e) { plotArea.mouseDown=false; }); document.getElementById("plotArea").addEventListener('mousemove', function(e) { var rect = plotArea.c.getBoundingClientRect(); var x=e.clientX - rect.left; if(!e.shiftKey&&plotArea.mouseDown){ plotArea.ox-=x-plotArea.prevX; plotArea.scrollAcc=x-plotArea.prevX; plotArea.prevX=x; // plotArea.ox=Math.max(0,plotArea.ox) } else{ plotArea.mouseDown=false; } });