国旅手游网提供好玩的手机游戏和手机必备软件下载,每天推荐精品安卓手游和最新应用软件app,并整理了热门游戏攻略、软件教程、资讯等内容。欢迎收藏

当前位置:国旅手游网攻略软件教程内容

微信小程序canvas画图[小程序canvas绘制]优质

573次浏览 | 2023-05-12 17:20:40 更新
提问:望倾
最佳经验
回答:映文

网友采纳答案

网友望倾提问:微信小程序儿童涂鸦怎么玩

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

index.html

<view class="container">

<!--画布区域-->

<view class="canvas_area">

<!--注意:同一页面中的 canvas-id 不可重复,如果使用一个已经出现过的 canvas-id,该 canvas 标签对应的画布将被隐藏并不再正常工作-->

<canvas canvas-id="myCanvas" class="myCanvas"

disable-scroll="false"

bindtouchstart="touchStart"

bindtouchmove="touchMove"

bindtouchend="touchEnd">

</canvas>

</view>

<!--画布工具区域-->

<view class="canvas_tools">

<view class="box box1" bindtap="penSelect" data-param="5"></view>

<view class="box box2" bindtap="penSelect" data-param="15"></view>

<view class="box box3" bindtap="colorSelect" data-param="#cc0033"></view>

<view class="box box4" bindtap="colorSelect" data-param="#ff9900"></view>

<view class="box box5" bindtap="clearCanvas"></view>

</view>

</view>

复制代码

手指滑动代码

//手指触摸动作开始

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跟<canvas/>不存在对应关系,一个context生成画布的绘制动作数组可以应用于多个<canvas/>

wx.drawCanvas({

canvasId: \'myCanvas\',

reserve: true,

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

})

}

复制代码

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

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

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

微信小程序canvas画图

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

关于《如何使用微信小程序的canvas组进行涂鸦?》相关问题的解答映文小编就为大家介绍到这里了。如需了解其他软件使用问题,请持续关注国旅手游网软件教程栏目。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭侵权/违法违规的内容,欢迎发送邮件至【1047436850@qq.com】举报,并提供相关证据及涉嫌侵权链接,一经查实,本站将在14个工作日内删除涉嫌侵权内容。

本文标题:【微信小程序canvas画图[小程序canvas绘制]】

本文链接:http://www.citshb.com/class222632.html

相关游戏
微信本安卓版
微信本安卓版
  • 类型:社交聊天
  • 大小:256.1M
  • 版本:8.0.49
  • 评分: