一波HTML5 Canvas基礎繪圖實例程式碼集合_html5教學技巧
基本繪製
XML/HTML Code複製內容到剪貼簿
- var canvas = document.getElementBy>document
.getElementBy; >-
if (canvas.getContext) {
-
var context = canvas.Congetn('2d');
- // 線寬
- context.lineWidth = 4; 🎜>
// 畫筆顏色 -
-
context.strokeStyle = 'red';
// 填充色
-
context.fillStyle-
= "red";
// 帽型
- context.lineCap
= -
'butt';
// 開始路徑
context.beginPath();
- // 起點
- context.moveTo(10,10);
- // 終點
- context.lineTo(150,50);
- // 繪製
- context.stroke();
- }
-
- 長方形
XML/HTML Code
複製內容到剪貼簿
var canvas
=
- document.getElementBy>document.getElementBy; >
if (canvas.getContext) {
context.beginPath();
-
context.strokeRect(10,10,70,40);
-
// 矩形的另一種方式
-
context.rect(10,10.70,40);
-
context.stroke();
-
-
// 實心長方形
-
context.beginPath();
-
context.fillRect(10,10,70,40);
-
// 另一種方式實心長方形
-
context.beginPath();
-
context.rect(10,10,70,40);
-
context.fill();
-
}
-
- 圓形
XML/HTML Code
複製內容到剪貼簿
- var canvas = document.getElementBy>document
.getElementBy; >-
if (canvas.getContext) {
-
context.beginPath();
-
// 圓中心座標x, 圓中心座標Y, 圓弧半徑, 起始角度,終止角度,是否逆時針
-
// 第4個參數和第五個參數是要傳入的弧度,如果畫30角度,需要將其轉化為弧度 30 * Math.PI / 180
-
context.arc(100,100,70,0,130 * Math.PI / 180, true);
-
context.stroke();
-
context.fill();
-
}
圓角
XML/HTML Code複製內容到剪貼簿
-
var canvas = document.getElementBy>document
- .getElementBy; >
if (canvas.getContext) { -
context.beginPath(); -
context.moveTo(20,20); -
context.lineTo(70,20); -
// 為路徑畫弧度p1.x p1.y p2.x, p2.y 弧半徑, -
context.arcTo(120,30,120,70, 50); -
context.lineTo(120,120); -
context.stroke(); -
-
// 擦除canvas 畫板 -
context.beginPath(); -
context.fillRect(10,10,200,100); -
-
// 擦除區域 -
context.clearRect(30,30,50,50); -
}
二次貝塞爾曲線
XML/HTML Code
複製內容到剪貼簿
-
var canvas = document.getElementBy>
document-
.getElementBy; >
- if (canvas.getContext) {
- context.beginPath();
- context.moveTo(100,100);
- context.quadraticCurveTo(20,50,200,20);
- context.stroke();
}
三次貝塞爾曲線
XML/HTML Code
複製內容到剪貼簿
- var 勞動 = 文件.getElementById('canvas');
- if (canvas.getContext) {
- context.moveTo(68,130);
-
var cX1 = 20;
-
var cY1 = 10;
-
var cX2 = 268;
-
var cY2 = 10;
-
var endX = 268;
-
var endY = 170;
- context.bezierCurveTo(cX1, cY1, cX2, cY2, endX, endY);
- context.lines();
-
- // 利用剪輯指定繪圖區域,之後指定繪圖區域,只能在繪圖區域中進行繪圖擦歐總
- // 均勻圓
- context.arc(100,100,40,0, 360 * Math.PI/ 180 , true);
- // 限制區
- context.clip();
- //開始嘗試其他光源
- context.beginPath();
-
context.fillStyle = 'lightblue';
- //結果統計並未顯示
- context.fillRect(0,0,300,150);
- }
畫板進階使用
XML/HTML 程式碼將內容複製到剪貼簿
- var canvas = document.getElementBy>document
.getElementBy; >-
if (canvas.getContext) {
-
var context = canvas.Congetn('2d');
- /*
- * drawImage(image,dx,dy)
- * drawImage(image,dx,dy,dw,dh)
- * drawImage(image,sx,sy,sw,sh,dx,dy,dw,dh);
- * image 繪圖物件
- * dx dy canvas 的座標
- * dw,dh 表示 image 即將在canvas中繪圖的位置
- * sw,sh 表示image 所要繪圖的區域
- * sx,sy 所要繪圖的起始位置
- */
- var image = document context.drawImage(image, 0, 0);
- var img
- = new 新
img.src-
= 'images/1.jpg''images/1.jpg';
- img.onload = functionfunction
-
-
// drawImage
-
// 從 0,0 座標開始繪製
-
// context.drawImage(img,0,0);
-
// 從0,且0 開始,繪製完整圖至100,100 長寬
-
// context.drawImage(img, 0, 0, 100, 100);
-
// 截圖,50,50 到 100,100 從 260,130 開始繪製,並放置至 100,100 260,130 開始繪製,並放置至 100,100 260,130
- // context.drawImage(img, 50, 50, 100,100, 260, 130, 100,
-
// 利用getImageData 與 putImageData 繪圖
-
-
context.drawImage(img, 10, 10);
-
// 從畫板上取得像素資料
-
// 起始位置, 結束位置
-
var
- imgData = context
- // 將資料繪製至畫板指定位置座標
- context.putImageData(imgData,10,260);
- // 將所去的像素資料一部分,並畫到畫板上
- context.putImageData(imgData,200,260,50,50,100,100);
-
- // createImageData 建立像素
-
var imgData = context = context
= - context
-
// 以建立指定大小的空格物件
var imgData01 = context
= - context
-
for (i = = imgData01.width
* imgData01.height * 4; i =4) { -
// 紅色像素 -
imgData01.data[i 0] = 255; -
imgData01.data[i 1] = 0; -
imgData01.data[i 2] = 0; -
imgData01.data[i 3] = 255; -
-
} -
context.putImageData(imgData01, 10, 260); -
} -
}
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31