欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

HTML DOM CanvasRenderingContext2D 對(duì)象

CanvasRenderingContext2D 對(duì)象

CanvasRenderingContext2D 對(duì)象提供了一組用來在畫布上繪制的圖形函數(shù)?捎玫暮瘮(shù)非常豐富,它們可以分為以下幾類:

繪制矩形

可以使用 strokeRect()fillRect() 來繪制矩形的邊框和填充矩形。此外,可以使用 clearRect() 來清除矩形所定義的區(qū)域。

繪制圖像

在 Canvas API 中,圖像通過表示 HTML <img> 元素Image 對(duì)象來指定,或者通過使用 Image() 構(gòu)造函數(shù)所創(chuàng)建的屏幕外圖像來指定。一個(gè) Canvas 對(duì)象也可以用作圖像來源。

可以使用 drawImage() 方法在一個(gè)畫布上繪制圖像;而更為常見的形式是,允許源圖像的任意矩形區(qū)域縮放或繪制到畫布上。

創(chuàng)建和渲染路徑

畫布的一項(xiàng)強(qiáng)大功能是,它能夠從基本的繪圖操作來構(gòu)建圖形,然后,繪制這些圖形的框架(勾勒它們)或者給這些圖形的內(nèi)容涂色(填充它們)。累計(jì)起來的操作統(tǒng)一叫做當(dāng)前路徑。一個(gè)畫布只保持一條當(dāng)前路徑。

為了構(gòu)建一個(gè)多條線段所構(gòu)成的一個(gè)連續(xù)的封閉形狀,繪制操作之間需要一個(gè)連接點(diǎn)。為此,畫布保存了一個(gè)當(dāng)前位置。畫布繪制操作顯式地使用這個(gè)位置作為它們的起始點(diǎn),并且更新它直到到達(dá)終點(diǎn)?梢园堰@看做是使用鋼筆或紙來繪畫:當(dāng)您完成了一條具體的線段或曲線,當(dāng)前位置就是完成這一操作之后鋼筆所停留的點(diǎn)。

可以在當(dāng)前路徑中創(chuàng)建一系列互相不連續(xù)的形狀,它們都使用同樣的繪制參數(shù)一起渲染。要分隔開這些形狀,請(qǐng)使用 moveTo() 方法,這個(gè)方法把當(dāng)前的位置移動(dòng)到一個(gè)新的位置而不添加一條連接線段。當(dāng)您這么做的時(shí)候,就創(chuàng)建了一條新的路徑,這是用來表示一組連接起來的操作的畫布術(shù)語。

一旦您所想要的路徑形成了,可以使用 stroke() 繪制其邊框,使用 fill() 來繪制其內(nèi)容;或者兩件事都做。

可用的圖形操作有:用來繪制直線的 lineTo(),用于繪制矩形的 rect(),用于繪制部分圓形的 arc()arcTo(),以及用于繪制曲線的 bezierCurveTo()quadraticCurveTo()。

除了勾勒和填充,還可以使用當(dāng)前路徑來指定繪制時(shí)畫布所使用的剪切區(qū)域。這個(gè)區(qū)域中的像素是顯示的,區(qū)域之外的像素是不顯示的。剪切區(qū)域是累加性的;調(diào)用 clip() 可以將當(dāng)前路徑和當(dāng)前繪制區(qū)域取交集,產(chǎn)生一個(gè)新的區(qū)域。不幸的是,沒有直接的方法把當(dāng)前的剪切區(qū)域設(shè)置為畫布的范圍;要做到這一點(diǎn),必須保存和恢復(fù)畫布的整個(gè)圖形狀態(tài)。

如果任何子路徑中的線段沒有形成一個(gè)閉合的圖形,fill()clip() 操作通過添加一條從子路徑的起點(diǎn)到終點(diǎn)的、虛擬(勾勒的時(shí)候看不到)線段來閉合它?蛇x的是,也可以調(diào)用 closePath() 來顯示地添加這條線段。

顏色、漸變和模式

在填充和勾勒路徑時(shí),可用 fillStyle 和 strokeStyle 屬性來指定線段或者繪制區(qū)域如何繪制。CSS 樣式顏色字符串,以及描述漸變和模式的 CanvasGradientCanvasPattern 都是可以接受的。要?jiǎng)?chuàng)建一個(gè)漸變,請(qǐng)使用 createLinearGradient()createRadialGradient()。要?jiǎng)?chuàng)建一個(gè)模式,請(qǐng)使用 createPattern()。

要用 CSS 表示法來指定不透明的顏色,就采用 "#RRGGBB" 形式的字符串,其中 RR、GG 和 BB 分別是指定顏色的紅色、綠色和藍(lán)色成分的十六進(jìn)制,其值都在 00 和 FF 之間。例如,完全紅色的值是 "#FF0000"。要指定部分透明的顏色,請(qǐng)使用一個(gè) "rgba(R,G,B,A)" 形式的字符串。在這種形式中,R、G 和 B 將顏色的紅色、綠色和藍(lán)色成分指定為 0 到 255 之間的十進(jìn)制整數(shù),并且 A 把 alpha(不透明)成分指定為 0.0 (完全透明)和 1.0 (完全不透明)之間的一個(gè)浮點(diǎn)數(shù)值。例如,半透明的完全紅色為 "rgba(255,0,0,0.5)"。

線條寬度、線帽和線條連接

畫布為調(diào)整各種線條顯示提供了幾個(gè)選項(xiàng)。可以使用 lineWidth 屬性來指定線條的寬度,用 lineCap 屬性來指定的端點(diǎn)如何繪制,并且用 lineJoin 屬性來指定線條如何連接。

坐標(biāo)空間和轉(zhuǎn)換

默認(rèn)情況下,一個(gè)畫布的坐標(biāo)空間使用畫布的左上角 (0,0) 作為原點(diǎn),x 值向右增加,y 值向下增加。這個(gè)坐標(biāo)空間中的一個(gè)單位通常轉(zhuǎn)換為像素。

然后,可以轉(zhuǎn)換坐標(biāo)空間,產(chǎn)生你在繪圖操作中所指定的用來移動(dòng)、縮放或旋轉(zhuǎn)的任何坐標(biāo)或范圍。這通過 translate()scale()rotate() 方法來實(shí)現(xiàn),它們會(huì)對(duì)畫布的變換矩陣產(chǎn)生影響。由于坐標(biāo)空間可以像這樣轉(zhuǎn)換,您傳遞給 lineTo() 這樣方法的坐標(biāo)可能無法用像素來度量。因此,Canvas API 使用浮點(diǎn)數(shù)而不是整數(shù)。

變換按照它們被指定的順序相反的順序來處理。例如,調(diào)用 scale() 之后,緊接著調(diào)用 translate(),這會(huì)首先變換坐標(biāo)系統(tǒng),然后再縮放。

組合

通常,圖形是一個(gè)繪制于另一個(gè)的上面,新的圖形使得在它之前繪制在其下方的圖形變得模糊。這是一個(gè)畫布中的默認(rèn)行為。然而,您可以通過為 globalCompositeOperation 屬性指定不同的值來執(zhí)行很多有趣的操作,范圍包括從 XOR 操作到增量或減暗圖形區(qū)域。

陰影

Canvas API 包含了可以自動(dòng)為您所繪制的任何圖形添加下拉陰影的屬性。然而,在編寫本參考頁時(shí),Safari 是唯一實(shí)現(xiàn)了這一 API 的瀏覽器。陰影的顏色可用 shadowColor 屬性來指定,并且可以通過 shadowOffsetX 和 shadowOffsetY 屬性來改變。另外,應(yīng)用到陰影邊緣的羽化量也可以使用 shadowBlur 屬性來設(shè)置。

保存圖形狀態(tài)

save()restore() 方法允許你保存和恢復(fù)一個(gè) CanvasRenderingContext2D 對(duì)象的狀態(tài)。save() 把當(dāng)前狀態(tài)推入到棧中,而 restore() 從棧的頂端彈出最近保存的狀態(tài),并且根據(jù)這些存儲(chǔ)的值來設(shè)置當(dāng)前繪圖狀態(tài)。

CanvasRenderingContext2D 對(duì)象的所有屬性(除了畫布的屬性是一個(gè)常量)都是保存的狀態(tài)的一部分。變換矩陣和剪切區(qū)域也是這個(gè)狀態(tài)的一部分,但是當(dāng)前路徑和當(dāng)前點(diǎn)并不是。

CanvasRenderingContext2D 對(duì)象的屬性

canvas 屬性

這個(gè)環(huán)境可以繪制于其上的 Canvas 元素。

fillStyle 屬性

用來填充路徑的當(dāng)前的顏色、模式或漸變。這個(gè)屬性可以設(shè)置為一個(gè)字符串或者一個(gè) CanvasGradient 對(duì)象CanvasPattern 對(duì)象。當(dāng)設(shè)置為一個(gè)字符串時(shí),它被解析為一個(gè) CSS 顏色值并且用來進(jìn)行實(shí)心填充。當(dāng)設(shè)置為一個(gè) CanvasGradient 或 CanvasPattern 對(duì)象,通過使用指定的漸變或模式來完成填充。

globalAlpha 屬性

指定在畫布上繪制的內(nèi)容的不透明度。這個(gè)值的范圍在 0.0(完全透明)和 1.0(完全不透明)之間。默認(rèn)值為 1.0。

globalCompositeOperation 屬性

指定顏色如何與畫布上已有的顏色組合(合成)。如需更多細(xì)節(jié),請(qǐng)參閱 globalCompositeOperation 屬性參考頁。

lineCap 屬性

指定線條的末端如何繪制。合法的值是 "butt"、"round" 和 "square"。默認(rèn)值是 "butt"。如需更多細(xì)節(jié),請(qǐng)參閱 lineCap 屬性參考頁。

lineJoin 屬性

指定兩條線條如何連接。合法的值是 "round"、"bevel" 和 "miter"。默認(rèn)值是 "miter"。如需更多細(xì)節(jié),請(qǐng)參閱 lineJoin 屬性參考頁

lineWidth 屬性

指定了畫筆(繪制線條)操作的線條寬度。默認(rèn)值是 1.0,并且這個(gè)屬性必須大于 0.0。較寬的線條在路徑上居中,每邊有線條寬的一半。

miterLimit 屬性

當(dāng) lineJoin 屬性為 "miter" 的時(shí)候,這個(gè)屬性指定了斜連接長度和線條寬度的最大比率。如需更多細(xì)節(jié),請(qǐng)參閱 miterLimit 屬性參考頁

shadowBlur 屬性

指定羽化陰影的程度。默認(rèn)值是 0。陰影效果得到 safari 的支持,但是并沒有得到 FireFox 1.5 或 Opera 9 的支持。

shadowColor 屬性

把陰影的顏色指定為一個(gè) CSS 字符串或 Web 樣式字符串,并且可以包含一個(gè) alpha 部分來表示透明度。默認(rèn)值是 black。陰影效果得到 Safari 的支持,但是并沒有得到 FireFox 1.5 或 Opera 9 的支持。

shadowOffsetX, shadowOffsetY 屬性

指定陰影的水平偏移和垂直偏移。較大的值使得陰影化的對(duì)象似乎漂浮在背景的較高位置上。默認(rèn)值是 0。陰影效果得到 Safari 的支持,但是并沒有得到 FireFox 1.5 或 Opera 9 的支持。

strokeStyle 屬性

指定了用于畫筆(繪制)路徑的顏色、模式和漸變。這個(gè)屬性可能是一個(gè)字符串,或者一個(gè) CanvasGradient 對(duì)象CanvasPattern 對(duì)象。如果是一個(gè)字符串,它被解析為一個(gè) CSS 顏色值,并且畫筆用所得的實(shí)色來繪制。如果這個(gè)屬性的值是一個(gè) CanvasGradient 對(duì)象或 CanvasPattern 對(duì)象,畫筆使用這個(gè)漸變或模式來實(shí)現(xiàn)。

CanvasRenderingContext2D 對(duì)象的方法

方法 描述
arc() 用一個(gè)中心點(diǎn)和半徑,為一個(gè)畫布的當(dāng)前子路徑添加一條弧線。
arcTo() 使用目標(biāo)點(diǎn)和一個(gè)半徑,為當(dāng)前的子路徑添加一條弧線。
beginPath() 開始一個(gè)畫布中的一條新路徑(或者子路徑的一個(gè)集合)。
bezierCurveTo() 為當(dāng)前的子路徑添加一個(gè)三次貝塞爾曲線。
clearRect() 在一個(gè)畫布的一個(gè)矩形區(qū)域中清除掉像素。
clip() 使用當(dāng)前路徑作為連續(xù)繪制操作的剪切區(qū)域。
closePath() 如果當(dāng)前子路徑是打開的,就關(guān)閉它。
createLinearGradient() 返回代表線性顏色漸變的一個(gè) CanvasGradient 對(duì)象。
createPattern() 返回代表貼圖圖像的一個(gè) CanvasPattern 對(duì)象。
createRadialGradient() 返回代表放射顏色漸變的一個(gè) CanvasGradient 對(duì)象。
drawImage() 繪制一幅圖像。
fill() 使用指定顏色、漸變或模式來繪制或填充當(dāng)前路徑的內(nèi)部。
fillRect() 繪制或填充一個(gè)矩形。
lineTo() 為當(dāng)前的子路徑添加一條直線線段。
moveTo() 設(shè)置當(dāng)前位置并開始一條新的子路徑。
quadraticCurveTo() 為當(dāng)前路徑添加一條貝塞爾曲線。
rect() 為當(dāng)前路徑添加一條矩形子路徑。
restore() 為畫布重置為最近保存的圖像狀態(tài)。
rotate() 旋轉(zhuǎn)畫布。
save() 保存 CanvasRenderingContext2D 對(duì)象的屬性、剪切區(qū)域和變換矩陣。
scale() 標(biāo)注畫布的用戶坐標(biāo)系統(tǒng)。
stroke() 沿著當(dāng)前路徑繪制或畫一條直線。
strokeRect() 繪制(但不填充)一個(gè)矩形。
translate() 轉(zhuǎn)換畫布的用戶坐標(biāo)系統(tǒng)。

參閱

HTML DOM Canvas 對(duì)象

HTML5 <canvas> 標(biāo)簽

HTML5 Canvas 教程

HTML5 Canvas 參考手冊(cè)