zoukankan      html  css  js  c++  java
  • canvas属性 详细随笔

    1. getContext('2d')
      • 获得当前画布的绘制环境,目前唯一合法值“2d”,它返回一个对象,携带所有绘图API;rect(x, y, width, height):绘制矩形
    2. ctx.rect(20,20,150,100)
           x:矩形左上角的x坐标
           y:矩形左上角的Y坐标
           width:矩形的宽度,以px计
           height:矩形的高度,以px计
    3. arc(x, y, r, s, e, counterclockwise):绘制圆
      •   ctx.arc(100,75,50,0,2*Math.PI)
             x:圆的中心的x坐标
             y:圆的中心的y的坐标
             r:圆的半径
             sAngle:起始角,以弧度计(弧的圆形的三点钟位置是0度)
             eAngle:结束角,以弧度计
             counterclockwise:可选,规定应该逆时针还是顺时针绘图,false=顺时针,true=逆时针
    4. strokeStyle属性设置或返回用于笔触的颜色、渐变或模式
        context.strokeStyle=color|gradient|pattern
             ctx.strokeStyle = 'blue'
    5. stroke():实际地绘制出通过moveTo()和lineTo()方法定义的路径,默认颜色是黑色
      ctx.stroke()
           提示:请使用strokeStyle属性来绘制另一种颜色/渐变
    6. lineWidth:属性设置或返回当前线条的宽度,以像素计
           ctx.lineWidth = 10
           ctx.lineWidth = number
    7. fill():方法填充当前的图像(路径),默认颜色是黑色
      ctx.fill()
           提示:请使用fillStyle属性来填充另一种颜色/渐变
    8. fillStyle:设置填充绘图的颜色、渐变或模式(类似于strokeStyle)
           context.fillStyle=color|gradient|pattern
           ctx.fillStyle = '#00f'
    9. fillRect(x, y, width, height):绘制‘已填色’的矩形,默认的填充颜色是黑色
      ctx.fillRect(20,20,150,100)
           x:矩形左上角的x坐标
           y:矩形左上角的Y坐标
           width:矩形的宽度,以px计
           height:矩形的高度,以px计
           提示:请使用fillStyle属性来设置用于填充绘图的颜色、渐变或模式
    10. beginPath():开始一条路径,或重置当前的路径
      ctx.beginPath()
           提示:请使用这些方法来创建路径moveTo()、lineTo()、quadricCurveTo()/bezierCurveTo()、arcTo()、arc()
           请使用stroke()方法在画布上绘制确切的路径
    11. moveTo(x, y):将起始点移到某位置开始画图
      moveTo(0, 0)
           x:路径的起始位置的x坐标
           y:路径的起始位置的y坐标
    12. lineTo(x, y)方法添加一个新点,然后创建从该点到画布中最后指定点的线条(该方法并不会创建线条)
      lineTo(300, 300)
           x:路径的目标(结束)位置的x坐标
           y:路径的目标(结束)位置的y坐标
           提示:请使用stroke()方法在画布上绘制确切的路径
           常和moveTo配合使用,一个为起始点,一个为结束点,且lineTo可以有多个
    13. font:属性设置或返回画布上文本内容的当前字体属性
      ctx.font = 'italic small-caps bold 12px arial'
           提示:同css的font属性相同,都有font-style、font-family等
    14. fillText(text, x, y, maxWidth):方法在画布上绘制填色的文本,文本的默认颜色是黑色
      ctx.fillText('w3school.com.cn', 10, 90)
           text:规定在画布上输出的文本
           x:开始绘制文本的x坐标位置(相对于画布)
           Y:开始绘制文本的y坐标位置(相对于画布)
           maxWidth:可选,允许的最大文本宽度,以像素计
           提示:请使用font属性来定义字体和字号,并使用fillStyle属性以另一种颜色/渐变来渲染文本
    15. strokeText(text, x, y, maxWidth)在画布上绘制文本(没有填色),文本默认颜色是黑色
      ctx.strokeText('w3school.com.cn', 10, 90)
           text:规定在画布上输出的文本
           x:开始绘制文本的x坐标位置(相对于画布)
           Y:开始绘制文本的y坐标位置(相对于画布)
           maxWidth:可选,允许的最大文本宽度,以像素计
           提示:请使用font属性来定义字体和字号,并使用strokeText属性以另一种颜色/渐变来渲染文本
    16. createLinearGradient(x, y, x1, y1)创建线性渐变,渐变可用于填充矩形、圆形、线条、文本等
      var grd = ctx.createLinearGradient(0, 0, 170, 0)
           x:渐变开始点的x坐标
           y:渐变开始点的Y坐标
           x1:渐变结束点的x坐标
           y1:渐变结束点的Y坐标
           提示: 1、必须使用至少两种停止颜色
                  2、请使用该对象作为strokeStyle或fillStyle属性的值
                  3、请使用addColorStop()方法规定不同颜色、以及在gradient对象中的何处定位颜色
    17. createRadialGradient(x, y, r, x1, y1, r1)创建径向渐变,渐变可用于填充矩形、圆形、线条、文本等
      var grd = ctx.createRadialGradient(0, 0, 170, 0)
           x:渐变开始圆的x坐标
           y:渐变开始圆的Y坐标
           r:开始圆的半径
           x1:渐变结束圆的x坐标
           y1:渐变结束圆的Y坐标
           r1:结束圆的半径
           提示: 1、必须使用至少两种停止颜色
                  2、请使用该对象作为strokeStyle或fillStyle属性的值
                  3、请使用addColorStop()方法规定不同颜色、以及在gradient对象中的何处定位颜色
    18. addColorStop(stop, color)规定gradient对象中的颜色和位置,此方法与createLinearGradient()或createRadialGradient()一起使用
      grd.addColorStop(0, 'black'); grd.addColorStop(1, 'white');
           stop:介于0.0与1.0之间的值,表示渐变中开始与结束之间的位置
           color:在结束位置显示的css颜色
           提示:可以多次调用addColorStop()方法来改变渐变,如果不对gradient对象使用该方法,那么渐变将不可见,为了获得可见的渐变,需要创建至少一个色标
    19. drawImage(img, sx, sy, swidth, sheight, x, y, width, height)在画布上绘制图像、画布或视频,也可以绘制某些部分,以及增加或减少图像的尺寸
         img:规定要使用的图像、画布或视频
           sx:可选,开始剪切的x坐标位置
           sy:可选,开始剪切的y坐标位置
           swidth:可选,被剪切图像的width
           sheight:可选,被剪切图像的高度
           x:在画布上放置图像的x坐标位置
           y:在画布上放置图像的y坐标位置
           width:可选,要使用的图像的宽度(伸展或缩小图像)
           height:可选,要使用的图像的高度(伸展或缩小图像)
    20. rect(), strokeRect() 和 fillRect() 的区别
           fillRect()与strokeRect()在调用后会立即在画布上画出效果,而rect()不会立即将图形画出,只有在调用了stroke()方法之后,才会实际作用于画布。
    21. measureText()方法
      • 在画布上输出文本之前,检查字体的宽度;
      • 定义和用法:
        • measureText()方法返回包含一个对象,该对象包含以像素计的制定字体宽度;如果需要在文本向画布输出之前,就了解文本的宽度,就可以使用此方法;
        • context.measureText(text).width:text是要测量的文本;
      • eg:
        • var c = document.getElementById('myCanvas')
        • var ctx = c.getContext('2d')
        • ctx.font = '30px Arial'
        • var txt = 'Hello World'
        • ctx.fillText('' + ctx.measureText(txt).width, 10, 50)
        • ctx.fillText(txt, 10, 100)

    注意:如果要使用jQuery去写canvas:jQuery返回的是jQuery对象,而jQuery对象是没有getContext方法的,需要把jQuery对象那个转换成DOM对象。其实jQuery对象就是类数组,用数组下标可以取得DOM对象(方法:$('#myCanvas')[0]

  • 相关阅读:
    log4net 发布到生产环境不写日志的解决方法--使用 NLog日志
    centos 下Supervisor 守护进程基本配置
    centos 7 下安装Nginx
    Haproxy+asp.net +RedisSessionStateProvider 完美实现负载均衡,并且session保持
    centos之Haproxy 负载均衡学习笔记
    改进初学者的PID-介绍
    实现Modbus TCP多网段客户端应用
    有一种亲切是手机
    实现Modbus ASCII多主站应用
    爱好
  • 原文地址:https://www.cnblogs.com/cq-0715/p/9541054.html
Copyright © 2011-2022 走看看