canvas之2D上下文

1.填充和描边

(1)fillStyle

(2)strokeStyle

2.绘制矩形

(1)fillRect()

(2)strokeRect()

(3)clearRect()   :清除画布上的矩形区域

<canvas id = "drawing" width="400px" height="400px" style="background-color: #d1f1ff"></canvas>
 1         var drawing = document.getElementById("drawing");
 2         if(drawing.getContext){
 3             var ct = drawing.getContext("2d");
 4         }
 5
 6         ct.fillStyle = "#ff0000";
 7         ct.fillRect(10,10,50,50);
 8
 9         ct.fillStyle = "rgba(0,0,255,0.5)";
10         ct.fillRect(30,30,50,50);
11
12         ct.clearRect(40,40,10,10);

3.绘制路径

  (1)arc(x,y,radius,startAngle,endAngle,countercockwise)

      以(x,y)画圆,radius为半径,startAngle:起始角度,endAngle:结束角度,countercockwise:是否按逆时针方向转动,false表示按逆时针转动。

  (2)arcTo(x1,y1,x2,y2,radius)

      从(x1,y1)到(x2,y2)画一条半径为radius的弧线

  (3)bezierCurveTo(c1x,c1y,c2x,c2y,x,y)

     贝塞尔曲线,详细的看我的SVG--贝塞尔曲线的博客

  (4)lineTo(x,y)

     从上一点开始画一条线到(x,y)

  (5)moveTo(x,y)

      将绘图游标移到(x,y)

  (6)quadraticCurveTo(cx,cy,x,y)

     绘制二次曲线到(x,y),以(cx,cy)作为控制点

  (7)rect(x,y,width,height)

     从(x,y)开始绘制一个矩形

4.绘制文本

  font: 文本样式,大小,字体

  textAlign:文本对齐方式(start,end,left,right,center)

  textBaseline :文本的基线

  ct.fillText("文本",100,20):

5.变换

  rotate(): 旋转

  scale():缩放

  translate(x,y) :移动到(x,y)

  transform():

  setTransform():

 1     ct.beginPath();
 2     //外圆
 3     ct.arc(100,100,99,0, 2*Math.PI ,false);
 4
 5     //内圆
 6     ct.moveTo(194,100);
 7     ct.arc(100,100,94,0, 2*Math.PI ,false);
 8
 9     ct.translate(100,100);
10     //旋转
11     ct.rotate(90*Math.PI/180);
12
13     ct.moveTo(0,0);
14     ct.lineTo(0,-85);
15
16     ct.moveTo(0,0);
17     ct.lineTo(-65,0);
18
19     ct.stroke();

这是旋转90度后

6.绘制图像

1 var img = new Image();
2     img.src = "share1.jpg";
3
4     ct.drawImage(img ,0,0,120,120);

7.阴影

  阴影共四个属性设置:

  shadowColor :阴影颜色

  shadowBlur :模糊像素数

  shadowOffsetX :阴影偏移量

  shadowOffsetY :阴影偏移量

 1     //设置阴影
 2     ct.shadowColor="rgba(0,0,0,0.5)";
 3     ct.shadowBlur = 4;
 4     ct.shadowOffsetX = 5;
 5     ct.shadowOffsetY = 5;
 6
 7     //红色矩形
 8     ct.fillStyle="#ff0000"
 9     ct.fillRect(10,10,50,50);
10
11     //蓝色矩形
12     ct.fillStyle="rgba(0,0,255,1)"
13     ct.fillRect(30,30,50,50);
14     ct.stroke();

8.渐变

渐变由CanvasGradient实例表示。

创建线性渐变:createLinearGradient(x,y,_x,_y)

创建线性渐变:createRadialGradient(x,y,radius,_x,_y,_radius)

(1)线性渐变:

 1     //红色矩形
 2     ct.fillStyle="#ff0000"
 3     ct.fillRect(10,10,50,50);
 4
 5     //渐变色矩形
 6     var gradient = ct.createLinearGradient(30,30,70,70);
 7     gradient.addColorStop(0,"white");
 8     gradient.addColorStop(1,"black")
 9
10     ct.fillStyle=gradient;
11     ct.fillRect(30,30,50,50);
12     ct.stroke();

 1     //用于更好定位的渐变函数
 2     function createRectLinearGradient(context,x,y,width,height){
 3         return context.createLinearGradient(x,y,x+width,y+height);
 4     }
 5
 6     //渐变色矩形
 7     var gradient = createRectLinearGradient(ct,30,30,50,50);
 8     gradient.addColorStop(0,"white");
 9     gradient.addColorStop(1,"black")
10
11     ct.fillStyle=gradient;
12     ct.fillRect(30,30,50,50);
13     ct.stroke();

(2)径向渐变:

前三个参数为起点圆的圆心和半径,后三个参数为终点圆的圆心和半径

 1     //红色矩形
 2     ct.fillStyle="#ff0000"
 3     ct.fillRect(10,10,50,50);
 4
 5
 6     //径向渐变
 7     var gt = ct.createRadialGradient(55,55,10,55,55,30);
 8     gt.addColorStop(0,"white");
 9     gt.addColorStop(1,"black");
10     ct.fillStyle = gt;
11     ct.fillRect(30,30,50,50);

9.渐变

渐变由CanvasGradient实例表示。

创建线性渐变:createLinearGradient(x,y,_x,_y)

创建线性渐变:createRadialGradient(x,y,radius,_x,_y,_radius)

(1)线性渐变:

时间: 2024-10-10 22:59:57

canvas之2D上下文的相关文章

《JAVASCRIPT高级程序设计》Canvas绘图-2D上下文

Canvas是HTML5添加的新元素,这个元素负责在页面中设定一个区域,然后通过JavaScript动态的在这个区域绘制图形.<canvas>由几组API组成,除了具备基本绘图能力的2D上下文,<canvas>还建议了一个名为WebGL的3D上下文,目前,支持该元素的浏览器都支持2D上下文,但对WebGL的支持还不够好.以下仅介绍2D上下文. 一.2D上下文 1.进行填充和描边 2D上下文的两种基本绘图操作是填充和描边:填充,是指的用指定的样式填充图形:描边,就是只在图像边缘划线.

HTML5 Canvas getcontext 2d

在使用 Canvas.getContext(contextID)时,取得2d上下文开始使用 Canvas.getContext("2D"),发现不能取到对象,改为 Canvas.getContext("2d")后,结果正常. getContext方法参数对大小写敏感.以后需注意. HTML5 Canvas getcontext 2d

javascript:使用canvas绘图2D图形

HTML5最少欢迎的一个新功能就是canvas元素,这个元素负责在页面中设定一个区域,然后就可以使用javascript进行动态的绘图. 基本用法 <canvas id="drawing" widht="200" height="300"> a drawing of somethind </canvas> 设定了画布后,要去的绘图上下文,通过get.Context("2d")方法 var drawing

css3 matrix 2D矩阵和canvas transform 2D矩阵

一看到“2D矩阵”这个高大上的名词,有的同学可能会有种畏惧感,“矩阵”,看起来好高深的样子,我还是看点简单的吧.其实本文就很简单,你只需要有一点点css3 transform的基础就好. 没有前戏,直奔主题 2D矩阵指的是元素在2D平面内发生诸如缩放.平移.旋转.拉伸四种变化,在css3中对应4个方法分别是scale().translate().rotate()和skew(),可以说这4个方法是css3矩阵matrix的快捷方式,因为这4个方法本质都是由matrix实现的.类似地,在canvas

2D上下文

js中说明的上下文表示的意思为C++中作用域(个人理解),因此2D上下文说明的是这个2D的作用域 像素:用来描述图片清晰度的小矩阵 填充和描边 填充:context.fillStyle = "yellow"; 描边:context.strokeStyle = "red"; 如果单纯的使用这两个属性,不会再网页上面显示的. var drawing = document.getElementById("drawing"); if(drawing.ge

html5中 canvas标签中 2d上下文 globalCompositeOperation属性

定义和用法 globalCompositeOperation 属性设置或返回如何将一个源(新的)图像绘制到目标(已有)的图像上. 例: 1 var c=document.getElementById("myCanvas"); 2 var ctx=c.getContext("2d"); 3 4 ctx.fillStyle="red"; 5 ctx.fillRect(20,20,75,50); 6 ctx.globalCompositeOperati

JavaScript入门之Canvas(一): 2D Context

概念 Canvas    是 HTML5 新增的元素,可用于通过使用JavaScript中的脚本来绘制图形.例如,它可以用于绘制图形,制作照片,创建动画,甚至可以进行实时视频处理或渲染.自HTML5添加Canvas这个库,很快便得到了普及和发展,各个主流浏览器也速速支持,可见其强大.目前为止,IE9+.Firefox.Safari.Opera.Chrome.iOS版Safari以及Android版WebKit都已经基本上支持canvas标签. 添加Canvas元素 首先,我们需要在html页面中

HTML5之Canvas时钟(网页效果--每日一更)

今天,带来的是使用HTML5中Canvas标签实现的动态时钟效果. 话不多说,先看效果:http://webfront.verynet.cc/pc/canvas-clock.html 众所周知,Canvas标签是HTML5中的灵魂,HTML5 Canvas是屏幕上的一个由JavaScript控制的即时模式位图区域.即时模式是指在画布上呈现像素的方式, HTML5 Canvas通过JavaScript调用CanvasAPI,在每一帧完全重绘屏幕上的位图.详细将在下面代码进行说明. HTML结构代码

canvas 基础

canvas是html5新设的元素对象,它的存在就相当于在浏览器窗口内给我们准备出canvas元素的区域的空白画布让我们随意填写,当然,画画的“笔”就是canvas给我们的接口啦.另外canvas是按照我们所设的代码规则按像素将图像画出的,相当于位图.<canvas>默认定义大小为300像素宽150像素高,一般会在canvas标签内设置canvas大小,例如,<canvas width="600" height="200"></canv