ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

画正圆角矩形 - HTML5 Canvas 作图

2019-07-17 12:06:26  阅读:250  来源: 互联网

标签:Canvas 画正 hb Radius HTML5 var new Array


原文链接:http://www.cnblogs.com/htmlcanvas/archive/2012/08/13/2635700.html

function DrawRoundRect(Canvas,P1,P2,Radius)
功能:画正圆角矩形
参数:P1:矩形左上角坐标;P2:矩形右下角坐标;
Radius:圆角大小

源代码:

function DrawRoundRect(Canvas,P1,P2,Radius)
{
//画个圆角矩形
var A=new Array(Math.min(P1[0],P2[0]),Math.min(P1[1],P2[1]));
var C=new Array(Math.max(P1[0],P2[0]),Math.max(P1[1],P2[1]));
var B=new Array(A[0],C[1]);
var D=new Array(C[0],A[1]);
Canvas.beginPath();
var P=new Array(A[0],A[1]+Radius);
DrawArcTo(Canvas,P,B,C,Radius);
var P=new Array(B[0]+Radius,B[1]);
DrawArcTo(Canvas,P,C,D,Radius);
var P=new Array(C[0],C[1]-Radius);
DrawArcTo(Canvas,P,D,A,Radius);
var P=new Array(D[0]-Radius,D[1]);
DrawArcTo(Canvas,P,A,B,Radius);

Canvas.stroke();
/*
Canvas.beginPath();
DrawAOBArc(Canvas,C,D,A,Radius);
Canvas.stroke();
Canvas.beginPath();
DrawAOBArc(Canvas,D,A,B,Radius);
Canvas.stroke();
Canvas.endPath();
*/
}

实例:
<html>
<script type="text/javascript" src="bigengineer.js"></script>
<body><canvas id="cc" width="2000" height="2000"></canvas>
<script type="text/javascript">
var c=document.getElementById("cc");
var hb=c.getContext("2d");

var A=new Array(55,55);
var C=new Array(150,150);

hb.beginPath();
hb.strokestyle="#000000";
DrawRoundRect(hb,A,C,10);
hb.stroke();
hb.endPath();
</script>
</body>
</html>
Google浏览器浏览的效果如下:

如果Radius设置的太大,那么就能画出意想不到的图片,例如:
……
DrawRoundRect(hb,A,C,80);//把Radius设置成80
hb.stroke();
……
Google浏览器浏览的效果如下:

……
DrawRoundRect(hb,A,C,100);//把Radius设置成100
hb.stroke();
……
Google浏览器浏览的效果如下:

本文节选自我金海龙2010年写的《 HTML5 Canvas 作图函数库2.0版本.pdf 》,

HTML5刚登陆中国大陆的时候,奇缺权威资料,我及时写作,刚一发布,就引起了关注,也成为被盗版的目标,当你们在Google搜索:HTML5 作图 就可以看到我金海龙作品的排名。

这正说明了我的编程实力

再接再厉,做完一个版本、开发完一次,才能觉得不完美。

我最近正在写作《HTML 5 Canvas应用开发者指南》,写完一章节,就发布在我金海龙个人主页上

在我个人博客上只发表其中一些部分段落,写写感想,或者其它的,只要我有时间的话。

转载于:https://www.cnblogs.com/htmlcanvas/archive/2012/08/13/2635700.html

标签:Canvas,画正,hb,Radius,HTML5,var,new,Array
来源: https://blog.csdn.net/weixin_30483697/article/details/96289885

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有