您现在的位置是:网站首页> 编程资料编程资料
用html5的canvas和JavaScript创建一个绘图程序的简单实例html5使用Canvas绘图的使用方法详解html5 canvas常用api总结(二)--绘图API html5-Canvas可以在web中绘制各种图形详解HTML5 canvas绘图基本使用方法
2021-08-31
1430人已围观
简介 下面小编就为大家带来一篇用html5的canvas和JavaScript创建一个绘图程序的简单实例。小编觉得挺不错的, 现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
本文将引导你使用canvas和JavaScript创建一个简单的绘图程序。
首先准备容器Canvas元素,接下来所有的事情都会在JavaScript里面。
- <canvas id="canvasInAPerfectWorld" width="490" height="220">canvas>
获取绘图环境,context对象提供了用于在画布上绘图的方法和属性
- context = document.getElementById('canvasInAPerfectWorld').getContext("2d");
开始绘图过程
首先我们需要存储绘图路径点坐标,addClick函数添加坐标点值到数组
- var clickX = new Array();
- var clickY = new Array();
- var clickDrag = new Array();//存储路径点
- var paint;//是否绘制,mousedown时置为true
- function addClick(x, y, dragging)
- {
- clickX.push(x);
- clickY.push(y);
- clickDrag.push(dragging);
- }
redraw函数每次调用整个canvas就会重新绘制一次。首先我们清空画布上内容,设置绘制线条颜色粗细线条连接方式。然后
两点之间绘制一段路径,将数组中的坐标点依次绘制出来
- function redraw(){
- context.clearRect(0, 0, context.canvas.width, context.canvas.height); // 清除画布内容
- context.strokeStyle = "#df4b26";//设置线条颜色
- context.lineJoin = "round";//当两条线条交汇时,创建圆形边角
- context.lineWidth = 5;//线条粗细
- for(var i=0; i < clickX.length; i++) {
- context.beginPath();//开始一条路径,或重置当前的路径
- if(clickDrag[i] && i){
- context.moveTo(clickX[i-1], clickY[i-1]);
- }else{
- context.moveTo(clickX[i]-1, clickY[i]);
- }
- context.lineTo(clickX[i], clickY[i]);
- context.closePath();
- context.stroke();//绘制路径
- }
- }
绘制过程需要的事件
1 mousedown事件
绘图这点击到画布上时,将触发该事件执行。调用了addClick函数,并将paint置为true。
- $('#canvas').mousedown(function(e){
- var mouseX = e.pageX - this.offsetLeft;
- var mouseY = e.pageY - this.offsetTop;
- paint = true;
- addClick(e.pageX - this.offsetLeft, e.pageY - this.offsetTop);
- redraw();
- });
2 mousemove事件
mousedown中设置的paint为true后,鼠标移动时触发mousemove事件执行,将鼠标移动的所有点记录下来,并不断调用redraw重绘画布。
- $('#canvas').mousemove(function(e){
- if(paint){
- addClick(e.pageX - this.offsetLeft, e.pageY - this.offsetTop, true);
- redraw();
- }
- });
3 mouseup事件
mouseup鼠标点击后松开或者拖拽后松开,表示绘制完成该路径,将paint置为false。
- $('#canvas').mouseup(function(e){
- paint = false;
- });
4 mouseleave事件
mouseleave鼠标离开canvas元素,将paint置为false。
- $('#canvas').mouseleave(function(e){
- paint = false;
- });
以上这篇用html5的canvas和JavaScript创建一个绘图程序的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
原文地址:http://www.cnblogs.com/fangsmile/archive/2016/07/05/5644611.html
相关内容
- Html5实现移动端、PC端 刮刮卡效果HTML5踩白块儿手机小游戏特效代码 (兼容PC端和手机移动端)Html5上传图片 移动端、PC端通用代码整理HTML5移动端开发的常用触摸事件移动端HTML5实现文件上传jQuery+HTML5实现移动端左侧分类导航tab选项卡特效源码移动端html5 meta标签的神奇功效HTML5中判断横屏竖屏的方法(移动端)
- HTML5中原生的右键菜单创建方法全面了解html.css溢出使用HTML5里的classList操作CSS类HTML简述(新手必看) ppt版浅谈HTML代码中的空格和空行HTML5 canvas基本绘图之图形组合htm初学笔记(新手必看)
- 使用HTML5里的classList操作CSS类详解使用HTML5的classList属性操作CSS类
- HTML5 canvas基本绘图之图形组合HTML5 canvas基本绘图之绘制阴影效果HTML5 canvas基本绘图之文字渲染HTML5 canvas基本绘图之绘制曲线HTML5 canvas基本绘图之图形变换HTML5 canvas基本绘图之填充样式实现HTML5 canvas基本绘图之绘制线条HTML5 canvas基本绘图之绘制五角星HTML5 canvas基本绘图之绘制矩形HTML5 canvas基本绘图之绘制线段一波HTML5 Canvas基础绘图实例代码集合
- HTML5不支持标签和新增标签详解浅谈html5标签css3的常用样式html5中的一些标签学习(心得)HTML5新增加标签和功能概述浅谈Html5中视频 音频标签 进度条的问题HTML5进阶段内联标签汇总(小篇)关于HTML5语义标签的实践(blog页面)html5基于canvas实现的文字标签云3D旋转动画特效源码HTML5之语义标签介绍浅析HTML5中header标签的用法常用的HTML5列表标签
- 浅谈html5标签css3的常用样式20个CSS/CSS3常用样式汇总详解CSS3中常用的样式【基本文本和字体样式】
- html5中的一些标签学习(心得)浅谈html5标签css3的常用样式HTML5新增加标签和功能概述浅谈Html5中视频 音频标签 进度条的问题HTML5进阶段内联标签汇总(小篇)关于HTML5语义标签的实践(blog页面)html5基于canvas实现的文字标签云3D旋转动画特效源码HTML5之语义标签介绍HTML5不支持标签和新增标签详解浅析HTML5中header标签的用法常用的HTML5列表标签
- HTML5+CSS3实现机器猫纯css3绘制的哆啦a梦机器猫头像效果源码
- html5将图片转换成base64的实例代码HTML table 直列化格式详解HTML Form表单元素全面了解浅谈HTML空链接的作用HTML标签marquee实现滚动效果的简单方法(必看)使用Html5实现异步上传文件,支持跨域,带有上传进度条浅谈html标题,段落,换行,水平线,特殊字符浅谈html有序列表、无序列表与定义列表HTML5 Web 存储详解浅谈Html网页表格结构化标记的应用
- CSS3 画基本图形,圆形、椭圆形、三角形等纯CSS3+DIV实现小三角形边框效果的示例代码详解css如何利用 :before :after 写小三角形用CSS3绘制三角形的简单方法布局和排版教程 纯css3实现图片三角形排列使用css创建三角形 使用CSS3创建3d四面体原理及代码(html5实践)CSS3实现三角形不断放大效果
