搜尋
首頁web前端H5教程24個canvas基礎知識小結_html5教學技巧

現把canvas的知識點總結如下,以便隨時查閱。

1、填滿矩形 fillRect(x,y,width,height);

2、繪製長方形邊框 strokeRect(x,y,width,height);

3、擦除長方形 clearRect(x,y,width,height);

4、填滿樣式 fillStyle="red"; 樣式可以是顏色、漸層和影像。

5、描邊樣式 strokeStyle="red";

6、描邊線條的寬度 lineWidth=4;

7、線端形狀 lineCap="butt"; butt(對接)/round(圓)/square(方),預設為butt;

8、線相交樣式 lineJoin="miter"; miter(尖角)/round(圓角)/bevel(斜角),預設尖角;

9、開始繪製路徑 beginPath();

10、結束路徑 closePath(); 建立路徑後,如果想要繪製一條連接到路徑起點的線條,可以呼叫closePath();

11、繪製圓弧 arc(x,y,radius,startAngle,endAngle,true/false);

12、繪製弧線 arcTo(x1,y1,x2,y2,radius) 從上一點開始繪製一天弧線,到x2,y2為止,並且以給定的半徑radius穿過x1,y1;

13、moveTO(x,y); 將繪圖遊標移到(x,y),不畫線

14、lineTo(x,y); 上一點開始繪製一條直線

15、二次貝塞爾曲線: quadraticCurveTo(cx,cy,x,y); 從上一點開始繪製二次曲線,到x,y為止,cx,cy作為控制點。

16、三次貝塞爾曲線: bezierCurveTo(cx1,cy1,cx2,cy2,x,y); 從上一點開始繪製二次曲線,到x,y為止,cx1,cy1和cx2,cy2作為控制點。

17、rect(x,y,width,height);從點x,y開始繪製矩形,寬度和高度分別由width和height指定。這個方法繪製的是矩形路徑,而不是獨立形狀。

18、繪製文字:

  (1) 填充文字:fillText("hello",x,y,width);width為可選的最大像素寬度,如果文字大於最大寬度,則文字會收縮以適應最大寬度。
  (2) 文字描邊:strokeText("hello",x,y,width);width為可選的最大像素寬度。
  (3) 文字樣式:font="bold 14px Arial";
  (4) 水平文字對齊:textAlign='start'; // start, end, left,right, center。預設值:start。以文字的起始點(x,y)為基點的縱軸進行對齊。
  (5) 垂直文字對齊:textBaseline='alphabetic'; //top, hanging, middle,alphabetic, ideographic, bottom。預設值:alphabetic。以文字的起始點(x,y)為基點的橫軸進行對齊。
  (6) 文字的寬度:var text="hello"; var length=context.measureText(text);參數text為所需繪製的文字

19、變換

  (1) rotate(angle):圍繞原點旋轉影像angle弧度。
也可以使用transform(Math.cos(angle*Math.PI/180),Math.sin(angle*Math.PI/180),-Math.sin(angle*Math.PI/180),Math. cos(angle*Math.PI/180),0,0);
  (2) scale(x,y):縮放影像。也可以使用transform(x,0,0,y,0,0);
  (3) translate(x,y):將座標原點移到x,y,執行這個變換之後,座標0,0會變成之前由x,y表示的點。也可以使用transform(1,0,0,1,x,y);
  (4) transform(, , ,,x, y);
(5) setTransform(, , ,,x, y);將變換矩陣重設為預設狀態,然後再呼叫transform();

20、圖形組合


複製程式碼
程式碼如下:

context.fillStyle="blue";
context.fillRect(10,10,100,100);
context.globalCompositeOperation='lighter'; 可選值如/* */內。
context.fillStyle="red";
context.arc(110,60,50,0,Math.PI*2,false);
context.fill();
/*
source-over(預設值):
destination-over:在原有圖形之下繪製新圖形
source-in:新圖形與原有圖形作in運算,只顯示新圖形中與原有圖形相重疊的部分
destination-in:原有圖形與新圖形作in運算,只顯示新圖形中與原有圖形相重疊的部分
source-out:新圖形與原有圖形作out運算,只顯示新圖形中與原有圖形不重疊的部分
destination-out:新圖形與原有圖形作out運算,只顯示新圖形中與原有圖形不重疊的部分
source- atop:只繪製新圖形中與原有圖形重疊的部分和未被重疊的原有圖形
destination-atop:只繪製原有圖形中被新圖形重疊的部分和新圖形的其他部分
lighter:原有圖形與新圖形皆繪製,重疊部分做加色處理
xor:只繪製新圖形與原有圖形不重疊的部分,重疊部分變透明
copy:只繪製新圖形
*/

21、繪製圖形陰影


複製程式碼
程式碼如下:

context.shadowOff的橫向位移量
context.shadowOffsetY=10; //陰影的縱向位移量
context.shadowColor='rgba(100,100,100,0.5)'; //陰影的顏色
context.shadowBlur=7; //陰影的模糊範圍

22、繪製、平鋪、裁切影像


複製程式碼
程式碼如下:

contextdrawImage(image,Image(image,x );
context.drawImage(image,x,y,w,h);
context.drawImage(image,sx,sy,sw,sh,dx,dy,dw,dh);sx,sy和sw,sh為來源影像的複製區域的起始座標和高度,dx,dy和dw,dh為複製後的區域的目標座標和高度。
context.createPattern(image,type);影像平鋪,參數可以為:no-repeat,repeat-x,repeat-y,repeat;
context.clip(); //裁切功能

範例:


複製程式碼
程式碼如下:

image=new Image();建立Image物件
image.src="../images/wukong.gif";
var test=context.createPattern(image,'repeat-y');//createPattern設定平鋪效果,
context.fillStyle=test;
context.fillRect(0,0,400,400);
image.onload=function() { //此方法的作用是,如果圖片是比較大的網頁圖片文件,防止圖片全部裝載完畢才看見該圖像,這樣就可以一邊裝載一邊繪製了。
drawImg(context,image);
}
function drawImg(context,image){
//繪製原始影像
context.drawImage(image,10,10,125
context.drawImage(image,10,10,125,125);context.drawImage(image,20,0,90,100,150,10,125,125);
context.rect(20,20,80,80);
context.clip();
context.drawImage(image,0,0,200,200);
}

23、保存、恢復

contex.save();將目前狀態儲存到堆疊中。注意:儲存的只是對繪製圖形的設定和變換,不會儲存繪製圖形的內容。
context.restore();從堆疊中取出先前儲存的圖形狀態
可以套用的場合:
(1)影像或圖形變形
(2)影像裁切
(3)改變圖形上下文時屬性時:fillStyle,font,globalAlpha,globalComposite-Operation,lineCap,lineJoin,lineWidth,miterLimit,shadowBlur,shadowColor,
shadowOffsetX,shadowOffsetY,strokeStyleBase>

24、線性漸層


複製程式碼程式碼如下:
var gcontext.create.created yStart,xEnd,yEnd);
var g1=context.createRadialGradient(xStart,yStrat,radiusStrat,xEnd,yEnd,radiusEnd);
g.addColorStop(0,'red');g.g. (0,'green');
context.fillStyle=g;
context.fillRect(0,0,200,200);


陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
理解H5:含義和意義理解H5:含義和意義May 11, 2025 am 12:19 AM

H5是HTML5,是HTML的第五個版本。 HTML5提升了網頁的表現力和交互性,引入了語義化標籤、多媒體支持、離線存儲和Canvas繪圖等新特性,推動了Web技術的發展。

H5:可訪問性和網絡標準合規性H5:可訪問性和網絡標準合規性May 10, 2025 am 12:21 AM

無障礙訪問和網絡標準遵循對網站至關重要。 1)無障礙訪問確保所有用戶都能平等訪問網站,2)網絡標準遵循提高網站的可訪問性和一致性,3)實現無障礙訪問需使用語義化HTML、鍵盤導航、顏色對比度和替代文本,4)遵循這些原則不僅是道德和法律要求,還能擴大用戶群體。

HTML中的H5標籤是什麼?HTML中的H5標籤是什麼?May 09, 2025 am 12:11 AM

HTML中的H5標籤是第五級標題,用於標記較小的標題或子標題。 1)H5標籤幫助細化內容層次,提升可讀性和SEO。 2)結合CSS可定製樣式,增強視覺效果。 3)合理使用H5標籤,避免濫用,確保內容結構邏輯性。

H5代碼:Web結構的初學者指南H5代碼:Web結構的初學者指南May 08, 2025 am 12:15 AM

HTML5構建網站的方法包括:1.使用語義化標籤定義網頁結構,如、、等;2.嵌入多媒體內容,使用和標籤;3.應用表單驗證和本地存儲等高級功能。通過這些步驟,你可以創建一個結構清晰、功能豐富的現代網頁。

H5代碼結構:組織內容以實現可讀性H5代碼結構:組織內容以實現可讀性May 07, 2025 am 12:06 AM

通過合理的H5代碼結構可以讓頁面在眾多內容中脫穎而出。 1)使用語義化標籤如、、等組織內容,使結構清晰。 2)通過CSS佈局如Flexbox或Grid控制頁面在不同設備上的呈現效果。 3)實現響應式設計,確保頁面在不同屏幕尺寸上自適應。

H5與較舊的HTML版本:比較H5與較舊的HTML版本:比較May 06, 2025 am 12:09 AM

HTML5(H5)與舊版本HTML的主要區別包括:1)H5引入了語義化標籤,2)支持多媒體內容,3)提供離線存儲功能。 H5通過新標籤和API增強了網頁的功能和表現力,如和標籤,提高了用戶體驗和SEO效果,但需注意兼容性問題。

H5與HTML5:澄清術語和關係H5與HTML5:澄清術語和關係May 05, 2025 am 12:02 AM

H5和HTML5的區別在於:1)HTML5是網頁標準,定義結構和內容;2)H5是基於HTML5的移動網頁應用,適用於快速開發和營銷。

HTML5特徵:H5的核心HTML5特徵:H5的核心May 04, 2025 am 12:05 AM

HTML5的核心特性包括語義化標籤、多媒體支持、表單增強和離線存儲與本地存儲。 1.語義化標籤如、等提高了代碼可讀性和SEO效果。 2.多媒體支持通過和標籤簡化了嵌入媒體內容的過程。 3.表單增強引入了新的輸入類型和驗證屬性,簡化了表單開發。 4.離線存儲和本地存儲通過ApplicationCache和localStorage等提高了網頁性能和用戶體驗。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境