为了账号安全,请及时绑定邮箱和手机立即绑定

那位大神,有何好方法能使中间空白角去除,保留四边圆角


<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <canvas id="canvas" style ="divplay:block;margin:0 auto;border:1px solid #aaa;"><!--显示画布框架-->
        当前浏览器不支持Canvas,请更换浏览器后再试
    </canvas>
<script>
    window.onload = function(){

     var canvas = document.getElementById("canvas") //通过Id("canvas")与画布连接,必须
     
            canvas.width = 800            //画布宽 红邑为可修改,下同
            canvas.height = 800           //画布高
     var context = canvas.getContext("2d")   //设置画布上下文环境,必须

for (var j = 0; j < 4; j++) {
        for (var i = 0; i < 4; i++) {
           drawRect(context,20+i*100,20+j*100,100,100,7,10,"#058","red")  //起点(20,20),长宽100,半径7,线宽10
            }
       }
}
 function  drawRect(cxt,x0,y0,width,height,r,bordrwidth,bordrColor,fillColor){   //将上行参数值传递到运行的函数后运行{}内的语句
     cxt.save()
     cxt.translate(x0,y0);     //位移
     cxt.beginPath();
     cxt.arc(width-r,height-r,r,0,Math.PI/2);//从右下角起绘右下角圆角状态
     cxt.lineTo(r,height);//底直线
     cxt.arc(r,height-r,r,Math.PI/2,Math.PI);//左下角
     cxt.lineTo(0,r);//左直线
     cxt.arc(r,r,r,Math.PI,Math.PI*3/2);//左上角
     cxt.lineTo(width-r,0);//顶直线
     cxt.arc(width-r,r,r,Math.PI*3/2,Math.PI*2);//右上角
     cxt.closePath();  
     cxt.restore();
     cxt.lineWidth = bordrwidth;
             cxt.fillStyle =fillColor;
             cxt.strokeStyle = bordrColor;   //设置线色状态
            
            cxt.fill();                //执行填充色,注因context己传递为cxt,故为cxt.fill();不是context.fill();丁
            cxt.stroke();             //执行绘线
 }
</script>    
    
</body>
</html>http://img1.sycdn.imooc.com//584920570001124408000800.jpg

正在回答

3 回答

你可以先把底层蓝色直接fill一个大的圆角矩形, 之后再把红色的小圆角矩形贴上去就不会出现那些白色东西了,反正你做2048的画 直接控制里面的小圆角矩形就可以了

0 回复 有任何疑惑可以回复我~
#1

慕粉4042427 提问者

先给予采纳,但我的意思不是履盖,而是在程式上修改尺寸,或者添加1至2句语句修正线头等方式
2016-12-09 回复 有任何疑惑可以回复我~
#2

什0么 回复 慕粉4042427 提问者

如果是改尺寸,你在循环的时候,当i<3时 宽度家长 当j小于3时,高度家长, 如果是在draw里面改的话 , 你就添加一个新的变量, 用它来代表状态, 当表示为左上角状态时,这个圆角矩形就只在左上角绘制圆角,其他的变成直线 依此类推
2016-12-12 回复 有任何疑惑可以回复我~

是个好办法,当修改循环时可以改变小格数量,不用再次绘一大方复盖,多谢

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

那位大神,有何好方法能使中间空白角去除,保留四边圆角

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信