canvas实现奥运五环

1.方法1

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/jquery.js"></script>
</head>

<body>
    <div id="app">
        <canvas id="canvas" width="1000px" height="1000px"></canvas>
    </div>
</body>
<script>
    var canvas = $("#canvas")[0];
    var ctx = canvas.getContext('2d');
    ctx.lineWidth = 8;

    //方法1 比较繁琐
    ctx.beginPath();
    ctx.arc(80, 80, 50, 0, 2 * Math.PI);
    ctx.strokeStyle = "blue"
    ctx.stroke();


    ctx.beginPath();
    ctx.arc(190, 80, 50, 0, 2 * Math.PI);
    ctx.strokeStyle = "black"
    ctx.stroke();


    ctx.beginPath();
    ctx.arc(300, 80, 50, 0, 2 * Math.PI);
    ctx.strokeStyle = "red"
    ctx.stroke();


    ctx.beginPath();
    ctx.arc(135, 140, 50, 0, 2 * Math.PI);
    ctx.strokeStyle = "yellow"
    ctx.stroke();


    ctx.beginPath();
    ctx.arc(245, 140, 50, 0, 2 * Math.PI);
    ctx.strokeStyle = "green"
    ctx.stroke();

    ctx.beginPath();
    ctx.arc(80, 80, 50, 0.8 * Math.PI, 0.5 * Math.PI);
    ctx.strokeStyle = "blue"
    ctx.stroke();

    ctx.beginPath();
    ctx.arc(135, 140, 50, 1 * Math.PI, 1.3 * Math.PI)
    ctx.strokeStyle = "yellow";
    ctx.stroke();

    ctx.beginPath();
    ctx.arc(190, 80, 50, 0.5 * Math.PI, 0.8 * Math.PI)
    ctx.strokeStyle = "black";
    ctx.stroke();

    ctx.beginPath();
    ctx.arc(190, 80, 50, 0, 0.3 * Math.PI)
    ctx.strokeStyle = "black";
    ctx.stroke();

    ctx.beginPath();
    ctx.arc(300, 80, 50, 0.5 * Math.PI, 0.8 * Math.PI)
    ctx.strokeStyle = "red";
    ctx.stroke()

</script>

</html>

2.方法2 -- 封装函数

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/jquery.js"></script>
</head>

<body>
    <div id="app">
        <canvas id="canvas" width="1000px" height="1000px"></canvas>
    </div>
</body>
<script>
    var canvas = $("#canvas")[0];
    var ctx = canvas.getContext('2d');

    // 第二种方法 封装函数
    var radius = 100;//半径
    ctx.lineWidth = 25;//线宽

    function draw(x, y, startAngle, endAngle, color) {
        ctx.beginPath();//新建一条路径
        ctx.strokeStyle = color;//控制色彩
        ctx.moveTo(x + radius * Math.cos(startAngle), y + radius * Math.sin(startAngle));//设置起始位置
        ctx.arc(x, y, radius, startAngle, endAngle, false);//圆心,半径,开始的点,结束的点
        ctx.stroke();//通过线条绘制图形轮廓
        ctx.closePath();//闭合路径
    }
    draw(275, 360, 1.2 * Math.PI, 1.5 * Math.PI, '#fda811');//4-黄-上左
    draw(160, 250, 0, 2 * Math.PI, '#3b7cb6');//1-蓝
    draw(275, 360, -0.2 * Math.PI, 1.2 * Math.PI, '#fda811');//4-黄-下
    draw(525, 360, 1.2 * Math.PI, 1.5 * Math.PI, '#2d9b2b');//5-绿-上左
    draw(400, 250, 0, 2 * Math.PI, '#150f11');//2-黑
    draw(640, 250, 0.8 * Math.PI, 2 * Math.PI, '#fc0203');//3-红-上
    draw(275, 360, 1.5 * Math.PI, 1.8 * Math.PI, '#fda811');//4-黄-上右
    draw(525, 360, -0.5 * Math.PI, 1.2 * Math.PI, '#2d9b2b');//5-绿-下-上左
    draw(640, 250, 0, 0.8 * Math.PI, '#fc0203');//3-红-下

</script>

</html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值