微信小程序-Canvas

微信小程序的canvas单独整理一篇

创建Canvas

支持绑定事件,点击触发事件。

<canvas style='height:{{height}}px;width:{{height}}px' canvas-id="myCanvas" 
	bindtouchstart="start" bindtouchmove='move' bindtouchend='end'>
</canvas>

js里要使用下面的句子获取canvas对象

const ctx = wx.createCanvasContext('myCanvas')

Canvas绘图

canvas是个画板供我们在给定区域draw图片或执行操作。
我用到了绘图和连线这两部分,绘图方法如下

	//drawImage(imageResource, dx, dy)
	//drawImage(imageResource, dx, dy, dWidth, dHeight)
	//drawImage(imageResource, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight) 
    /*参数
    string imageResource
    所要绘制的图片资源
    number sx
    源图像的矩形选择框的左上角 x 坐标
    number sy
    源图像的矩形选择框的左上角 y 坐标
    number sWidth
    源图像的矩形选择框的宽度
    number sHeight
    源图像的矩形选择框的高度
    number dx
    图像的左上角在目标 canvas 上 x 轴的位置
    number dy
    图像的左上角在目标 canvas 上 y 轴的位置
    number dWidth
    在目标画布上绘制图像的宽度,允许对绘制的图像进行缩放
    number dHeight
    在目标画布上绘制图像的高度,允许对绘制的图像进行缩放*/
    ctx.drawImage("/floor1.png",1000,220,600,600,0,0,350,400)

画个图就很好理解了
在这里插入图片描述
连线的方法在文档里非常详细了,也非常简单,我用到的也不多。

	ctx.drawImage(posurl, this.data.posx+nx-25, this.data.posy+ny-25, 50, 50)
    var that = this
    ctx.moveTo(aa+nx, bb+nx)
    ctx.lineTo(app.endVertexx+nx, app.endVertexy+nx)
    ctx.stroke()
    ctx.draw()

结合其他组件

可以在canvas上面放带cover的组件,比如实现一个三层商场地图切换,全屏显示地图,按地图上的按钮进行切换楼层地图。

<view class="mapPart">
    <canvas  canvas-id="myCanvas"></canvas>
    <cover-view class="chooseFloor">
      <button class="chooseBtn" bindtap="changeFloor1">F1</button>
      <button class="chooseBtn" bindtap="changeFloor2">F2</button>
      <button class="chooseBtn" bindtap="changeFloor3">F3</button>
    </cover-view>
  </view>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值