您的位置:首页 > Web前端 > HTML5

HTML5 Canvas(7) 渐变

2012-07-07 15:14 288 查看
var context = document.getElementById("myCanvas").getContext("2d");

context.save();
context.shadowBlur = 20; //模糊值
context.shadowOffsetX = 10; //阴影向X偏移量
context.shadowOffsetY = 10; //阴影向Y偏移量
context.shadowColor = "blue"; //阴影颜色
//context.shadowColor = "rgba(255,0,0,0.8)"; //也可以设置透明色
context.fillRect(10, 10, 100, 100);

//画一个带红色阴影的圆
context.shadowColor = "red";
context.shadowBlur = 50;
context.shadowOffsetX = 0;
context.shadowOffsetY = 0;
context.beginPath();
context.arc(200, 60, 50, 0, Math.PI * 2, false);
context.fill();

context.restore();
//线性渐变
var x = 10, y = 150, height = 100, width = 100;
//createLinearGradient创建渐变色,起始点和结束点,画布不在这个范围内的不会有渐变效果
var gradient1 = context.createLinearGradient(x, y, x, y + height);
//增加渐变控制点
gradient1.addColorStop(0, "red");
gradient1.addColorStop(1, "green");
context.fillStyle = gradient1;
context.fillRect(x, y, width, height);

//放射渐变原理是对连接2个圆圆周的椎体
var x0 = 300, y0 = 300, r0 = 10, x1 = 100, y1 = 100, r1 = 50;
var gradient2 = context.createRadialGradient(x0, y0, r0, x1, y1, r1);
gradient2.addColorStop(0, "red");
gradient2.addColorStop(1, "blue");
context.fillStyle = gradient2;
//context.globalCompositeOperation = "copy";
context.fillRect(0, 0, 500, 500);

//一般放射效果
x0 = x1 = 300, y0 = y1 = 300;
var gradient3 = context.createRadialGradient(x0, y0, r0, x1, y1, r1);
gradient3.addColorStop(0, "white");
gradient3.addColorStop(1, "black");
context.fillStyle = gradient3;
context.fillRect(x0 - 25, y0 - 25, 50, 50);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: