我做了這個(運行下面摘錄)HTML畫布,畫的模糊多邊形
var Canvas = document.getElementById('c');
var ctx = Canvas.getContext('2d');
var resize = function() {
Canvas.width = Canvas.clientWidth;
Canvas.height = Canvas.clientHeight;
};
window.addEventListener('resize', resize);
resize();
var elements = [];
var presets = {};
presets.shard = function (x, y, s, random, color) {
return {
x: x,
y: y,
draw: function(ctx, t) {
this.x += 0;
this.y += 0;
var posX = this.x + + Math.sin((50 + x + (t/10))/100) * 5;
var posy = this.y + + Math.sin((55 + x + (t/10))/100) * 7;
ctx.beginPath();
ctx.fillStyle = color;
ctx.moveTo(posX, posy);
ctx.lineTo(posX+random,posy+random);
ctx.lineTo(posX+random,posy+random);
ctx.lineTo(posX+0,posy+50);
ctx.closePath();
ctx.fill();
}
}
};
for(var x = 0; x < Canvas.width; x++) {
for(var y = 0; y < Canvas.height; y++) {
if(Math.round(Math.random() * 60000) == 1) {
var s = ((Math.random() * 5) + 1)/10;
if(Math.round(Math.random()) == 1){
var random = Math.floor(Math.random() * 100) + 10;
var colorRanges = ['#8c8886', '#9c9995'];
var color = colorRanges[Math.floor(Math.random() * colorRanges.length)];
elements.push(presets.shard(x, y, s, random, color));
}
}
}
}
setInterval(function() {
ctx.clearRect(0, 0, Canvas.width, Canvas.height);
var time = new Date().getTime();
for (var e in elements)
elements[e].draw(ctx, time);
}, 10);
<canvas id="c" width="1000" height="1000"\>
我只需要添加一個功能能夠使用它我建立的網站上爲了。一些浮動碎片需要模糊以給出深度感。
Can Canvas可以做到這一點,如果是這樣,如何?
謝謝!
_Can帆布做到這一點,如果是這樣,如何_嘗試[探索?它](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D)你自己 – hindmost
@markE我沒有說它是無效的,我只是建議OP首先嚐試找到解決方案。 – hindmost
@markE爲了說服OP,Canvas沒有現成的功能/方法 – hindmost