Canvas绘制圆角矩形

原文https://m.jb51.net/html5/442924.html

<!DOCTYPE html>   
<html lang="zh">   
<head>   
    <meta charset="UTF-8">   
    <title>2048游戏界面</title>   
    <style>   
        body { background: url("./images/bg3.jpg") repeat; }  
        #canvas { border: 1px solid #aaaaaa; display: block; margin: 50px auto; }   
    </style>   
</head>   
<body>   
<div id="canvas-warp">   
    <canvas id="canvas">   
        你的浏览器居然不支持Canvas?!赶快换一个吧!!   
    </canvas>   
</div>   
  
<script>   
    window.onload = function(){   
        var canvas = document.getElementById("canvas");   
        canvas.width = 800;   
        canvas.height = 600;   
        var context = canvas.getContext("2d");   
        context.fillStyle = "#FFF";   
        context.fillRect(0,0,800,600);   
  
        drawRoundRect(context, 200, 100, 400, 400, 5);   
        context.fillStyle = "#AA7B41";   
        context.strokeStyle = "#0078AA";   
        context.stroke();   
        context.fill();   
  
        for(var i = 1; i <= 4; i++){   
            for(var j = 1; j <= 4; j++){   
                drawRoundRect(context, 200 + 16 * i + 80 * (i - 1), 100 + 16 * j + 80 * (j - 1), 80, 80, 5);   
                context.fillStyle = "#CCBFB4";   
                context.strokeStyle = "#0078AA";   
                context.stroke();   
                context.fill();   
            }   
        }   
    }   
  
    function drawRoundRect(cxt, x, y, width, height, radius){   
        cxt.beginPath();   
        cxt.arc(x + radius, y + radius, radius, Math.PI, Math.PI * 3 / 2);   
        cxt.lineTo(width - radius + x, y);   
        cxt.arc(width - radius + x, radius + y, radius, Math.PI * 3 / 2, Math.PI * 2);   
        cxt.lineTo(width + x, height + y - radius);   
        cxt.arc(width - radius + x, height - radius + y, radius, 0, Math.PI * 1 / 2);   
        cxt.lineTo(radius + x, height +y);   
        cxt.arc(radius + x, height - radius + y, radius, Math.PI * 1 / 2, Math.PI);   
        cxt.closePath();   
    }   
</script>   
</body>   
</html>   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值