无涯教程需要以下方法在画布上绘制二次曲线-
序列号 | 方法和描述 |
---|---|
1 |
beginPath() 此方法重置当前路径。 |
2 |
moveTo(x,y) 此方法使用给定的点创建一个新的子路径。 |
3 |
closePath() 此方法将当前子路径标签为已关闭,并以与新关闭的子路径的起点和终点相同的点开始新的子路径。 |
4 |
fill() 此方法使用当前的填充样式填充子路径。 |
5 |
stroke() 此方法以当前笔触样式描边子路径。 |
6 |
quadraticCurveTo(cpx,cpy,x,y) 此方法将给定点添加到当前路径,并通过具有给定控制点的二次Bezier曲线连接到前一条路径。 |
quadraticCurveTo()方法中的x和y参数是终点的坐标。 cpx和cpy是控制点的坐标。
以下是一个简单的示例,该示例利用上述方法绘制了二次曲线。
<!DOCTYPE HTML> <html> <head> <style> #test { width: 100px; height:100px; margin: 0px auto; } </style> <script type="text/javascript"> function drawShape() { //使用 DOM 获取画布元素 var canvas=document.getElementById('mycanvas'); //连接数据库凭据 if (canvas.getContext) { //确保不支持画布时不执行 var ctx=canvas.getContext('2d'); //绘制形状 ctx.beginPath(); ctx.moveTo(75,25); ctx.quadraticCurveTo(25,25,25,62.5); ctx.quadraticCurveTo(25,100,50,100); ctx.quadraticCurveTo(50,120,30,125); ctx.quadraticCurveTo(60,120,65,100); ctx.quadraticCurveTo(125,100,125,62.5); ctx.quadraticCurveTo(125,25,75,25); ctx.stroke(); } else { alert('You need Safari or Firefox 1.5+ to see this demo.'); } } </script> </head> <body id="test" onload="drawShape();"> <canvas id="mycanvas"></canvas> </body> </html>
上面的示例将绘制以下形状-