zoukankan      html  css  js  c++  java
  • 小程序绘图

    小程序绘图组件

      属性canvas-id canvas组件的唯一标示码,disable-scroll在canvas中移动时绑定手势事件禁止屏幕滚动以及下拉刷新,bindtouchstart手指触摸开始,bindtouchmove手指触摸后移动,bindtouchend手指触摸结束,bindtouchcancel手指触摸被打断如电话弹窗,bindlongtap手指触摸被打断,binderror发生错误时触发的事件

    <canvas canvas-id="myCanvas" style="border: 1px solid;100vw;height:50vh;box-sizing:border-box;"/>
    

    小程序绘图API

      介绍  

        //创建canvas的上下文对象
        const ctx = wx.createCanvasContext('myCanvas')
        //绘图上下文进行绘图描绘
        ctx.setFillStyle('red')
        ctx.fillRect(10, 10, 150, 75)
        //画图
        ctx.draw()
    

      canvas坐标系

        左上角的坐标为(0,0)点

    <canvas canvas-id="myCanvas" style="margin: 5px; border:1px solid #d3d3d3;"
      bindtouchmove="move"/>
    <view>
      Coordinates: ({{x}}, {{y}})
    </view>
    
      data: {
        x: 0,
        y: 0
      },
      move: function (e) {
        this.setData({
          x: e.touches[0].x,
          y: e.touches[0].y
        })
      },   

     

      渐变

        渐变能用于填充一个矩形,圆,线,文字等,填充色可以不固定位固定一种颜色

        绘制线性渐变

        //创建线性渐变对象
        const grd = ctx.createLinearGradient(0, 0, 200, 0)
        //设置开始到结束的渐变颜色
        grd.addColorStop(0, 'red')
        grd.addColorStop(1, 'white')
    
        // 设置渐变颜色
        ctx.setFillStyle(grd)
        //绘制一个长方形
        ctx.fillRect(10, 10, 150, 80)
        //画图
        ctx.draw()
    

        绘制圆形渐变

        //创建圆形渐变对象
        const grd = ctx.createCircularGradient(75, 50, 30)
        //设置渐变的起始颜色
        grd.addColorStop(0, 'red')
        grd.addColorStop(1, 'white')
    
        // 设置渐变颜色
        ctx.setFillStyle(grd)
        // 绘制一个长方形
        ctx.fillRect(10, 10, 150, 80)
        //画图
        ctx.draw()
    

      绘图颜色

        在canvas中可以使用下面几种方式的颜色。rgb如rgb(0,0,0),rgba如rgba(0,0,0,0.2),16进制颜色如#666666,预定义颜色如red

      绘图上下文

        wx.createCanvasContext(canvasId)创建绘图的canvas上下文。

      导出图片

        wx.canvasToTempFilePath()把当前画布指定区域的内容导出生成指定大小的图片,并返回文件路径。参数x画布x轴的起点,y画布y轴的起点,width画布的宽度,height画布的高度,destWidth输出图片的宽度,destHeight输出图片的高度,canvasId画布标识,fileType目标文件类型,quality图片质量,succ...

      设置填充样式

        ctx.setFillStyle()。默认为block

      线条样式

        ctx.setStrokeStyle()。默认为block

      设置阴影样式

        ctx.setShadow()。参数offsetX水平方向的偏移距离,offsetY竖直方向的偏移距离,blur阴影模糊级别0~100,color阴影颜色

      创建线性渐变

        ctx.createLinearGradient()。需要使用addColorStop()来指定渐变点至少两个。参数x0起点x轴左边,y0起点y轴坐标,x1终点x轴坐标,y1终点y轴坐标。

      创建圆形渐变

        ctx.createCircularGradient()。需要使用addColorStop()来指定渐变点至少两个。参数x圆心点x轴的坐标,y圆心点y轴的坐标,r圆的半径

      创建颜色渐变点

        渐变对象.addColorStop()。参数stop0~1表示渐变的起点或者终点位置,color渐变的颜色

      设置线条宽度

        ctx.setlineWidth()。参数lineWidth线条的宽度

      设置线条端点样式

        ctx.setLineGap()。参数lineGap结束端点样式值范围‘butt’,‘round’,‘square’

      设置交点样式

        ctx.setLineJoin()。参数lineJoin线条交点的样式范围‘bevel’,‘round’,‘miter’

      设置最大倾斜

        ctx.setMiterLimit()。参数miterLimit最大倾斜的长度

      创建矩形

        ctx.rect()。参数x矩形的左上角的x轴坐标,y矩形的左上角y轴坐标,width矩形的宽,height矩形的高

      填充矩形

        ctx.fillRect()。参数x矩形的左上角的x轴的坐标,y矩形的左上角y轴的坐标,width矩形的宽,height矩形的高

      画一个矩形

        ctx.strokeRect()。参数x矩形的左上角的x轴的坐标,y矩形的左上角y轴的坐标,width矩形的宽,height矩形的高

      清除画布上的内容

        ctx.clearRect()。参数x矩形左上角的坐标,y矩形左上角的y轴的坐标,width矩形的宽,height矩形的高

      绘图路径

        ctx.fill()。颜色默认为黑色

      描边路径

        ctx.strok().颜色默认为黑色

      开始路径

        ctx.beginPath()

      结束路径

        ctx.closePath()

      移动画笔点

        ctx,moveTo()。参数x目标位置x坐标,y目标位置y坐标

      增加一个新点

        ctx.lineTo()。参数x目标位置的x坐标,y目标位置的y坐标

      画圆弧

        ctx,arc()。参数x圆的x坐标,y圆的y坐标,r圆的半径,sAngle其实弧度,eAngle终止弧度,counterclockwise顺时针还是逆时针

      二次方贝塞尔曲线

        ctx.quadraticCurveTo()。参数cpx贝塞尔控制点的x轴坐标,cpy贝塞尔控制点的y坐标,x结束点的坐标x,y结束点的坐标y

      三次方贝赛尔曲线

        ctx.bezierCurveTo()。参数cp1x第一个贝塞尔控制点的x坐标,cp1y第一个贝塞尔控制点的y坐标,cp2x第二个贝塞尔控制点的x坐标,cp2y第二个贝塞尔控制点的y坐标,x结束点x坐标,y结束点y坐标

      缩放

        ctx.scale()。参数scaleWidth横轴坐标缩放倍数,scaleHeight纵轴坐标缩放倍数

      旋转

        ctx.rotate()。参数rotate旋转的角度

      平移

        ctx.translate()。参数x水平偏移量,y竖直偏移量

      设置字号

        ctx.setFontSize()。参数fontSize设置字号的大小

      绘制文本

        ctx.fillText()。参数text输出文本,x绘制文本的左上角x轴位置,y绘制文本的左上角y轴的位置

      文字对齐

        ctx.setTextAlifn()。参数align对齐方式

      文字水平对齐

        ctx.setTextBaseLine()。参数string水平对齐方式

      绘制图像

        ctx.drawImage()。参数imageResouce图片资源地址,x图像左上角的x坐标,y图像左上角y坐标,width图片宽度,height图片高度

      设置画笔透明度

        ctx.setGlobalAlpha()。参数alpha透明度0~1之间

      保存/恢复

        ctx.save()保存当前绘图上下文。

        ctx.restore()恢复之前的绘图上下文。

      绘图

        ctx.draw()。参数reserve是否接着上一次继续绘制,callback绘制完成的回调

      合成操作

        ctx.globalConpositeOperation()。参数type使用哪种混合模式操作

      绘制圆弧

        ctx.arcTo()。参数x1第一个控制点的x轴坐标,y1第一个控制点的y轴坐标,x2,第二个控制点的x轴坐标,y2第二个控制点的y轴坐标,radius圆弧的半径

      文本描边

        ctx.strokeText()。参数text要绘制的文本,x文本的起始点x轴坐标,y文本起始点y轴坐标,maxWidth绘制的最大宽度

      设置虚线偏移量

        ctx.lineDashOffset()。参数value偏移量

      图像重复

        ctx.createPattern()。参数image重复图像源,repetition如何重复图像

  • 相关阅读:
    生活记录-- 林微因《分手信》
    生活记录--林觉民《与妻书》
    生活记录--考研日记(1)
    SSO-单点登录(1)
    spring-注解----ext
    spring-注解----transaction
    spring-注解---aop
    spring-注解---autowired
    spring- 注解---values
    一样的Android,不一样的学习
  • 原文地址:https://www.cnblogs.com/lichunjing/p/8651200.html
Copyright © 2011-2022 走看看