JS实现简单的Canvas画图实例


Posted in Javascript onJuly 04, 2013

定义变量:
[javascript]

var startX; 
var startY; 
var endX; 
var endY; 
var radius; 
var canvas = document.getElementById("myCanvas"); 
var context = canvas.getContext("2d"); 
var select = document.getElementsByTagName("select"); 
var startX;
var startY;
var endX;
var endY;
var radius;
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
var select = document.getElementsByTagName("select");

函数部分:
[javascript]
window.onload=function() { 
    canvas.onmousedown = function(e) { 
    e = e || event; 
    startX = e.clientX; 
    startY = e.clientY; 
    if(select[0].value == "arc") { 
        canvas.onmousemove = moveShowArc; 
    } else { 
        canvas.onmousemove = moveShowRect; 
    } 
    } 
    canvas.onmouseup = function() { 
    canvas.onmousemove = ""; 
    } 
} 
function moveShowRect(e) { 
    context.clearRect(0, 0, 500, 300); 
    endX = e.clientX - startX; 
    endY = e.clientY - startY; 
    context.beginPath(); 
    context.rect(startX, startY, endX, endY); 
    context.fillStyle = "#8ED6FF"; 
    context.fill(); 
    context.lineWidth = 3; 
    context.strokeStyle = "black"; 
    context.stroke(); 
} 
function moveShowArc(e) { 
    context.clearRect(0, 0, 500, 300); 
    endX = e.clientX - startX; 
    endY = e.clientY - startY; 
    radius = Math.sqrt(Math.pow(endX,2)+Math.pow(endY,2)); 
    context.beginPath(); 
    context.arc(startX, startY,radius,0,2 * Math.PI,false); 
    context.fillStyle = "#8ED6FF"; 
    context.fill(); 
    context.lineWidth = 3; 
    context.strokeStyle = "black"; 
    context.stroke(); 
} 
window.onload=function() {
    canvas.onmousedown = function(e) {
 e = e || event;
 startX = e.clientX;
 startY = e.clientY;
 if(select[0].value == "arc") {
     canvas.onmousemove = moveShowArc;
 } else {
     canvas.onmousemove = moveShowRect;
 }
    }
    canvas.onmouseup = function() {
 canvas.onmousemove = "";
    }
}
function moveShowRect(e) {
    context.clearRect(0, 0, 500, 300);
    endX = e.clientX - startX;
    endY = e.clientY - startY;
    context.beginPath();
    context.rect(startX, startY, endX, endY);
    context.fillStyle = "#8ED6FF";
    context.fill();
    context.lineWidth = 3;
    context.strokeStyle = "black";
    context.stroke();
}
function moveShowArc(e) {
    context.clearRect(0, 0, 500, 300);
    endX = e.clientX - startX;
    endY = e.clientY - startY;
    radius = Math.sqrt(Math.pow(endX,2)+Math.pow(endY,2));
    context.beginPath();
    context.arc(startX, startY,radius,0,2 * Math.PI,false);
    context.fillStyle = "#8ED6FF";
    context.fill();
    context.lineWidth = 3;
    context.strokeStyle = "black";
    context.stroke();
}
Javascript 相关文章推荐
基于jquery的商品展示放大镜
Aug 07 Javascript
Ajax局部更新导致JS事件重复触发问题的解决方法
Oct 14 Javascript
JS实现点击文字对应DIV层不停闪动效果的方法
Mar 02 Javascript
javascript同步服务器时间和同步倒计时小技巧
Sep 24 Javascript
js制作支付倒计时页面
Oct 21 Javascript
Easyui Datagrid自定义按钮列(最后面的操作列)
Jul 13 Javascript
React Native使用Modal自定义分享界面的示例代码
Oct 31 Javascript
vue 添加vux的代码讲解
Nov 30 Javascript
layui的布局和表格的渲染以及动态生成表格的方法
Sep 18 Javascript
Javascript ParentNode和ChildNode接口原理解析
Mar 16 Javascript
微信小程序连接服务器展示MQTT数据信息的实现
Jul 14 Javascript
Element MessageBox弹框的具体使用
Jul 27 Javascript
Jquery获取复选框被选中值的简单方法
Jul 04 #Javascript
jquery和javascript的区别(常用方法比较)
Jul 04 #Javascript
JS定时刷新页面及跳转页面的方法
Jul 04 #Javascript
浏览器打开层自动缓慢展开收缩实例代码
Jul 04 #Javascript
深入解析contentWindow, contentDocument
Jul 04 #Javascript
关于Javascript与iframe的那些事儿
Jul 04 #Javascript
如何使用Javascript正则表达式来格式化XML内容
Jul 04 #Javascript
You might like
收音机频率指针指示不准确和灵敏度低问题
2021/03/02 无线电
Apache服务器无法使用的解决方法
2013/05/08 PHP
深入php var_dump()函数的详解
2013/06/05 PHP
destoon之一键登录设置
2014/06/21 PHP
php用户注册时常用的检验函数实例总结
2014/12/22 PHP
php递归删除指定文件夹的方法小结
2015/04/20 PHP
PHP 自动加载的简单实现(推荐)
2016/08/12 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
通用JS事件写法实现代码
2009/01/07 Javascript
jquery tab插件制作实现代码
2010/06/22 Javascript
强大的jquery插件jqeuryUI做网页对话框效果!简单
2011/04/14 Javascript
JQuery之拖拽插件实现代码
2011/04/14 Javascript
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
2011/09/20 Javascript
百度移动版的url编码解码示例
2014/04/29 Javascript
基于jQuery+PHP+Mysql实现在线拍照和在线浏览照片
2015/09/06 Javascript
jQuery复制表单元素附源码分享效果演示
2015/09/30 Javascript
如何判断Javascript对象是否存在的简单实例
2016/05/18 Javascript
浅谈JQ中mouseover和mouseenter的区别
2016/09/13 Javascript
JS中绑定事件顺序(事件冒泡与事件捕获区别)
2017/01/24 Javascript
ligerUI---ListBox(列表框可移动的实例)
2017/11/28 Javascript
axios全局注册,设置token,以及全局设置url请求网段的方法
2018/09/25 Javascript
js实现多张图片每隔一秒切换一张图片
2019/07/29 Javascript
JQuery常用简单动画操作方法回顾与总结
2019/12/07 jQuery
JS 图片压缩原理与实现方法详解
2020/04/29 Javascript
[57:55]EG vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python最小生成树kruskal与prim算法详解
2019/01/17 Python
python matplotlib包图像配色方案分享
2020/03/14 Python
Python爬虫爬取杭州24时温度并展示操作示例
2020/03/27 Python
Python如何自动获取目标网站最新通知
2020/06/18 Python
报关简历自我评价怎么写
2013/09/19 职场文书
大专生工程监理求职信
2013/10/04 职场文书
自动一体化专业求职信
2014/03/15 职场文书
葬礼司仪主持词
2014/03/31 职场文书
租房协议书样本
2014/08/20 职场文书
农村党支部书记司法四风问题对照检查材料
2014/09/26 职场文书
学习焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书