function doRoundedRectangle(c,sx,sy,ex,ey,r) {
var ctx = c.getContext("2d");
var r2d = Math.PI/180;
if( ( ex - sx ) - ( 2 * r ) < 0 ) { r = ( ( ex - sx ) / 2 ); } //ensure that the radius isn't too large for x
if( ( ey - sy ) - ( 2 * r ) < 0 ) { r = ( ( ey - sy ) / 2 ); } //ensure that the radius isn't too large for y
ctx.beginPath();
ctx.moveTo(sx+r,sy);
ctx.lineTo(ex-r,sy);
ctx.arc(ex-r,sy+r,r,r2d*270,r2d*360,false);
ctx.lineTo(ex,ey-r);
ctx.arc(ex-r,ey-r,r,r2d*0,r2d*90,false);
ctx.lineTo(sx+r,ey);
ctx.arc(sx+r,ey-r,r,r2d*90,r2d*180,false);
ctx.lineTo(sx,sy+r);
ctx.arc(sx+r,sy+r,r,r2d*180,r2d*270,false);
ctx.closePath();
};
Parameters:
c = Canvas object
sx = Start x position
sy = Start y position
ex = End x position
ey = End y position
r = radius for rounded corners


No comments:
Post a Comment