300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 如何使用canvas来制作好用的涂鸦画板

如何使用canvas来制作好用的涂鸦画板

时间:2023-01-15 00:32:56

相关推荐

如何使用canvas来制作好用的涂鸦画板

web前端|js教程

canvas,用作好

web前端-js教程

这次给大家带来如何使用canvas来制作好用的涂鸦画板,使用canvas来制作好用的涂鸦画板的注意事项有哪些,下面就是实战案例,一起来看一下。在canvas中获取光标坐标

android应用源码购物商城客户端,mac vscode使用技巧,ubuntu的uk,tomcat是否正常运行,虫子爬虫子怎么爬虫子怎么吃,php 读取docx,嘉善信息化seo推广,论坛免费网站模板下载,destoon 单页模板lzw

获取坐标的代码很简单:

h5登录注册页面源码,vscode 调试树形,ubuntu 解压mysql,tomcat 修改post,sqlite ado封装,国内租云服务器,js 高亮插件,前端框架应用与实现,java爬虫下载,达内php培训好吗,关键词优化工具乐云seo,网站源代码整站下载,网页图书管理系统模板,后台开发模板,css 导航页面,简单管理系统网页模板,时时彩程序源码出售lzw

*{margin: 0;padding: 0} var canvas = document.getElementById(oard); var context = canvas.getContext(2d); var current = { color: lack,// 0) {var touch = e.touches[0];return { x: touch.pageX, y: touch.pageY }; } return { x: e.clientX, y: e.clientY }; } //鼠标移动 function onMouseMove(e) { var p = getPoint(e); document.getElementById("point").innerHTML=p.x+"-"+p.y; } canvas.width = 600; canvas.height = 300; canvas.addEventListener(mousemove, onMouseMove, false); //<==兼容PC canvas.addEventListener( ouchmove, onMouseMove, false);//<===兼容安卓或其他系统

注意:因为鼠标与触摸屏的事件是不一样的,鼠标只要悬浮与canvas上就可以获取到了,而触摸屏是需要按下的,并且所返回的 Event 对象也是不一样的。

插件源码模板,ubuntu 宽带上网,现在都不用tomcat了,爬虫 密钥加密,使用docker搭建php环境,seo侵权lzw

2.控制是否绘制

控制是否绘制其实很简单,就是在不同事件时判断自定义变量drawing的值来控制

*{margin: 0;padding: 0} var canvas = document.getElementById(oard); var context = canvas.getContext(2d); var current = { color: lack,//<===画笔颜色配置 width: 1//线条宽度 }; var drawing = false;// 0) {var touch = e.touches[0];return { x: touch.pageX, y: touch.pageY }; } return { x: e.clientX, y: e.clientY }; } //鼠标按下 function onMouseDown(e) {drawing = true; } //鼠标弹起 function onMouseUp(e) {if (!drawing) { return; }drawing = false; } //鼠标移动 function onMouseMove(e) { if (!drawing) { return; } var p = getPoint(e); document.getElementById("point").innerHTML=p.x+"-"+p.y; } canvas.width = 600; canvas.height = 300; canvas.addEventListener(mousedown, onMouseDown, false); canvas.addEventListener(mouseup, onMouseUp, false); canvas.addEventListener(mouseout, onMouseUp, false); canvas.addEventListener(mousemove, onMouseMove, false); canvas.addEventListener( ouchstart, onMouseDown, false); canvas.addEventListener( ouchend, onMouseUp, false); canvas.addEventListener( ouchmove, onMouseMove, false);

3.线条绘制

线条绘制的代码也是很简单的

....//线条绘制function drawLine(x0, y0, x1, y1, color, width) { context.beginPath(); context.moveTo(x0, y0); context.lineTo(x1, y1); context.strokeStyle = color; context.lineWidth = width;context.stroke(); context.closePath();}....

将绘制线条代码整合到事件中:

Documentvar canvas = document.getElementById(oard); var context = canvas.getContext(2d); var current = { color: lack,//<===画笔颜色配置 width: 1//线条宽度 }; var drawing = false;// 0) {var touch = e.touches[0];return { x: touch.pageX, y: touch.pageY }; } return { x: e.clientX, y: e.clientY }; } //线条绘制 function drawLine(x0, y0, x1, y1, color, width) { context.beginPath(); context.moveTo(x0, y0); context.lineTo(x1, y1); context.strokeStyle = color; context.lineWidth = width; context.stroke(); context.closePath(); } //鼠标按下 function onMouseDown(e) { drawing = true; //记录按下点 var p = getPoint(e); current.x = p.x; current.y = p.y; } //鼠标弹起 function onMouseUp(e) { if (!drawing) { return; } drawing = false; //绘制结束点 var p = getPoint(e); drawLine(current.x, current.y, p.x, p.y, current.color, current.width); } //鼠标移动 function onMouseMove(e) { if (!drawing) { return; } var p = getPoint(e); document.getElementById("point").innerHTML = p.x + "-" + p.y; //移动绘制 drawLine(current.x, current.y, p.x, p.y, current.color, current.width); current.x = p.x; current.y = p.y; } canvas.width = 600; canvas.height = 300; canvas.addEventListener(mousedown, onMouseDown, false); canvas.addEventListener(mouseup, onMouseUp, false); canvas.addEventListener(mouseout, onMouseUp, false); canvas.addEventListener(mousemove, onMouseMove, false); canvas.addEventListener( ouchstart, onMouseDown, false); canvas.addEventListener( ouchend, onMouseUp, false); canvas.addEventListener( ouchmove, onMouseMove, false);

4.绘制线条优化

当绘制线条宽度比较小的时候还好,一旦比较粗就会有写问题:

这时只要稍微改一下绘制的代码就行了

....//线条绘制function drawLine(x0, y0, x1, y1, color, width) { context.beginPath(); context.moveTo(x0, y0); context.lineTo(x1, y1); context.strokeStyle = color; context.lineWidth = width;//-----加入----- context.lineCap = "round"; context.lineJoin = "round"; //-----加入----- context.stroke(); context.closePath();}....

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。