【问题标题】:Canvas shapes becoming aliased when re-drawn in safari在 safari 中重新绘制时,画布形状变得混叠
【发布时间】:2011-01-06 10:33:19
【问题描述】:

我正在使用画布绘制一个简单的进度指示器。当第一次绘制元素时,它看起来很好并且抗锯齿,但是当第二次绘制时,它失去了抗锯齿。有人知道这里会发生什么吗?

function drawProgress(id, percent) {
            var selected = $(safeID(id)).is('.selected');

            var canvas = $(safeID("CANVAS_" + id));
            var ctx = $(canvas)[0].getContext('2d');
            ctx.clearRect();

            if ( selected ) {
                ctx.fillStyle = "#ffffff";
                ctx.strokeStyle = "#ffffff";
            }
            else {
                ctx.fillStyle = "#99a7ca";
                ctx.strokeStyle = "#99a7ca";
            }

            ctx.beginPath();
            ctx.arc(canvas.width()/2.0, canvas.height()/2.0, canvas.width()/2.0-1, 0, Math.PI, false);
            ctx.fill();

            ctx.beginPath();
            ctx.arc(canvas.width()/2.0, canvas.height()/2.0, canvas.width()/2.0-1, 0, Math.PI*2.0, false);
            ctx.stroke();
        }

【问题讨论】:

    标签: html safari canvas


    【解决方案1】:

    您需要将尺寸指定为clearRect

    【讨论】:

    • 哈哈。我只是注意到然后赶回这里回答它。我猜太慢了:)
    • 我想这可以回答人们关于消除抗锯齿的问题。只需将相同的形状绘制 5 次,具有部分 Alpha 通道的像素就会自行填充以显示锯齿。
    猜你喜欢
    • 1970-01-01
    • 2018-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多