HTML 5入門知識(三)

來源:互聯網
上載者:User

標籤:寬度   三角形   方法   combine   stroke   繪製矩形   樣式   情況   需要   

  <canvas>標籤

在網頁中使用canvas元素,像使用其他HTML標籤一樣簡單,然後利用JavaScript指令碼調用繪圖API,繪製各種圖形。canvas擁有多種繪製路徑、矩形、圓形、字元及添加圖形的方法。

  利用<canvas>標籤繪圖基本流程

1、擷取canvas對象

2、建立二維的繪圖內容物件

3、在canvas上繪製文字

連結:

https://cruxf.github.io/canvas1/text.html

 

   繪製基本的圖形

繪製直線:

moveTo()方法用於建立新的子路徑,並設定其起始點。lineTo()方法則設定了直線路徑的終點;而stroke()方法用於沿該路徑繪製一條直線,如:

 

 繪製矩形

 繪圖API為繪製矩形提供了兩個專用的方法:strokeRect()和fillRect(),可分別用於繪製矩形邊框和填充矩形地區。在繪製之前,往往需要先設定樣式,然後才能進行繪製。其中,strokeStyle可設定矩形邊框顏色,fillStyle可設定填充顏色,lineWidth可設定邊框寬度。

連結:

https://cruxf.github.io/canvas1/squares.html

 

 繪製圓形

在canvas中,所有基本圖形都是以路徑為基礎的,通常會調用linTo()、rect()和arc()等方法設定一些路徑。在最後使用fill()或stroke()方法進行繪製邊框或填充地區時,都是參照這個路徑來進行的。使用路徑繪圖基本分為如下3個步驟:

1、建立繪圖路徑。常用到beginPath()和closePath()方法,每次調用beginPath()方法都會產生一個新的子路徑。

2、設定繪圖樣式。使用strokeStyle屬性設定邊框顏色;使用lineWidth屬性設定邊框寬度;使用fllStyle屬性設定填充顏色。

3、繪製圖形。stroke()方法繪製邊框;fill()方法繪製填充地區。

 

連結:

https://cruxf.github.io/canvas1/circular.html

 

繪製三角形

繪製三角形同樣需要通過繪製路徑的方法來實現,基本步驟與繪製圓形差不多,如:

closePath()方法習慣性地放在路徑設定的最後一步,不要認為是路徑設定的結束,因為在此之後,還可以繼續設定路徑。

連結:

https://cruxf.github.io/canvas1/triangle.html

 

圖形組合

在canvas繪圖中,可以通過globalCompositeOperation屬性來設定如何在兩個圖形疊加的情況下組合顏色,用法如下:

參數value的合法值有12個,決定了12種圖形組合的類型,預設值是source-over。12種組合類別型如下:

1、copy:只繪製新圖形,刪除其他所有內容。

2、darker:在圖形重疊的地方,顏色由兩個顏色值相減後決定。

3、destination-atop:已有的內容只在它和新的圖形重疊的地方保留,新圖形繪製於內容之後。

4、destination-in:在新圖形以及已有畫布重疊的地方,已有內容都保留,所有其他內容成為透明的。

5、destination-out:在已有內容和新圖形不重疊的地方,已有內容保留,所有其他內容成為透明的。

6、destination-over:新圖形繪製於已有內容的後面。

7、lighter:在圖形重疊的地方,顏色由兩種顏色值的加值來決定。

8、source-atop:只有在新圖形和已有內容重疊的地方,才繪製新圖形。

9、source-in:只有在新圖形和已有內容重疊的地方,新圖形才繪製,所有其他內容成為透明的。

10、source-out:只有在和已有圖形不重疊的地方,才繪製新圖形。

11、source-over:新圖形繪製於已有圖形的頂部,這是預設行為。

12、xor:在重疊和正常繪製的其他地方,圖形都成為透明的。

函數RectArc(context)是用來繪製組合圖形的,使用方法translate()移動到不同的位置。

連結:

https://cruxf.github.io/canvas1/combinedgraph.html

 

繪製曲線

 在canvas中,繪圖API提供了多種曲線的繪製方法,主要的曲線繪製方法有arc()、arcTo()、quardraticCurveTo()和bezierCureveTo()。

使用arc()方法,如:

假如在繪製圓弧的時候用closePath()閉合繪製路徑,那麼就會產生一個半圓。

連結:

https://cruxf.github.io/canvas1/curve1.html

 

使用arcTo()方法:

 

arcTo()方法使使用切線的方法繪製弧線,使用兩個目標點和一個半徑,為當前的子路徑添加一條弧線。與arc()方法相比,同樣是繪製弧線,繪製思路和側重點不同。

連結:

https://cruxf.github.io/canvas1/curve2.html

 

使用quadraticCurveTo()方法:

二次樣條曲線是曲線的一種,canvas繪圖API專門提供了此曲線的繪製方法。quadraticCurveTo()方法為當前的子路徑添加一條二次樣條曲線。

連結:

https://cruxf.github.io/canvas1/curve3.html

 

使用bezierCurveTo()方法:

貝茲路徑是應用於二維圖形應用程式中的數學曲線。與二次樣條曲線相比,貝茲路徑使用了兩個控制點,從而可以建立更複雜的曲線圖形。

連結:

https://cruxf.github.io/canvas1/curve4.html

 

繪製文本

 通過<canvas>標籤,可以使用填充的方法繪製文本,也可以使用描邊的方法繪製文本,在繪製文本之前,還可以設定文字的字型樣式和對齊。繪製文本有兩種方法,即填充繪製方法fillText()和描邊繪製方法strokeText(),如:

 

有些時候,開發人員需要知道所繪製的文本寬度,以方便進行布局。繪圖API挺了擷取繪製文本寬度的方法,measureText()方法就是用來擷取文本的寬度。

連結:

https://cruxf.github.io/canvas1/text1.html

 

建立對象陰影:

連結:

https://cruxf.github.io/canvas1/text2.html

 

 繪製線性漸層:

使用漸層需要三個步驟:首先是建立漸層對象;其次是設定漸層顏色和過渡方式;最後將漸層對象賦值給填充樣式或描邊樣式。

線性漸層是指起始點和結束點之間線性插入顏色值,設定漸層顏色需要在漸層對象上使用addColorStop()方法,在漸層中的某一點添加一個顏色變化。如:

 連結:

https://cruxf.github.io/canvas1/lineargradient.html

 

 繪製放射狀漸層:

放射狀漸層是指兩個指定圓的圓周之間放射性地表現顏色過渡效果。如:

連結:

https://cruxf.github.io/canvas1/radialgradient.html

 

 繪製映像:

使用drawImage()方法可以將圖形添加到canvas畫布中,即繪製一幅映像,有3種方法。

1、把整個映像複製到畫布中,將其放置到指定的左上方座標位置,並且將每個映像像素映射成畫布座標系統的一個單元,如:

2、把整個映像複製到畫布中,但是允許用畫布單位來指定想要的映像寬度和高度,如:

3、使用複雜,暫且不提。

 

裁切圖形:

在路徑繪圖中使用了兩種繪圖方法,即用於繪製線條的stroke()方法和用於填充地區的fill()方法。關於路徑的處理,還有一種方法叫作裁切方法clip()。

裁切的地區是通過路徑來確定的,和繪製線條的方法和填充地區的方法一樣,也需要預先確定繪圖路徑,再執行裁切地區路徑方法clip(),這樣就確定了裁切地區,如:

連結:

https://cruxf.github.io/canvas1/drawimg.html

HTML 5入門知識(三)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.