Canvas入门实例07:二次方贝塞尔曲线

本文示例canvas二次方贝塞尔曲线的画法。

 

canvas画二次方贝塞尔曲线的方法如下:

context.quadraticCurveTo(cpx, cpy, x, y)

其中,

   cpx 控制点横坐标

   cpy 控制点纵坐标

   x 终止点横坐标

   y 终止点纵坐标

这样说太抽象,还是来看一下二次方贝塞尔曲线的公式:

公式中可以看出,影响二次方贝塞尔曲线的因素主要有三个:

  1) 起始点P0  (t=0时)

  2) 控制点P1

  3) 终止点P2  (t=1时)

好吧,P1就是点(cpx,cpy),P2即(x,y),那么P0呢?自然是当前path的最后坐标咯!

还是很抽象?来看下二次方贝塞尔曲线的生成过程:

明白了?来画一下:

function drawScreen(){
        var context = theCanvas.getContext('2d');
        
        context.beginPath();
        context.strokeStyle = 'red';
        context.lineWidth = 2;
        context.moveTo(0, 100);
        //二次方贝塞尔曲线
        context.quadraticCurveTo(180,10, 200,100);
        context.stroke();
        context.closePath();
        
        //标出相关坐标及连线
        context.fillStyle = 'black';
        context.fillText('(180,10)', 185,10);
        context.fillText('(0,100)', 0,110);
        context.fillText('(200,100)', 200,100);
        context.beginPath();
        context.lineWidth = 1;
        context.moveTo(0,100);
        context.lineTo(180,10);
        context.lineTo(200,100);
        context.arc(180,10,2,0,2*Math.PI, false);
        context.fill();
        context.closePath();
}

 是不是这样的?很简单吧:

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值