首页 > Web开发 > 详细

HTML5 canvas标签绘制正三角形 鼠标按下点为中间点,鼠标抬起点为其中一个顶点

时间:2014-02-09 20:01:19      阅读:453      评论:0      收藏:0      [点我收藏+]

用html5的canvas标签绘制圆、矩形比较容易,绘制三角形,坐标确定相当于前面两种难点,这里绘制的是正三角形,比较容易,我们只需要把鼠标刚按下去的点设置为三角形的中心点,鼠标抬起的点设置为三角形右边的点,再通过数学计算就可以计算出左边和顶点的坐标。

bubuko.com,布布扣
//绘制三角形
function drawPoly(num){ 
//设置全局变量,便于在匿名函数中使用 var startX; var startY; var endX; var endY; var distance; //获取鼠标按下事件(起始点) //鼠标按下的为三角形的中心点 canvas.onmousedown = function(evt){ var evt = window.event || evt; startX = evt.pageX - this.offsetLeft; startY = evt.pageY - this.offsetTop; //alert(startX+‘-----------‘+startY); } //获取鼠标抬起事件(结束点,即右下角的点) canvas.onmouseup = function(evt){ var evt = window.event || evt; //如果是IE浏览器就使用event事件,如果不是的话就使用我们传进去的参数evt endX = evt.pageX -this.offsetLeft; endY = evt.pageY - this.offsetTop; //左下角的点 y为endY var xLeft = 2*startX - endX; //y = endY
//最上面的点 var B = Math.sqrt(3)*(endX-startX); //得到三角形的中间的高,根据正三角形的长直角边=sqrt(斜边的平方-短直角边的平方),运算后结果为如左边 var yTop = endY - B; //x= startX //开始绘制 ctx.beginPath(); ctx.moveTo(endX,endY); ctx.lineTo(xLeft,endY); ctx.lineTo(startX,yTop); ctx.closePath(); ctx.stroke(); } }
bubuko.com,布布扣

图示坐标计算的理解:

bubuko.com,布布扣

HTML5 canvas标签绘制正三角形 鼠标按下点为中间点,鼠标抬起点为其中一个顶点

原文:http://www.cnblogs.com/wuyinghong/p/3541692.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!