疯狂讲义随笔——使用二次曲线quadraticCurveTo()画花朵

本文介绍了一个使用HTML5 Canvas API绘制不同花瓣数量的花朵图案的方法。通过调整参数,可以在同一个画布上绘制多个具有不同特性的花朵。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码如下:

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
    .div1{
        height:400px;
        border:1px solid black;
        position:relative;
    }
    #canvas{
        margin:0px auto;
        border:1px solid black;
    }
    </style>
</head>
<body>
    <div class="div1">
        <canvas id="canvas" height="200" width="500"></canvas>
    </div>
    <script>
    var canvas=document.getElementById("canvas").getContext("2d");
    function createFlower(context,n,dx,dy,size,length){
        context.beginPath();
        context.moveTo(dx,dy+size);
        var dig=2*Math.PI/n;
        for(var i=1;i<n+1;i++){
            var ctrlX=Math.sin((i-0.5)*dig)*length+dx;
            var ctrlY=Math.cos((i-0.5)*dig)*length+dy;

            var x=Math.sin(i*dig)*size+dx;
            var y=Math.cos(i*dig)*size+dy;
            context.quadraticCurveTo(ctrlX,ctrlY,x,y);

        }
        context.closePath();
    }
    canvas.shadowBlur=4;
    canvas.shadowColor="gray";
    canvas.shadowOffsetX=6;
    canvas.shadowOffsetY=4;

    createFlower(canvas,5,70,100,30,80);
    canvas.fillStyle="#f00";
    canvas.fill();

    createFlower(canvas,6,200,100,30,80);
    canvas.fillStyle="#ff0";
    canvas.fill();

    createFlower(canvas,7,330,100,30,80);
    canvas.fillStyle="#f0f";
    canvas.fill();
    </script>
</body>
</html>
效果图如下所示:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值