canvas画布01

一:canvas

1:概述:

  canvas是H5提供的新标签,其最强大的作用是进行2D图形的绘制,canvas标签仅仅作为绘制图形的载体,它本身并不具备绘制图形的能力,我们是通过canvas元素的自身的一个对象进行绘制图形的。目前提供的也有3D功能,但是只有极少数的浏览器支持,一般不用3D。canvas中的坐标系是平面的。

2:canvas绘制路径

 绘制的步骤:

 (1):获取canvas元素

    var canvas = document.getElementById("canvas");

 (2):获取2D渲染上下文对象(核心)

    var content=canvas.getContext("2d");

 (3):绘制路径

    content.beginPath();//开始路径

              content.moveTo(0,0);//设置起点

             content.lineTo(300,400);//设置下一个点

             content.closePath();//结束路径

             content.stroke();//绘制路径

3:设置canvas宽高的方式:

 (1):直接在标签内设置宽高属性

    <body>

                    <canvas id="canvas" width="500" height="500">

                           您的浏览器不支持Canvas,请升级浏览器

                   </canvas>

           </body>

 (2):通过js修改宽高

    canvas.width=500;

            canvas.height=500;

注意:不要用css设置宽高,容易导致图形变形

4:moveTo:创建一条新的子路径

  lineTo:沿着已有的子路径继续划线,会记录下添加的最后一个点的坐标信息,不断更新子路径的新坐标

   closePath:闭合路径,链接最后一个点的位置与起点的位置

   lineWidth:线宽,单位是数字,表示像素,位置在描边之前都可以,默认值是1

5:canvas绘制图形有两种:

 (1):绘制路径

 (2):绘制图形

   a:描边图形,带有stroke单词的属性或者方法

   b:填充图形,带有fill单词的属性或者方法

6:(1)描边样式:strokeStyle

 可以接受三种类型的值:

       a:颜色值:十六进制的颜色、rgb、rgba、 颜色单词;

      b:用于填充图形的渐变对象

      c:用于填充图形的pattern对象

  (2)填充样式:fillStyle

    可接受的参数与描边一样


  content.strokeStyle = "blue"; //画笔的颜色

     content.fillStyle=“aqua";//填充的颜色

注意:所有有关的样式一旦设置会影响其他所有的绘制图形,描边和填充的样式如果不设置颜色默认都是黑色。

7:绘制矩形的方法:

   (1):strokeRect(x,y,w,h);绘制的矩形不填充颜色

  (2):fillRect(x,y,w,h);绘制已经填充颜色的矩形,默认颜色是黑色

  四个参数:

    x,y:要绘制的矩形的左上的点相对于canvas元素的位置;

    w,h:矩形的宽高;

8:绘制文字

 (1):font属性:倾斜,文字大小,字体类型(宋体,黑体,stkaiti,)

 (2):textAlign:设置文本在水平当向上的距离起点的位置

    start:(默认值),文本的左下角距离起点的位置

           center:文本的下边缘的中心位置距离起点的位置

             end:文本的右下角距离起点的位置

  (3):fillText(txt,x,y,maxWidth)

    四个参数:txt:绘制的文本

         x,y:绘制的位置

         maxWidth:允许文本的最大宽度(一般不设置)

   注意:默认情况下,文字大小10px,默认字体类型:sans-serif,不倾斜

9:绘制圆

  绘制圆的方法:       arc(x,y,radius,startAngle,endAngle,counterclockwise)

         参数: x,y:圆心位置

                    radius:半径

                    startAngle:开始位置

                    endAngle:结束位置

                    counterclockwise:是否逆时针绘制(true:逆时针绘制;false:顺时针绘制)

        

注意:开始位置和结束位置上的值是弧度

           π=180度

          Math.PI 是JS提供的弧度值,等于π

ps:最后一个参数可以省略,默认为顺时针,但是建议不要省略,如果没有最后一个参数,在火狐的低版本浏览器下会报错

10:设置阴影

 (1):shadowBlur  数值,也代表阴影的大小,值越大,越模糊,默认值为0模糊程度

    content.shadowBlur = 10;

 (2):设置阴影X轴偏移量  数值,(正:向左,负:向右)

    content.shadowOffsetX = 5;

 (3):设置阴影Y轴偏移量  数值,(正:向下,负:向上)

    content.shadowOffsetY = 5;

 (4):设置阴影的颜色 默认是透明

    content.shadowColor = “black";

11:擦除

(1):方式一:content.clearRect(x,y,width,height)

  参数:x,y:擦书的位置

                 width,height:擦除的区域大小

  可以灵活控制擦除区域的大小

(2):方式二:直接重置canvas元素的宽和高

两种方式的区别:clear方法清除指定区域的内容会保留样式,但重置宽高会清除canvas上所有的内容,不会保留之前设置的样式

12:保存与恢复:

  canvas中保存与恢复的行为类似于数据入栈出栈的过程

 (1):保存的方法:save()

    保存绘图状态,将图形保存到绘图状态栈里(先进后出),每调用一次save,就会向栈中添加新的状态

 (2):恢复的方法:restore()

    恢复绘图的状态,图形一旦出栈,栈中就不在保存该状态

注意:一般情况下save次数 >= restore次数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值