canvas學習筆記

2021-08-28 12:23:46 字數 1339 閱讀 7047

canvas是html5中的新功能,它是一塊,在你開闢的空間內部用**畫圖。

而建立畫布和畫圖是需要一些步驟的

canvas是布 context是各種筆

先看乙個簡單的**

瀏覽器不支援canvas

每乙個我們要進行的canvas操作都必須有獲取畫布,和獲取畫布內容的操作。

然後還有乙個問題就是,我們要預防老版本瀏覽器不支援canvas,所以要寫乙個if語句進行一下判斷

瀏覽器不支援canvas

getcontext()中我們寫的是2d是因為我們要畫乙個2d的平面圖形。(當然還有3d的選項)

簡單的**就在上面有給出,然後這裡體現了三個方法:

strokerect(x,y,width,height):繪製矩形邊框。

fillrect(x,y,width,height);繪製矩形並且填充。

clearrect(x,y,width,height);清除矩形區域的內容,其實是露出背景色。

x,y代表的是座標,注意,這裡的座標是指canvas畫布為平面的左上角為原點的座標。width,height也就是所畫矩形的寬和高。

繪製其他圖形需要一些其他流程,就像我們畫畫的時候,我們需要提筆,找位置,落筆開始畫,收筆。

所以在canvas上面畫的時候也需要這些步驟。

首先介紹一下這些步驟的**:

瀏覽器不支援canvas

好了,接下來是利用我們開闢的路徑去畫圖形的操作。

畫直線的方法是lineto(x,y);一般會與moveto();配合使用,另外還有畫虛線的辦法setlinedash();還有乙個設定虛線偏移量的方法linedashoffset();

瀏覽器不支援canvas

首先畫圓弧:

有兩種方法:arc(x,y,radius,startangle,endangle,anticlockwise);//正常畫法

arcto(x1,y1,x2,y2,radius);//通過兩個切線找到與兩切線相切的相應半徑的圓

應該很好理解每乙個引數的意思,通過英語就能明白,anticlockwise表示石佛偶逆時針繪製,預設順時針。

**就不寫了,和直線寫法一樣,

現在來看貝塞爾曲線,會用的就用吧,反正我就是試著用的那種。

quadraticcurveto(cp1x,cp1y,x,y);

beziercurveto(cp1x,cp1y,cp2x,cp2y,x,y);

x,y為曲線的終點,cp1,cp2的那兩個座標都是控制點,還是跟直線的寫法一樣,不寫**了。

canvas學習筆記

1 canvas 元素a 元素有乙個叫做 getcontext 的方法,這個方法是用來獲得渲染上下文和它的繪畫功能,通過簡單的測試getcontext 方法的存在,指令碼可以檢查程式設計支援性var canvas document.getelementbyid tutorial if canvas....

canvas學習筆記

畫布相當於乙個img標籤,可以在畫布上繪製內容。畫布預設是透明的,所以可以放在另乙個元素上面繪製內容,乙個頁面上可以有多個畫布元素 1.請輸入 繪製畫布的前提需要在頁面上建立乙個canvas元素,然後使用js獲取到這個canvas元素 2.繪製矩形的方法 這邊的x,y分別為矩形在畫布上的x,y位置 ...

canvas學習筆記

1.函式呼叫模式 function add a,b add 3,9 此方法執行的時候,this指向了window console.log result 2.構造器呼叫模式 function persion var p new persion p.show 在show方法中方法this,指向了p物件例...