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

神奇的Canvas贝塞尔曲线画心,程序员的表白

学习了慕课的html5 canvase自己尝试用贝赛尔曲线画心,怎么样?是不是很酷?各位小伙伴,我画了一个心的轮廓,大家可以在此基础上自己加工,表白的时候到了。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <canvas id="canvas" style="border: 1px solid #aaa;display: block;margin: 50px auto;"></canvas>
</div>

</body>
<script>
    window.onload = function () {
        var canvas = document.getElementById("canvas");
        var ctx = canvas.getContext('2d');
        canvas.width = 800;
        canvas.height = 800;
        drawHeart(ctx,400,400,50,30);
    }

    function drawHeart(ctx,x,y,R,rot) {
        ctx.save();
        ctx.translate(x,y);
        ctx.rotate(rot/180*Math.PI);
        ctx.scale(R, R);
        heartPath(ctx);
        /*ctx.strokeStyle = "red";
        ctx.lineWidth = "3px";*/
        ctx.fillStyle = "red";
        ctx.shadowColor = "gray";
        ctx.shadowOffsetX = 5;
        ctx.shadowOffsetY = 5;
        ctx.shadowBlur = 5;
        ctx.fill();
        //ctx.stroke();
        ctx.restore();
    }
    function heartPath(ctx) {
        ctx.beginPath();
        ctx.arc(-1,0,1,Math.PI,0,false);
        ctx.arc(1,0,1,Math.PI,0,false);
        //貝塞尔曲线画心
        ctx.bezierCurveTo(1.9, 1.2, 0.6, 1.6, 0, 3.0);
        ctx.bezierCurveTo( -0.6, 1.6,-1.9, 1.2,-2,0);
        ctx.closePath();
    }
</script>

</html>
点击查看更多内容
27人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消