画正圆角矩形 - HTML5 Canvas 作图
function DrawRoundRect(Canvas,P1,P2,Radius)
功能:畫(huà)正圓角矩形
參數(shù):P1:矩形左上角坐標(biāo);P2:矩形右下角坐標(biāo);
Radius:圓角大小
源代碼:
function DrawRoundRect(Canvas,P1,P2,Radius)
{
//畫(huà)個(gè)圓角矩形
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();
*/
}
實(shí)例:
<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設(shè)置的太大,那么就能畫(huà)出意想不到的圖片,例如:
……
DrawRoundRect(hb,A,C,80);//把Radius設(shè)置成80
hb.stroke();
……
用Google瀏覽器瀏覽的效果如下:
……
DrawRoundRect(hb,A,C,100);//把Radius設(shè)置成100
hb.stroke();
……
用Google瀏覽器瀏覽的效果如下:
本文節(jié)選自我金海龍2010年寫(xiě)的《 HTML5 Canvas 作圖函數(shù)庫(kù)2.0版本.pdf 》,
在HTML5剛登陸中國(guó)大陸的時(shí)候,奇缺權(quán)威資料,我及時(shí)寫(xiě)作,剛一發(fā)布,就引起了關(guān)注,也成為被盜版的目標(biāo),當(dāng)你們?cè)?strong>Google搜索:HTML5 作圖 就可以看到我金海龍作品的排名。
這正說(shuō)明了我的編程實(shí)力。
再接再厲,做完一個(gè)版本、開(kāi)發(fā)完一次,才能覺(jué)得不完美。
我最近正在寫(xiě)作《HTML 5 Canvas應(yīng)用開(kāi)發(fā)者指南》,寫(xiě)完一章節(jié),就發(fā)布在我金海龍的個(gè)人主頁(yè)上,
在我個(gè)人博客上只發(fā)表其中一些部分段落,寫(xiě)寫(xiě)感想,或者其它的,只要我有時(shí)間的話(huà)。
轉(zhuǎn)載于:https://www.cnblogs.com/htmlcanvas/archive/2012/08/13/2635700.html
總結(jié)
以上是生活随笔為你收集整理的画正圆角矩形 - HTML5 Canvas 作图的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: xshell突出显示集
- 下一篇: python的@修饰符