是
HTML5
新增的,一个可以使用脚本(通常为JavaScript
)在其中绘制图像的 HTML
元素。它可以用来制作照片集或者制作简单(也不是那么简单)的动画,甚至可以进行实时视频处理和渲染。
要使用
A darwing of something
如果不给
设置widht、height
属性时,则默认 width
为300、height
为150,单位都是px
。也可以使用css
属性来设置宽高,但是如宽高属性和初始比例不一致,他会出现扭曲。所以,建议永远不要使用css
属性来设置
的宽高。
要在这块画布上绘图,需要取得绘图上下文,需要调用getContext()方法并传入上下文的名字,传入‘2d’
var drawing = document.getElementById('tutorial');
// 确定浏览器支持元素
if(drawing.getContext){
var context = drawing.getContext('2d');
//更到代码
}
矩形是一种可以直接在2D上下文绘制的形状,有关的方法为:fillRect(),strokeRect(),clearRect().
这三个方法都可以接受4个参数:矩形的x坐标,矩形的y坐标,矩形的宽度和矩形的高度
1.fillRect(),方法在画布上绘制矩形,填充的颜色通过fillStyle属性指定
2.strokeRect()方法在画布上会描边矩形,描边颜色通过syrokeStyle属性指定
描边线条的宽度由lineWidth属性控制,该属性可以使任意整数,另外,通过lineCap属性可以控制线条末端的形状是平头,圆头还是方头('butt','round','square') , 通过lineJoin属性可以控制线条相交的方式是圆交,斜交还是斜接('round','bevel','miter');
var lineCaps = ["butt", "round", "square"];
for (var i = 0; i < 3; i++){
ctx.beginPath();
ctx.moveTo(20 + 30 * i, 30);
ctx.lineTo(20 + 30 * i, 100);
ctx.lineWidth = 20;
ctx.lineCap = lineCaps[i];
ctx.stroke();
}
ctx.beginPath();
ctx.moveTo(0, 30);
ctx.lineTo(300, 30);
ctx.moveTo(0, 100);
ctx.lineTo(300, 100)
ctx.strokeStyle = "red";
ctx.lineWidth = 1;
ctx.stroke();
function draw(){
var canvas = document.getElementById('tutorial');
if (!canvas.getContext) return;
var ctx = canvas.getContext("2d");
var lineJoin = ['round', 'bevel', 'miter'];
ctx.lineWidth = 20;
for (var i = 0; i < lineJoin.length; i++){
ctx.lineJoin = lineJoin[i];
ctx.beginPath();
ctx.moveTo(50, 50 + i * 50);
ctx.lineTo(100, 100 + i * 50);
ctx.lineTo(150, 50 + i * 50);
ctx.lineTo(200, 100 + i * 50);
ctx.lineTo(250, 50 + i * 50);
ctx.stroke();
}
}
draw();
3.clearRect(x, y, widh, height)
清除指定的矩形区域,然后这块区域会变的完全透明。