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

画正圆角矩形 - HTML5 Canvas 作图相关推荐

  1. 画闭合的多边形 - HTML5 Canvas 作图

    10.function DrawPolygon(Canvas,P) 功能:画闭合的多边形 参数:P是一个包含各个顶点坐标的数组 实例: <html> <script type=&qu ...

  2. 画圆角 - HTML5 Canvas 作图

    2.function DrawAOBArc(Canvas,A,O,B,Radius) 功能:画圆角 参数:Radius:圆角的大小:A,B:边上两点: 源代码: function DrawAOBArc ...

  3. 画椭圆 - HTML5 Canvas 作图

    8.function DrawEllipse(Canvas,O,OA,OB) 功能:画椭圆 参数:O:椭圆中心的坐标: OA,OB:长轴.短轴的长度 源代码: function DrawEllipse ...

  4. 用html5 canvas画猪头,使用HTML5 Canvas实现画图效果

    使用HTML5可以非常简单地在canvas上实现画图应用,用支持html5的浏览器便可在下面的区域进行绘画,要看到演示效果,请确保你的浏览器支持HTML5: 效果演示 您的浏览器不支持canvas! ...

  5. 使用html画简单的图形,HTML5 Canvas 绘图——使用 Canvas 绘制图形图文教程 使用html5 canvas 绘制精美的图...

    HTML5火的正热,最近有个想法也是要用到HTML的相关功能,所以也要好好学习一把. 好好看了一下Canvas的功能,感觉HTML5在客户端交互的功能性越来越强了,今天看了一下Canvas绘图,下边是 ...

  6. canvas二次、三次贝赛尔曲线 绘制气泡圆角矩形立体桃心

    绘制气泡 二次贝塞尔曲线 canvas quadraticCurveTo() 方法通过使用表示二次贝塞尔曲线的指定控制点,向当前路径添加一个点. quadraticCurveTo(cpx,cpy,x, ...

  7. 小程序 uni canvas绘制圆角图片 圆角矩形

    小程序 uni canvas绘制圆角图片 圆角矩形 获取canvas的宽度保证适应屏幕 uni.getSystemInfo({success: (res)=> { // res - 各种参数le ...

  8. html圆角矩形的渐变色,canvas圆角矩形 PS制作渐变圆角矩形: 方法一:

    用canvas画只有一个角是圆角的矩形,能画出来么? CSS布局HTML小编今天和大家分享各位大侠指点, 找到方法了float[] radii={12f,12f,0f,0f,0f,0f,0f,0f}; ...

  9. Android 使用CornerPathEffect绘制圆角矩形

    CornerPathEffect 可以用来画圆角,比如我们想要画一个圆角矩形,那么就可以使用. 代码: public class CornerPathEffectViewTest extends Vi ...

最新文章

  1. Newtonsoft.Json code
  2. 世界各国钱币(ZT)
  3. RxJava Timer:代替handler
  4. C# WebAPI中DateTime类型字段在使用微软自带的方法转json格式后默认含T的解决办法...
  5. 高并发 python socket send 异步_对于Python中socket.listen()与多线程结合的困惑?
  6. 学习 TTreeView [8] - AlphaSort、CustomSort、SortType
  7. 【详解!思路清晰】1095 解码PAT准考证 (25分)
  8. 漫谈SCA(软件成分分析)测试技术:原理、工具与准确性
  9. 一种软阴影的实现方法
  10. Python 解决面试题47 不用加减乘除做加法
  11. DaisyDisk for Mac(磁盘清理软件)
  12. sql统计各科成绩大于平均分的人_SQL第三关:汇总分析
  13. 计算机组装与维护5416答案,沈阳工业大学计算机科学与技术专业2016年在重庆理科高考录取最低分数线...
  14. Chrome最新版本如何通过JS设置支持自动播放音频
  15. MODIS数据下载之USGS下载流程
  16. 在线坐标系经纬度转换工具
  17. 2009年国家质监局公布的禁用化妆品名单
  18. 小学计算机课程听课记录,小学信息技术听课记录
  19. 【C++】C++入门
  20. 写尽自己一个人的孤独,却写不出心里的寂寞

热门文章

  1. [工具]sublime text2-前端开发利器
  2. please wait while windows configures microsoft visual studio professional 2013
  3. HLS-Demo IOS 视屏直播样例
  4. 从0开始学习GitHub系列之「认识并加入GitHub」
  5. 使用GLSL实现雾化的效果
  6. Graph Cut and Its Application in Computer Vision
  7. 在一个空的Eclipse中安装Android开发的ADT和SDK
  8. wordpress 分类使用不同的模版
  9. 知乎上8个100K+高赞回答(筛选自63万个回答)
  10. C++中引用()的用法和应用实例