1. 程式人生 > >關於canvas的方法和屬性

關於canvas的方法和屬性

獲取 Canvas 物件
獲取到 Canvas 的上下文環境的語法為:
canvas.getContext(contextType, contextAttributes);
上下文型別(contextType):
2d(本小冊所有的示例都是 2d 的):代表一個二維渲染上下文
webgl(或"experimental-webgl"):代表一個三維渲染上下文
webgl2(或"experimental-webgl2"):代表一個三維渲染上下文;這種情況下只能在瀏覽器中實現 WebGL 版本2 (OpenGL ES 3.0)。

var canvas = document.getElementById("canvas"); 
var context = canvas.getContext("2d"); 

繪製路徑

方法 屬性 描述
fill() 填充路徑
stroke() 描邊
arc(x,y,r,sAngle,eAngle,counterclockwise) x:圓的中心的 x 座標
y:圓的中心的 y 座標
r:圓的半徑
sAngle:起始角,以弧度計。(弧的圓形的三點鐘位置是 0 度)
eAngle:結束角,以弧度計。
counterclockwise:可選。規定應該逆時針還是順時針繪圖。False = 順時針,true = 逆時針。
建立圓弧
rect(x,y,width,height) 建立矩形
fillRect(x,y,width,height) 繪製矩形路徑區域
strokeRect(x,y,width,height) 繪製矩形路徑描邊
clearRect(x,y,width,height) 在給定的矩形內清除指定的畫素
arcTo(x1,y1,x2,y2,r) x1:弧的起點的 x 座標
y1:弧的起點的 y 座標
x2:弧的終點的 x 座標
y2:弧的終點的 y 座標
r:弧的半徑
建立兩切線之間的弧/曲線
beginPath() 起始一條路徑,或重置當前路徑
moveTo(x, y) 把路徑移動到畫布中的指定點,不建立線條
lineTo(x, y) 新增一個新點,然後在畫布中建立從該點到最後指定點的線條
closePath() 建立從當前點回到起始點的路徑
clip() 從原始畫布剪下任意形狀和尺寸的區域
quadraticCurveTo(cpx,cpy,x,y) cpx:貝塞爾控制點的 x 座標
cpy:貝塞爾控制點的 y 座標
x:結束點的 x 座標
y:結束點的 y 座標
建立二次方貝塞爾曲線
bezierCurveTo(cp1x,cp1y,cp2x,cp2y,x,y) cp1x:第一個貝塞爾控制點的 x 座標
cp1y:第一個貝塞爾控制點的 y 座標
cp2x:第二個貝塞爾控制點的 x 座標
cp2y:第二個貝塞爾控制點的 y 座標
x:結束點的 x 座標
y:結束點的 y 座標
建立三次方貝塞爾曲線
isPointInPath(x, y) 如果指定的點位於當前路徑中,則返回 true,否則返回 false

繪製直線的樣式

樣式 描述
lineCap butt:預設。向線條的每個末端新增平直的邊緣
round:向線條的每個末端新增圓形線帽
square:向線條的每個末端新增正方形線帽
設定或返回線條的結束端點樣式
lineJoin bevel:建立斜角round:建立圓角
miter:預設。建立尖角。
設定或返回兩條線相交時,所建立的拐角型別
lineWidth number:當前線條的寬度,以畫素計 設定或返回當前的線條寬度
miterLimit number:正數。規定最大斜接長度。如果斜接長度超過 miterLimit 的值,邊角會以 lineJoin 的 "bevel" 型別來顯示。
只有當 lineJoin 屬性為 "miter" 時,miterLimit 才有效。
設定或返回最大斜接長度

顏色、樣式和陰影

屬性 描述
fillStyle 設定或返回用於填充繪畫的顏色、漸變或模式
strokeStyle 設定或返回用於筆觸的顏色、漸變或模式
shadowColor 設定或返回用於陰影的顏色
shadowBlur 設定或返回用於陰影的模糊級別
shadowOffsetX 設定或返回陰影距形狀的水平距離
shadowOffsetY 設定或返回陰影距形狀的垂直距離

設定漸變

方法 屬性 描述
createLinearGradient(x0,y0,x1,y1) x0:漸變開始點的 x 座標
y0:漸變開始點的 y 座標
x1:漸變結束點的 x 座標
y1:漸變結束點的 y 座標
建立線性漸變(用在畫布內容上)
createPattern(image,"repeat|repeat-x|repeat-y|no-repeat") image:規定要使用的圖片、畫布或視訊元素。 在指定的方向上重複指定的元素
createRadialGradient(x0,y0,r0,x1,y1,r1) x0:漸變的開始圓的 x 座標
y0:漸變的開始圓的 y 座標
r0:開始圓的半徑
x1:漸變的結束圓的 x 座標
y1:漸變的結束圓的 y 座標
r1:結束圓的半徑
建立放射狀/環形的漸變(用在畫布內容上)
addColorStop(stop,color) stop:介於 0.0 與 1.0 之間的值,表示漸變中開始與結束之間的位置
color:在結束位置顯示的 CSS 顏色值
規定漸變物件中的顏色和停止位置

圖形轉換

方法 屬性 描述
scale(scalewidth,scaleheight) scalewidth:縮放當前繪圖的寬度 (1=100%, 0.5=50%, 2=200%, 依次類推)
scaleheight:縮放當前繪圖的高度 (1=100%, 0.5=50%, 2=200%, etc.)
縮放當前繪圖至更大或更小
rotate(angle) angle:旋轉角度,以弧度計。如需將角度轉換為弧度,請使用 degrees*Math.PI/180 公式進行計算。 旋轉當前繪圖
translate(x,y) x:新增到水平座標(x)上的值
y:新增到垂直座標(y)上的值
重新對映畫布上的 (0,0) 位置
transform(a,b,c,d,e,f) a:水平縮放繪圖
b:水平傾斜繪圖
c:垂直傾斜繪圖
d:垂直縮放繪圖
e:水平移動繪圖
f:垂直移動繪圖
替換繪圖的當前轉換矩陣
setTransform(a,b,c,d,e,f) a:水平旋轉繪圖
b:水平傾斜繪圖
c:垂直傾斜繪圖
d:垂直縮放繪圖
e:水平移動繪圖
f:垂直移動繪圖
將當前轉換重置為單位矩陣,然後執行 transform()

影象繪製

方法 屬性 描述
drawImage(img,sx,sy,swidth,sheight,x,y,width,height) img:規定要使用的影象、畫布或視訊
sx:可選。開始剪下的 x 座標位置
sy:可選。開始剪下的 y 座標位置
swidth:可選。被剪下影象的寬度
sheight:可選。被剪下影象的高度
x:在畫布上放置影象的 x 座標位置
y:在畫布上放置影象的 y 座標位置
width:可選。要使用的影象的寬度(伸展或縮小影象)
height:可選。要使用的影象的高度(伸展或縮小影象)
向畫布上繪製圖像、畫布或視訊