如何在 canvas html5 中渲染 Socket 数据?

Posted

技术标签:

【中文标题】如何在 canvas html5 中渲染 Socket 数据?【英文标题】:How to rendering Socket data in canvas html5? 【发布时间】:2013-10-29 13:57:56 【问题描述】:

1) 如何在canvas html5中渲染Socket数据?

使用常量数据绘制画布。

当我从没有像上面那样渲染的套接字获取数据时

1) 套接字数据每 10 秒与上述示例相同

【问题讨论】:

【参考方案1】:

我认为;你的数据数组应该在'drawWave'方法之外作为你的小提琴ex,你应该在'socket.on'中调用'drawWave'方法一次。在调用“drawWave”之后。你应该在 'socket.on' 改变你的数据数组,而不是在 'drawWave'。

你可以试试吗?

    var data = [];
    var drawWaveCaught=false;
    socket.on('canvasData', function (incomeData) 
        console.log(incomeData);
        data = JSON.parse("[" + incomeData + "]");
        if(!drawWaveCaught)
            drawWaveCaught = true;
            that.drawWave(); 

         
    );
function drawWave() 
        requestAnimFrame(drawWave);
        var n = 0;
        var canvas = document.getElementById('canvas');
        //alert(id);
        var ctx = canvas.getContext("2d");
        ctx.fillStyle = "#dbbd7a";
        ctx.fill();

        ctx.lineWidth = "2";
        ctx.strokeStyle = 'green';
        // Drawing code goes here
        for(n=1;n<=data.length;n++)
        
            ctx.beginPath();
            ctx.moveTo(n - 1, data[n - 1] * 2);
            ctx.lineTo(n, data[n] * 2);
            ctx.stroke();
            ctx.clearRect(n + 1, 0, 10, canvas.height);
        

    

【讨论】:

使用我的代码当套接字结果即将画布完美绘制时,但这就像我的小提琴示例一样呈现。

以上是关于如何在 canvas html5 中渲染 Socket 数据?的主要内容,如果未能解决你的问题,请参考以下文章

SVG 与 HTML5 的 canvas 各有啥优点,哪个更有前途

如何修复 HTML5 画布中的模糊文本?

HTML5+Canvas开发详解(第2版).pdf

SVG 与 HTML5 的 canvas 各有啥优点,哪个更有前途

如何使用 HTML5 Canvas 制作水波纹效果

html5 canvas 画圆弧有锯齿怎么解决