canvas入門(五)

這一節主要給大家分享兩個曲線————二次貝塞爾曲線和三次貝塞爾曲線

二次貝塞爾曲線示例

<script type="text/javascript">
window.onload = function(){
  var canvas = document.getElementsByTagName('canvas')[0];
  var context = canvas.getContext("2d");
  context.beginPath();
  context.moveTo(50, 50);
  context.quadraticCurveTo(100, 100, 200, 50);
  context.stroke();
  context.closePath();
}
</script>

運行結果如下
在這裏插入圖片描述
參數細解
context.moveTo(a, b); 繪製起點
context.quadraticCurveTo(c, d, e, f); 前兩個參數控制曲線的彎曲程度,c,d 後兩個參數控制曲線的終點e,f

演示網址推薦

blogs.sitepointstatic.com/examples/tech/canvas-curves/quadratic-curve.html

三次貝塞爾曲線示例

<script type="text/javascript">
window.onload = function(){
  var canvas = document.getElementsByTagName('canvas')[0];
  var context = canvas.getContext("2d");
  context.beginPath();
  context.moveTo(50, 50);
  context.bezierCurveTo(100, 100, 150,0,200, 50);
  context.stroke();
  context.closePath();
}
</script>

運行結果如下
在這裏插入圖片描述
參數細解
context.moveTo(a, b); 繪製起點
context.bezierCurveTo(c, d, e, f ,g ,h); c,d控制第一次彎曲程度,e,f控制第二次彎曲程度,g,h終點

演示網址推薦

http://blogs.sitepointstatic.com/examples/tech/canvas-curves/bezier-curve.html

本節最後一個知識點,清空畫布clearRect
在上述代碼最後新添一行代碼context.clearRect(0,0,canvas.width,canvas.height);

<script type="text/javascript">
window.onload = function(){
  var canvas = document.getElementsByTagName('canvas')[0];
  var context = canvas.getContext("2d");
  context.beginPath();
  context.moveTo(50, 50);
  context.bezierCurveTo(100, 100, 150,0,200, 50);
  context.stroke();
  context.closePath();
  context.clearRect(0,0,canvas.width,canvas.height); 
}
</script>

運行之後你就會發現畫布空空如也
參數細解
context.clearRect(a,b,c,d); a,b起點,c從起點開始向右寬度,d從起點開始向下高度;
既然有clearRect,那是不是自然有rect,這個留給大家自己去學習
最後給大家分享一個小細節,學習到的代碼中的moveTo其實可以換成lineTo,實現的效果與之前的一模一樣。
下一節將會爲大家分享一些canvas中的旋轉,偏移之類的效果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章