canvas學習

開始

canvas介紹

       <canvas>是HTML5新增的元素,兼容性:IE9+、Firefox 1.5+Safari 2+Opera 9+ChromeiOS Safari 以及 Android WebKit 都在某種程度上支持<canvas>。canvas除了具備基本繪圖能力的 2D 上下文<canvas>還有一個 WebGL 3D 上下文。

 

學習

2d上下文

首先,需要在html裏指定一個canvas標籤,指定標籤的寬高,如:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>canvas學習</title>
</head>
<body>
  <canvas id="draw" width="400" height="400" ></canvas>
</body>
</html>

然後,我們獲取canvas元素,並獲取canvas元素的2d上下文:

var drawing = document.getElementById("draw"); //獲取canvas元素
var context = drawing.getContext("2d"); //獲取2d上下文

接下來,我們就可以用canvas的2d上下文的api來繪製矩形:

context.strokeStyle = "red";  //填充顏色
context.fillStyle = "#0000ff"; //描邊顏色
context.fillRect(10, 10, 50, 50) //繪製矩形
context.strokeRect(100, 100, 50, 50); //描邊矩形

context.fillStyle = "#ff0000"; //描邊顏色
context.fillRect(30, 30, 50, 50); //繪製矩形
context.clearRect(40, 40, 10, 10);  //繪製空白矩形

繪製的效果如圖:

       接下來,我們使用canvas提供的2d上下文api來繪製路徑,繪製路徑比繪製矩形要稍微複雜一點,主要思路就是我繪製一條一條的路徑,但是在繪製的時候不連線,只有最後在調用stroke方法的時候纔會連線

context.beginPath() //繪製路徑,只畫線,stroke的時候繪製。
context.arc(100, 100, 99, 0, 2 * Math.PI, false); //繪製圓

context.moveTo(194, 100)//移動點,不繪製,防止繪製多餘線條。
context.arc(100, 100, 94, 0, 2 * Math.PI, false) //繪製圓

context.translate(100, 100) //改變座標原點
context.rotate(1); //先旋轉再 繪製,旋轉之前繪製的都無效。
context.moveTo(0, 0) //移動點,不繪製
context.lineTo(0, 15) //從上一點繪製到該點

context.moveTo(0, 0) // 移動點,不繪製
context.lineTo(35, 0) //從上一點繪製到該點

context.stroke() //開始繪製

繪製效果如下:

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