温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么用html5和JavaScript创建一个绘图程序

发布时间:2021-08-12 17:44:51 来源:亿速云 阅读:164 作者:chen 栏目:web开发

这篇文章主要介绍“怎么用html5和JavaScript创建一个绘图程序”,在日常操作中,相信很多人在怎么用html5和JavaScript创建一个绘图程序问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用html5和JavaScript创建一个绘图程序”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

本文将引导你使用canvas和JavaScript创建一个简单的绘图程序。

首先准备容器Canvas元素,接下来所有的事情都会在JavaScript里面。

XML/HTML Code复制内容到剪贴板

  1. <canvas id="canvasInAPerfectWorld" width="490" height="220"></canvas>  

获取绘图环境,context对象提供了用于在画布上绘图的方法和属性

XML/HTML Code复制内容到剪贴板

  1. context = document.getElementById('canvasInAPerfectWorld').getContext("2d");  

开始绘图过程

首先我们需要存储绘图路径点坐标,addClick函数添加坐标点值到数组

JavaScript Code复制内容到剪贴板

  1. var clickX = new Array();   

  2. var clickY = new Array();   

  3. var clickDrag = new Array();//存储路径点   

  4. var paint;//是否绘制,mousedown时置为true   

  5. function addClick(x, y, dragging)   

  6. {   

  7.   clickX.push(x);   

  8.   clickY.push(y);   

  9.   clickDrag.push(dragging);   

  10. }  

redraw函数每次调用整个canvas就会重新绘制一次。首先我们清空画布上内容,设置绘制线条颜色粗细线条连接方式。然后

两点之间绘制一段路径,将数组中的坐标点依次绘制出来

XML/HTML Code复制内容到剪贴板

  1. function redraw(){   

  2.   context.clearRect(0, 0, context.canvas.width,   context.canvas.height); // 清除画布内容   

  3.      

  4.   context.strokeStyle = "#df4b26";//设置线条颜色   

  5.   context.lineJoin = "round";//当两条线条交汇时,创建圆形边角   

  6.   context.lineWidth = 5;//线条粗细   

  7.                

  8.   for(var i=0; i < clickX.length; i++) {           

  9.     context.beginPath();//开始一条路径,或重置当前的路径   

  10.     if(clickDrag[i] && i){   

  11.       context.moveTo(clickX[i-1], clickY[i-1]);   

  12.      }else{   

  13.        context.moveTo(clickX[i]-1, clickY[i]);   

  14.      }   

  15.      context.lineTo(clickX[i], clickY[i]);   

  16.      context.closePath();   

  17.      context.stroke();//绘制路径   

  18.   }   

  19. }  

绘制过程需要的事件

1 mousedown事件

绘图这点击到画布上时,将触发该事件执行。调用了addClick函数,并将paint置为true。

JavaScript Code复制内容到剪贴板

  1. $('#canvas').mousedown(function(e){   

  2.   var mouseX = e.pageX - this.offsetLeft;   

  3.   var mouseY = e.pageY - this.offsetTop;   

  4.   paint = true;   

  5.   addClick(e.pageX - this.offsetLeft, e.pageY - this.offsetTop);   

  6.   redraw();   

  7. });  

2 mousemove事件

mousedown中设置的paint为true后,鼠标移动时触发mousemove事件执行,将鼠标移动的所有点记录下来,并不断调用redraw重绘画布。

JavaScript Code复制内容到剪贴板

  1. $('#canvas').mousemove(function(e){   

  2.    if(paint){   

  3.      addClick(e.pageX - this.offsetLeft, e.pageY - this.offsetTop, true);   

  4.      redraw();   

  5.    }   

  6.  });   

3 mouseup事件

mouseup鼠标点击后松开或者拖拽后松开,表示绘制完成该路径,将paint置为false。

XML/HTML Code复制内容到剪贴板

  1. $('#canvas').mouseup(function(e){   

  2.    paint = false;   

  3.  });  

4 mouseleave事件

mouseleave鼠标离开canvas元素,将paint置为false。

XML/HTML Code复制内容到剪贴板

  1. $('#canvas').mouseleave(function(e){   

  2.   paint = false;   

  3. });  

到此,关于“怎么用html5和JavaScript创建一个绘图程序”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI