zoukankan      html  css  js  c++  java
  • canvas技术整理

    canvas技术整理

      1 html
      2 <canvas id= "canvas"></canvas>
      3 
      4 javascript
      5 var canvas = document.getElementById('canvas')
      6 var context =canvas.getContext('2d')
      7 //使用context进行绘制
      8 
      9 canvas.width
     10 canvas.height
     11 canvas.getContext('2d')
     12 
     13 moveTo(x,y)
     14 lineTo(x,y)
     15 beginPath()
     16 closePath()
     17 
     18 lineWith                     //线条宽度
     19 strokeStyle                  //线条样式
     20 fillStyle                    //填充颜色
     21 stroke()                     //绘制
     22 fill()                       //填充
     23 
     24 rect(x,y,width,height)       //勾勒矩形边框路径
     25 fillRect(x,y,width,height)   //填充矩形
     26 strokeRect(x,y,width,height) //绘制带边框的路径
     27 
     28 //线条属性
     29 lineWith                     //线条宽度
     30 lineCap="butt"(default)      //线条帽子的形状
     31         "round"                圆形
     32         "square"               方形
     33 lineJion="miter"(default)      尖角
     34          "bevel"               斜切
     35          "round"               圆角
     36     miterLimit
     37 
     38 //图形变换
     39 save()
     40 restore()
     41 
     42 translate(x,y)
     43 rotate(deg)
     44 scale(sx,sy)
     45 
     46 //变换矩阵
     47 [a c e]    [水平缩放(1)   垂直倾斜(0)   水平位移(0)]
     48 [b d f]    [水平倾斜(0)   垂直缩放(1)   垂直位移(0)]
     49 [0 0 1]
     50 transfrom(a,b,c,d,e,f)      //效果会累加
     51 setTransform(a,b,c,d,e,f)   //仅使用该效果
     52 
     53 //渐变色和纹理
     54 fillStyle = color / gradient / image / canvas / video
     55             color格式:#ffffff / #642 / rgb / rgba / hsl / hsla / red
     56             gradient格式:Linear Gradient(线性渐变)
     57                           var grd = context.createLinearGradient(xstart,ystart,xend,yend);
     58                           Radial Gradient(径向渐变)
     59                           var grd = context.createRadialGradient(xstart,ystart,xend,yend);
     60                         grd.addColorStop(stop,color);
     61             image||canvas||video格式:
     62                           createPattern(img / canvas / video , repeat-style)
     63                           repeat-style:no-repeat / repeat-x / repeat-y / repeat
     64 
     65 //曲线的绘制
     66 context.arc(centerx,centery,radius,startingAngle,endingAngle,anticlockwise=false)
     67 context.crcTo(x1,y1,x2,y2,radius)
     68 
     69 context.quadraticCurveTo(x1,y1,        //控制点
     70                          x2,y2)        //结束点
     71 context.bezeirCurveTo(x1,y1,x2,y2,     //控制点
     72                       x3,y3)           //结束点
     73 
     74 //文字渲染
     75 context.font="bold 40px Arial"
     76 context.fillText(string,x,y,[maxlen]);
     77 context.strokeText(string,x,y,[maxlen]);
     78 
     79 font
     80 默认值:"20px sans-serif"
     81 context.font = font-style  font-variant  font-weight  font-size  font-family
     82                font-style:  normal       (Default)
     83                             italic       (斜体字)
     84                             oblique      (倾斜字体)
     85                font-variant:normal       (Default)
     86                             small-caps   (以英文小写显示大写字母)
     87                font-weight: lighter
     88                             normal       (Deafult)
     89                             bold
     90                             bolder
     91                             100,200,300,400(normal),500,600,700(bold),800,900
     92                font-size:   20px         (Deafult)
     93                             2em
     94                             150%
     95                             xx-small  x-small  medium  large  x-large  xx-large
     96                font-famly:  设置多种字体备选 / 支持@font-face / web安全字体
     97 context.textAlign = left / center / right
     98 context.textBaseline = top / middle / bottom   (垂直对齐)
     99                        alphabetic(Deafult)     (基于拉丁字母设计的垂直对齐)
    100                        ideographic             (基于方块字体设计的垂直对齐)
    101                        hanging                 (基于印度语设计的垂直对齐)
    102 
    103 //图片
    104 drawImage(image,dx,dy)
    105 drawImage(image,dx,dy,dw,dh)
    106 drawImage(image,sx,sy,sw,sh,dx,dy,dw,dh)
    107         dx,dy:image在canvas中定位的坐标值;
    108         dw,dh:image在canvas中即将绘制区域的宽高;(相对于dx,dy坐标的偏移量)
    109         sx,sy:image在canvas中所要绘制的起始位置;
    110         sw,sh:image在canvas中所要绘制区域的宽高;(相对于sx,sy坐标的偏移量)
    111 getImageData(x,y,w,h)
    112 putImageData(imgdata,dx,dy,sx,sy,sw,sh)
    113 createImageData(sw,sh)
    114 createImageData(imagedata)
    115 
    116 //阴影
    117 context.shadowColor
    118 context.shadowOffsetX        //X偏移
    119 context.shadowOffsetY        //Y偏移
    120 context.shadowBlur           //模糊
    121 
    122 //高级
    123 globalAlpha = 1              (默认值)
    124 globalCompositeOperation = "source-over"        (默认值)
    125           参数:source-over         destination-over              lighter
    126                 source-atop         destination-atop              copy
    127                 source-in           destination-in                xor
    128                 source-out          destination-out
    129 
    130 //路径方向和剪纸效果
    131      非零环绕原则
    132 
    133 //剪辑区域
    134 context.clip();              =>探照灯
    135 
    136 //交互
    137 context.clearRect(x,y,width,height)
    138 context.isPointInPath(x,y)
  • 相关阅读:
    ajax 发送请求无法重定向问题
    网页中转跳转的几种方式
    后台返回的HTML整个页面代码打开方法
    Json对象与Json字符串的转化、JSON字符串与Java对象的转换
    SpringMVC ModelAndView跳转失效
    springMVC中前台ajax传json数据后台controller接受对象为null
    $.ajax 中的contentType
    springMVC--请求的跳转和传值
    Windows NT WinLogon Notify
    虚拟机检测技术剖析
  • 原文地址:https://www.cnblogs.com/huliang56/p/6376643.html
Copyright © 2011-2022 走看看