畫正圓角矩形 - HTML5 Canvas 作圖


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應用開發者指南》,寫完一章節,就發布在我金海龍個人主頁上

在我個人博客上只發表其中一些部分段落,寫寫感想,或者其它的,只要我有時間的話。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM