Fre*_*idt 9 javascript graphics canvas
我正在考虑使用一些相当强烈的JavaScript /画布使用的网站,我一直在看Processing.js,在我看来,这将使操作画布变得更加容易.有谁知道为什么我不应该使用Processing.js?我知道旧的浏览器将无法使用它,但现在还可以.
如前所述,Processing.js(包括 IE8 beta)不支持 IE。我还发现与仅使用画布相比,processing.js 在性能方面有点慢(特别是如果您使用处理语言而不是使用 javascript API 解析字符串)。
与处理包装器相比,我个人更喜欢画布 API,因为它给了我更多的控制权。例如:
处理line()函数的实现是这样的(大致):
function line (x1, y1, x2, y2) {
context.beginPath();
context.moveTo(x1, y1);
context.lineTo(x2, y2);
context.closePath();
context.stroke();
};
Run Code Online (Sandbox Code Playgroud)
你可以像这样使用它(假设你使用的是 javascript 公开的 API):
var p = Processing("canvas")
p.stroke(255)
////Draw lines...///
p.line(0,0,10,10)
p.line(10,10,20,10)
//...and so on
p.line(100,100,200,200)
////End lines////
Run Code Online (Sandbox Code Playgroud)
请注意,每个 line() 调用都必须打开和关闭一个新路径,而使用 canvas API,您可以在单个 beginPath/endPath 块中绘制所有线条,从而显着提高性能:
context.strokeStyle = "#fff";
context.beginPath();
////Draw lines...///
context.moveTo(0, 0);
context.lineTo(10, 10);
context.lineTo(20, 10);
//...so on
context.lineTo(200, 200);
////End lines...///
context.closePath();
context.stroke();
Run Code Online (Sandbox Code Playgroud)