微信小程序如何获取画布触碰点的坐标

当我们开发一些类似于画图应用的微信小程序时,开始肯定要获取手指触碰画布时的坐标,然后才能进行绘制的事件。

首先给canvas组件绑定一个函数,当触碰的时候就会执行这个函数,wxml代码如下:

<view>
  <canvas bindtap="GetPoint" canvas-id="mycanvas"></canvas>
</view>

js文件的代码:

Page({
    data: {
        x1:0,
        y1:0
    },
    GetPoint:function(e){
        this.setData({
            x1:e.touches[0].pageX,
            y1:e.touches[0].pageY
        })
    }
})

其中x1,y1就是我们需要的手指触碰处的横纵坐标值了。注意这个横纵坐标值是以整个屏幕的左上角为原点计算的,而不是相对于你的canvas组件左上角计算的。

如有错误欢迎评论指出。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
微信小程序的Canvas API提供了一个`rotate()`方法,用于在画布上进行图形的旋转。如果你想旋转画布中心点,实际上Canvas是围绕其左上角进行旋转的。但在实际应用中,我们可以先确定需要旋转的图形的位置,然后相对于这个位置进行旋转。 例如,如果你有一个特定的圆形,你想让它绕着画布中心旋转,你需要做的是: 1. 首先获取圆形相对于画布中心的偏移量(x、y坐标)。 2. 使用`save()`保存当前状态,包括变换矩阵。 3. 设置新的旋转中心(通常设置为画布宽度和高度的一半,即画布的中心点)。 4. 调用`translate(x, y)`将坐标系移动到旋转中心。 5. 调用`rotate(angle)`进行旋转,其中angle是旋转的角度(单位通常是弧度)。 6. 绘制你的圆形。 7. 使用`restore()`恢复之前的状态。 下面是一个简化的伪代码示例: ```javascript let centerX = wx.canvas.currentContext.width / 2; let centerY = wx.canvas.currentContext.height / 2; // 获取圆心偏移 let circleOffsetX = ...; let circleOffsetY = ...; // 保存原始状态 wx.canvas.currentContext.save(); // 移动到旋转中心 wx.canvas.currentContext.translate(centerX, centerY); // 旋转 wx.canvas.currentContext.rotate(angle); // 绘制圆形 wx.canvas.currentContext.beginPath(); wx.canvas.currentContext.arc(circleOffsetX + centerX, circleOffsetY + centerY, radius, 0, Math.PI * 2); wx.canvas.currentContext.fill(); // 恢复原状态 wx.canvas.currentContext.restore(); ``` 记得替换`...`处的实际值,并根据需求调整旋转角度。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值