HTML5动画----canvas基础2(绘制贝塞尔曲线)

贝塞尔曲线图能够绘制出复杂的图形,主要用于数值分析领域或者产品设计和动画制作领域

绘制二次方曲线:context.quadraticCurveTo(cpx,cpy,x,y)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        
        <canvas id="myCanvas" style="border: solid 1px;" width="300" height="200"></canvas>
        <script type="text/javascript">
            var c = document.getElementById("myCanvas");
            var context = c.getContext('2d');
            //绘制二次方贝塞尔曲线context.quadraticCurveTo(cpx,cpy,x,y)
            context.strokeStyle="dark";
            context.beginPath();
            context.moveTo(0,200);
            context.quadraticCurveTo(75,50,300,200);//cpx,cpy,x,y  cpx,cpy--(控制点坐标)x,y(终点坐标)
            context.stroke();
            context.globalCompositeOperation = "source-over";
            //绘制的直线用于表示曲线上的控制点和控制线,两直线的交点为控制点
            context.strokeStyle = "#ff00ff";
            context.beginPath();
            context.moveTo(75,50);
            context.lineTo(0,200);
            context.moveTo(75,50);
            context.lineTo(300,200);
            context.stroke();
        </script>
    </body>
</html>

绘制三次方曲线:context.bezierCurveTo(cp1x,cp1y,cp2x,cp2y,x,y)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        
        <canvas id="myCanvas" style="border: solid 1px;" width="300" height="200"></canvas>
        <script type="text/javascript">
            var c = document.getElementById("myCanvas");
            var context = c.getContext('2d');
            //绘制三次方贝塞尔曲线context.bezierCurveTo(cp1x,cp1y,cp2x,cp2y,x,y)
            context.strokeStyle="dark";
            context.beginPath();
            context.moveTo(0,200);
            context.bezierCurveTo(25,50,75,50,300,200);//cp1x,cp1y,cp2x,cp2y,x,y  cp1x,cp1y,cp2x,cp2y--(控制点坐标)x,y(终点坐标)
            context.stroke();
            context.globalCompositeOperation = "source-over";
            //绘制的直线用于表示曲线上的控制点和控制线,控制点1(25,50)  控制点2(75,50) 
            context.strokeStyle = "#ff00ff";
            context.beginPath();
            context.moveTo(25,50);
            context.lineTo(0,200);
            context.moveTo(75,50);
            context.lineTo(300,200);
            context.stroke();
        </script>
    </body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值