?HTML5-----Canvas 學(xué)習(xí)日記1
1:我們經(jīng)常提到canvas,其實(shí)canvas是HTML中一個元素衣赶,通常意義上垦梆,它稱為“畫布”匹颤,而我們的context,是canvas中的一個對象,稱為“繪圖環(huán)境”
var canvas=document.getElementById("canvas"), ? ? ? ? ? ?//獲取canvas對象托猩,注意印蓖,canvas是畫布,它的獲取是通過document來獲取的
var context=canvas.getcontext("2d"); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//定義一個context的對象京腥,獲取繪圖環(huán)境變量赦肃,我們一般都是用二維的。
注意公浪,繪圖環(huán)境變量的繪制是在canvas的基礎(chǔ)上進(jìn)行的他宛。
2:更改canvas的大小,最好使用直接設(shè)置其屬性欠气。
因?yàn)閏anvas從本質(zhì)上來說厅各,有2個屬性:1:它自身的大小晃琳;2:它的繪圖表面的大小讯检。雖然說通過js中改變canvas的height和width也可以更改canvas的大小琐鲁,但是這么做只更改了canvas的實(shí)際大小卫旱,它的繪圖表面的大小并沒有同步更改。而當(dāng)繪圖表面和canvas自身的大小不相符時(shí)围段,瀏覽器會自動對繪圖表面進(jìn)行一個縮放顾翼,使二者相同。比如說奈泪,系統(tǒng)默認(rèn)canvas的大小和繪圖表面都是300*150px,js中把canvas大小改成600*300,而繪圖表面還是300*150px,所以瀏覽器會把繪圖表面變成600*300px.
3:save 和restore 的用法
save和restore主要是在特定情況下對canvas中一些對象的更改适贸,比如說灸芳,我一個js里面繪制了園,矩形拜姿,然后我只想在圓的繪制中添加陰影烙样,或者改變圓的線寬,或者是填充色蕊肥,甚至添加漸變色谒获,可以在圓的function中先save(),把里面的一些環(huán)境變量保存到棧里面,然后再進(jìn)行相應(yīng)環(huán)境對象的更改壁却,特別要注意加上stroke(),或者(fill()批狱,),不然看不見繪制的圖形展东,最后在來一行restore(),把保存的一切環(huán)境變量都還原赔硫。這樣這些改動的變量就不會影響之后的矩形的繪制。