context.quadraticCurveTo() context.bezierCurveTo()详解

使用quadraticCurveTo()描绘2维的贝塞尔曲线,之前的坐标点与当前坐标点之间以2维贝塞尔曲线连接。参数cpx与cpy表示贝塞尔曲线的控制点坐标,参数x,y为新追加的坐标点,指定的坐标点都以canvas元素的左上端为基准点。

什么是贝塞尔曲线

所谓的贝塞尔就是根据控制点算出的曲线,当需要曲线时一般使用贝塞尔曲线绘画。

quadraticCurveTo(cpx, cpy, x, y)方法由1个控制点与1个追加坐标点绘制2维贝塞尔曲线。 context . bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y)方法则是由2个控制点和1个追加坐标点绘制3维贝塞尔曲线。贝塞尔曲线

绘制2维贝塞尔曲线的步骤如下:

参数值及其说明
说明实例
cpx 控制点的x坐标值。  
cpy 控制点的y坐标值
x 从当前坐标延伸2维贝塞尔曲线的x坐标。
h 从当前坐标延伸2维贝塞尔曲线的y坐标。

JavaScript:

var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");

ctx.beginPath();

context.moveTo(100,20);

context.quadraticCurveTo(150,100);

context.stroke();

参数值及其说明
说明实例
x 绘制当前路径开始点的x坐标值。  
y 绘制当前路径开始点的y坐标值

使用HTML+JavaScript的方法,绘画例

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>使用canvas绘制图像</title>

<script type="text/javascript">

<!--

function test() {

//建立绘画环境

var canvas = document.getElementById('sample1');

if (canvas.getContext) {

var context = canvas.getContext('2d');

//以下指定具体的绘画内容

context.beginPath(); //开始新的路径

context.moveTo(60,120);//路径的开始位置的坐标

context.quadraticCurveTo(150,20,250,100); //路径的轮廓

context.stroke(); //显示当前路径的轮廓

}

 

}

//-->

</script>

</head>

<body onLoad="test()">

<h2>使用canvas绘制图像</h2>

<canvas width="300" height="150" id="sample1" style="">

只有支持canvas元素的浏览器才能正常显示图像。

</canvas>

</body>

</html>

原文地址:https://www.cnblogs.com/mysearchblog/p/5768835.html