HTML5利用Canvas绘制图形(绘制渐变、模式、变换)
2017-06-03 23:30
597 查看
绘制渐变
渐变是一种很普遍的视觉形象,能带来视觉上的舒适感。在Canvas中,绘图API提供了两个原生的渐变方法,包括线性渐变和径向渐变。渐变,在颜色集上使用逐步抽样的算法,可以应用的描边样式和填充样式中。使用渐变需要三个步骤:首先是创建渐变对象;其次是设置渐变颜色和过渡方式;最后将渐变对象赋值给填充样式或描边样式。代码实现
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>绘制渐变</title>
<script type="text/javascript">
function Draw(){
var canvas=document.getElementById("canvas");
var context=canvas.getContext("2d");
//创建渐变对象:线性渐变
var grd=context.createLinearGradient(0,0,300,0);
//设置渐变颜色及方式
grd.addColorStop(0,"#f90");
grd.addColorStop(1,"#0f0");
//将填充样式设置为线性渐变对象
context.fillStyle=grd;
context.fillRect(0,0,300,80);
}
window.addEventListener("load",Draw,false);
function Draw2(){
var canvas=document.getElementById("canvas");
var context=canvas.getContext("2d");
//创建渐变对象:径向渐变
var grd=context.createLinearGradient(0,0,300,0);
//设置渐变颜色及方式
grd.addColorStop(0,"#0f0");
grd.addColorStop(1,"#f90");
//将填充样式设置为线性渐变对象
context.fillStyle=grd;
context.beginPath();
context.arc(180,180,90,0,Math.PI*2,true);
context.fill();
}
window.addEventListener("load",Draw2,false);
</script>
</head>
<body>
<canvas id="canvas" width="400" height="300">你的浏览器不支持canvas</canvas>
<canvas id="canvas2" width="400" height="300">你的浏览器不支持canvas</canvas>
</body>
</html>
效果 上(线性渐变),下(径向渐变)
模式
模式是一个抽象的概念,描述的是一种规律。在Canvas中,通常会为贴图图像创建一个模式,用于描边样式和填充样式,可以绘制出带图案的边框和背景图。代码实现
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>模式</title>
<script type="text/javascript">
function Draw(){
var canvas=document.getElementById("canvas");
var context=canvas.getContext("2d");
var img=new Image();
img.src="../img/5.jpg";
img.onload=function(){
//创建一个贴图模式,循环平铺图像
var ptrn=context.createPattern(img,'repeat');
context.fillStyle=ptrn;
context.fillRect(0,0,1000,2000);
}
}
window.addEventListener("load",Draw,false);
</script>
</head>
<body>
<canvas id="canvas" width="400" height="300">你的浏览器不支持canvas</canvas>
</body>
</html>
效果
变换
在绘制图像的过程中,如果一种形状的图形要绘制多次,显然是增加了复杂性。Canvas绘图API提供了多种变换方法,为实现复杂的绘图操作提供了便捷的方法。常见的变换方法包括平移、缩放、旋转和变形。1. 移动变换
将整个坐标系统设置一定的偏移数量,绘制出来的图像也会跟着偏移。(默认以左上角(0,0)作为原点)<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>绘制渐变</title>
<script type="text/javascript">
function Draw(){
var canvas=document.getElementById("canvas");
var context=canvas.getContext("2d");
//设置移动偏移量
context.translate(200,120);
//绘制一个圆形脸谱
ArcFace(context);
}
function ArcFace(context){
//绘制一个圆形边框
context.beginPath();
context.arc(0,0,90,0,Math.PI*2,true);
context.lineWidth=5;
context.strokeStyle="#f90";
context.stroke();
//绘制一个脸谱
context.beginPath();
context.moveTo(-30,-30);
context.lineTo(-30,-20);
context.moveTo(30,-30);
context.lineTo(30,-20);
context.moveTo(-20,30);
context.bezierCurveTo(-20,44,20,30,30,20);
context.strokeStyle="#000";
context.lineWidth=10;
context.lineCap="round";
context.stroke();
}
window.addEventListener("load",Draw,false);
</script>
</head>
<body>
<canvas id="canvas" width="400" height="300">你的浏览器不支持canvas</canvas>
</body>
</html>
效果
2.缩放变换
缩放变换是将整个坐标系统设置一对缩放因子,绘制出来的图像会相应的缩放。代码实现
function Draw(){
var canvas=document.getElementById("canvas");
var context=canvas.getContext("2d");
//设置移动偏移量
context.translate(200,120);
//缩放图像,在水平方向和垂直方向设置不同的缩放因子
context.scale(0.6,0.4)
//绘制一个圆形脸谱
ArcFace(context);
}
效果
3.旋转变换
是将整个坐标系统设置一个选装的角度,绘制出来的图像会相应的旋转。function Draw(){
var canvas=document.getElementById("canvas");
var context=canvas.getContext("2d");
//设置移动偏移量
context.translate(200,120);
//旋转图像,顺时针旋转30度
context.rotate(Math.PI/6);
//缩放图像,在水平方向和垂直方向设置不同的缩放因子
context.scale(0.6,0.4)
//绘制一个圆形脸谱
ArcFace(context);
}
效果
相关文章推荐
- HTML5利用Canvas绘制图形(Canvas基本知识、绘制矩形、使用路径和图形组合)
- HTML5教程-用Canvas标签绘制坐标变换图形
- HTML5利用Canvas绘制图形(使用图像、裁剪区域、使用文本。阴影效果和操作像素)
- HTML5中canvas知识点详解3-绘制渐变图形
- 【Html5每日练习】canvas绘制坐标变换图形
- Html5学习------canvas绘制径向渐变图形
- HTML5 Canvas渐变图形绘制[线性、径向]
- 【Html5每日练习】canvas绘制线性渐变图形
- HTML5学习笔记14-Canvas绘制渐变图形与绘制变形图形
- html5学习笔记二:利用canvas绘制简单图形
- Html5实例: <canvas>绘制渐变图形
- 小强的HTML5移动开发之路(6)——Canvas图形绘制基础
- 使用 HTML5 canvas 绘制的图形
- [Web Chart系列之一(续)]Web端图形绘制SVG,VML, HTML5 Canvas 简单实例
- 小强的HTML5移动开发之路(6)——Canvas图形绘制基础
- 怎样将html5中利用canvas绘制的图像在服务端保存为图片?
- HTML5 Canvas绘制渐变(二)
- HTML5 移动开发 -- Canvas 绘图 9.2 三角形路径绘制, 圆, 圆弧,二元三元抛物线, 渐变
- 在Canvas中利用Path绘制基本图形
- HTML5 利用Canvas API 组合图形 推荐