华军软件园:为用户提供海量热门软件、游戏等手机资源下载服务!

装机必备热门标签玩游戏装软件BT游戏H5游戏看教程专题游戏盒子手机版

华军软件园

所在位置:首页 > 资讯教程 > 软件教程 >  > 详情

如何使用微信小程序的canvas组进行涂鸦?

文章来源:网络作者:瞳荧发布时间:2026-05-30 12:55:42

GM盒子
GM盒子(高返利版)
GM手游福利平台,免费送首充,上线送VIP,免费领元宝和代金券。
Ready

  本教程主要讲解了如何使用微信小程序的canvas组进行涂鸦?操作起来是很简单的,想要学习的朋友们可以跟着小编一起去看一看下文,希望能够帮助到大家。

  index.html

  

  

  

  

  

  disable-scroll="false"

  bindtouchstart="touchStart"

  bindtouchmove="touchMove"

  bindtouchend="touchEnd">

  

  

  

  

  

  

  

  

  

  

  

  复制代码

  手指滑动代码

  //手指触摸动作开始

  touchStart: function (e) {

  //得到触摸点的坐标

  this.startX = e.changedTouches[0].x

  this.startY = e.changedTouches[0].y

  this.context = wx.createContext()

  if(this.isClear){ //判断是否启用的橡皮擦功能 ture表示清除 false表示画画

  this.context.setStrokeStyle(\'#F8F8F8\') //设置线条样式 此处设置为画布的背景颜色 橡皮擦原理就是:利用擦过的地方被填充为画布的背景颜色一致 从而达到橡皮擦的效果

  this.context.setLineCap(\'round\') //设置线条端点的样式

  this.context.setLineJoin(\'round\') //设置两线相交处的样式

  this.context.setLineWidth(20) //设置线条宽度

  this.context.save(); //保存当前坐标轴的缩放、旋转、平移信息

  this.context.beginPath() //开始一个路径

  this.context.arc(this.startX,this.startY,5,0,2*Math.PI,true); //添加一个弧形路径到当前路径,顺时针绘制 这里总共画了360度 也就是一个圆形

  this.context.fill(); //对当前路径进行填充

  this.context.restore(); //恢复之前保存过的坐标轴的缩放、旋转、平移信息

  }else{

  this.context.setStrokeStyle(this.data.color)

  this.context.setLineWidth(this.data.pen)

  this.context.setLineCap(\'round\') // 让线条圆润

  this.context.beginPath()

  }

  },

  //手指触摸后移动

  touchMove: function (e) {

  var startX1 = e.changedTouches[0].x

  var startY1 = e.changedTouches[0].y

  if(this.isClear){ //判断是否启用的橡皮擦功能 ture表示清除 false表示画画

  this.context.save(); //保存当前坐标轴的缩放、旋转、平移信息

  this.context.moveTo(this.startX,this.startY); //把路径移动到画布中的指定点,但不创建线条

  this.context.lineTo(startX1,startY1); //添加一个新点,然后在画布中创建从该点到最后指定点的线条

  this.context.stroke(); //对当前路径进行描边

  this.context.restore() //恢复之前保存过的坐标轴的缩放、旋转、平移信息

  this.startX = startX1;

  this.startY = startY1;

  }else{

  this.context.moveTo(this.startX, this.startY)

  this.context.lineTo(startX1, startY1)

  this.context.stroke()

  this.startX = startX1;

  this.startY = startY1;

  }

  //只是一个记录方法调用的容器,用于生成记录绘制行为的actions数组。context跟不存在对应关系,一个context生成画布的绘制动作数组可以应用于多个

  wx.drawCanvas({

  canvasId: \'myCanvas\',

  reserve: true,

  actions: this.context.getActions() // 获取绘图动作数组

  })

  }

  复制代码

  以上是一部分代码展示,下面做核心原理说明:

  1、能画出不同颜色的线条 主要是以下三个方法 setStrokeStyle(画笔的颜色) moveTo(把路径移动到画布中的指定点,但不创建线条) lineTo(添加一个新点,然后在画布中创建从该点到最后指定点的线条) 这样就可以从A点坐标到B点坐标 画出不同颜色的线条啦!!!

  2、橡皮擦的原理:之所以能擦掉画布上的图像就是通过把要擦掉的区域绘制成与画布一样的颜色 这样就可以”欺骗”自己的眼睛 达到橡皮擦的效果啦!!!

  以上就是如何使用微信小程序的canvas组进行涂鸦的全部内容了,大家都学会了吗?

End
复制本文链接资讯文章为华军软件园所有,未经允许不得转载。
热门游戏MORE+
相关资讯MORE+
最新录入
热门资讯
新游新品榜
手机游戏
休闲益智
赛车竞速
棋牌桌游
角色扮演
动作射击
体育竞技
经营养成
策略塔防
冒险解谜
音乐游戏
手游辅助
H5游戏
BT游戏
手机软件
社交聊天
系统工具
时尚购物
旅游出行
影音播放
生活实用
办公学习
资讯阅读
拍摄美化
游戏辅助
健康医疗
地图导航
小说漫画
安全防护
育儿亲子
手游下载
梦想三国之勇往直前0....
炼仙传说0.1折
不可思议的刀剑与魔法...
逍遥浪人
奇幻梦旅人
玄影0.1折
点击冒险之旅(0.1折特...
天神赵子龙0.1折
九州异兽记0.1折
龙魂魔法0.1折
装机软件
爱奇艺电脑版
Steam下载管家 2026最...
360游戏大厅
GoLink加速器
3DM驱动大师
夸克
豆包电脑版
360C盘扩容大师
360录屏
360极速浏览器
精选专题
手机游戏专题
手机软件专题
电脑软件专题
电脑游戏专题
游戏排行榜
手游排行榜
软件排行榜
BT排行榜
电脑软件排行榜
电脑游戏排行榜