Canvas

Canvas绘图

取得绘图上下文对象的引用——getContext()方法

取得2D上下文对象——getContext("2d")

var drawing=document.getElementById("drwaing");
if(drawing.getContext){
    var context=drawing.getContext("2d")
}

导出在<canvas>元素上绘制的图像——toDataURL()方法

var drawing=document.getElementById("drwaing");
if(drawing.getContext){
    var imgURI=drawing.toDtatURL("image/png");
    var image=document.createElement("img");
    image.src=imgURI;
    document.body.appendChild(image);
}

2D上下文

绘图操作

填充——fillStyle属性

描边——strokeStyle属性

var drawing=document.getElementById("drwaing");
if(drawing.getContext){
    var context=drawing.getContext("2d");
    context.strokeStyle="red";
    context.fillStyle="@0000ff";
}

绘制矩形

绘制矩形并指定填充颜色——fillRect(x,y,width,height)  ||  fillStyle属性

绘制矩形并指定描边颜色——strokeRect(x,y,width,height)  ||  strokeStyle属性

清除画布上的矩形区域——clearRect(x,y,width,height)

var drawing=document.getElementById("drwaing");
if(drawing.getContext){
    var context=drawing.getContext("2d");
    context.strokeStyle="red";
    context.fillRect(10,10,50,50);
   
    context.fillStyle="rgba(0,0,255,0.5";
    context.fillRect(30,30,50,50);
}

绘制路径

开始绘制新路径——beginPath()

绘制弧线——arc(x,y,radius,startAngle,endAngle,counterclockwise)

圆心坐标(x,y),半径radius,起始和结束角度(startAngle,endAngle)

是否按顺时针方向计算——counterclockwise

绘制弧线——arcTo(x1,y1,x2,y2,radius)

绘制直线——lineTo(x,y)

移动绘图游标——moveTo(x,y)

绘制矩形——rect(x,y,width,height)

绘制一条连接到路径起点的线条——closePath()

路径绘图操作

填充——fill()

描边——stroke()

var drawing=document.getElementById("drwaing");
if(drawing.getContext){
    var context=drawing.getContext("2d");
    context.beginPath();
   
    context.arc(100,100,99,0,2*Math.PI,false);
   
    context.moveTo(194,100);
    context.arc(100,100,94,0,2*Math.PI,false);
   
    context.moveTo(100,100);
    context.lineTo(100,15);
   
    context.moveTo(100,100);
    context.lineTo(35,100);
   
    context.stroke();
}

绘制文本

——fillText(string,x,y)

——strokeText(string,x,y)

确定文本大小——measureText()

属性——font、textAlign、textBaseline

var drawing=document.getElementById("drwaing");
if(drawing.getContext){
    var context=drawing.getContext("2d");
    context.font="bold 14px Arial";
    context.textAlign="center";
    context.textBaseline="middle";
    context.fillText("hello world",100,20);
}

变换

旋转——rotate(angle)

缩放——scale(scaleX, scaleY)

平移——translate(x, y)

重置变换矩阵——setTransform()

修改变换矩阵——transform()

保存设置——save()

返回之前保存的设置——restore()

绘制图像

绘制图像——drawImage()

var drawing=document.getElementById("drwaing");
if(drawing.getContext) {
    var context = drawing.getContext("2d");
    var image = document.image[0];
    context.drawImage(image, 10, 10);
}

阴影

阴影颜色——属性shadowColor

形状或路径X轴方向的阴影偏移量——属性shadowOffsetX

形状或路径Y轴方向的阴影偏移量——属性shadowOffsetY

模糊的像素数——shadowBlur

var drawing=document.getElementById("drwaing");
if(drawing.getContext) {
    var context = drawing.getContext("2d");
    context.shadowOffsetX=5;
    context.shadowOffsetY=5;
    context.shadowBlur=4;
    context.shadowColor="rgba(0,0,0,0.5";
   
    context.fillStyle="#ff0000";
    context.fillRect(10,10,50,50);
}

渐变

创建线性渐变——createLinearGradient(x1,y1,x2,y2)

指定色标——addColorStop()

将填充或描边样式设置为渐变对象,使用渐变来填充或描边

var drawing=document.getElementById("drwaing");
if(drawing.getContext) {
    var context = drawing.getContext("2d");
   
    var gradient = context.createLinearGradient(30, 30, 70, 70);
    gradient.addColorStop(0, "white");
    gradient.addColorStop(1, "black");
   
    context.fillStyle=gradient;
    context.fillRect(30,30,50,50);
}

创建径向渐变——createRaidalGradient()

指定色标——addColorStop()

var drawing=document.getElementById("drwaing");
if(drawing.getContext) {
    var context = drawing.getContext("2d");

    var gradient = context.createRadialGradient(55,55,10,55,55,30);;
    gradient.addColorStop(0, "white");
    gradient.addColorStop(1, "black");

    context.fillStyle=gradient;
    context.fillRect(30,30,50,50);
}

模式

模式:重复的图像,可以用来填充或描边图形

创建模式——createPattern()

将填充样式设置为模式对象,只表在某个特定的区域显示重复的图像

var drawing=document.getElementById("drwaing");
if(drawing.getContext) {
    var context = drawing.getContext("2d");
    var image=document.images[0];
    var pattern=context.createPattern(image,"reapeat");
   
    context.fillStyle=pattern;
    context.fillRect(10,10,150,150);
}

使用图像数据

使用图像数据——getImageData(x,y, width,height)

var drawing=document.getElementById("drwaing");
if(drawing.getContext) {
    var context = drawing.getContext("2d");
    var imageData = context.getImageData(10, 5, 50, 50);
    var data=imageData.data,
        red=data[0],
        green=data[1],
        blue=data[2],
        alpha=data[3];
}

合成

指定所有绘制的透明度——属性globalAlpha

绘制后的图形怎样与先绘制的图形结合——属性globalCompositionOperation

WEBGL

 

转载于:https://my.oschina.net/u/3240534/blog/857171

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值