javascript - HTML5 Canvas 抗锯齿?

标签 javascript html5-canvas

我正在尝试用 Canvas 绘制二次曲线。这是代码:
HTML:

<canvas id="mycanvas"> 
    Your browser is not supported.
</canvas> 

JavaScript:
var canvas = document.getElementById("mycanvas");
canvas.style.width = "1000px";
canvas.style.height = "1000px";
if (canvas.getContext) {
    var ctx = canvas.getContext("2d");
    var x = 0,
        y = 0;
    setInterval(function() {
        ctx.lineTo(x, y);
        ctx.stroke();
        x += 1;
        y = 0.01 * x * x;
    }, 100);
}

但是结果真的很丑,第一,线条太粗,第二,别名太明显了....我该如何改善呢?
你可以在这里看到效果:http://jsfiddle.net/7wNmx/1/

最佳答案

另一件事是你每次都在抚摸。所以第一条线画得最多,而第二条线画得少,等等。

这也导致它变得丑陋。您需要开始一条新路径,并且只抚摸那条路径:

var canvas = document.getElementById("mycanvas");
canvas.style.width = "1000px";
canvas.style.height = "1000px";
if (canvas.getContext) {
    var ctx = canvas.getContext("2d");
    var x = 0,
        y = 0;
    setInterval(function() {
        ctx.beginPath();
        ctx.moveTo(x,y)
        x += 1;
        y = 0.01 * x * x;
        ctx.lineTo(x, y);
        ctx.stroke();
    }, 100);
}

相比:

http://i.stack.imgur.com/40M20.png

它也更快,因为完成的绘图更少。

关于javascript - HTML5 Canvas 抗锯齿?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6032263/

相关文章:

javascript - 使用 jquery 变量设置背景图像(线性渐变)

javascript - $$ ('foo' ) 在 JavaScript 源代码中是什么意思?

javascript - Backbone Js 分部分加载应用程序

javascript - 使用 HTML5 Canvas 进行图像/纹理的透视变换

Javascript 为什么当我在 `mousemove` 中使用 drawImage 时,我得到的图像很差?

javascript - 如何在 meteor 中使用 javaScript 将字符串放入粘贴缓冲区中?

javascript - 在 vue bootstrap b-table 单元格内创建一个链接

javascript - 避免 JavaScript 中的某些坐标

javascript - 在给定恒定斜率和变化坐标的情况下查找两条线的交点

javascript - 使用 HTML5 Canvas 开发外部方向键