從上個星期開始,耳朵就一直在生病,里面長了個疙瘩,腫的一碰就疼,不能吃飯不能嗨 (┳_┳)……在此提醒各位小伙伴,最近天氣炎熱,一定要注意防暑上火,病來如山倒呀~
接下來我正在喝著5塊一顆的藥學(xué)習(xí)canvas……
canvas(畫布)是html5新增的標(biāo)簽元素,用來定義圖形,比如圖表和其他圖像。<canvas>標(biāo)簽只是圖形容器,必須使用腳本(通常為javascript)來繪制圖形。
canvas與svg的區(qū)別
canvas是HTML5提供的新元素<canvas>,而svg存在的歷史要比canvas久遠(yuǎn),已經(jīng)有十幾年了。svg并不是html5專有的標(biāo)簽,最初svg是用xml技術(shù)(超文本擴(kuò)展語言,可以自定義標(biāo)簽或?qū)傩裕┟枋龆S圖形的語言。 首先,從它們的功能上來講,canvas可以看做是一個畫布。其繪制出來的圖形為標(biāo)量圖,因此,可以在canvas中引入jpg或png這類格式的圖片,在實際開發(fā)中,大型的網(wǎng)絡(luò)游戲都是用canvas畫布做出來的,并且canvas的技術(shù)現(xiàn)在已經(jīng)相當(dāng)?shù)某墒臁? 另外,我們喜歡用canvas來做一些統(tǒng)計用的圖表,如柱狀圖曲線圖或餅狀圖等。而svg,所繪制的圖形為矢量圖,所以其用法上受到了限制。因為只能繪制矢量圖,所以svg中不能引入普通的圖片,因為矢量圖的不會失真的效果,在項目中我們會用來做一些動態(tài)的小圖標(biāo)。 但是由于其本質(zhì)為矢量圖,可以被無限放大而不會失真,這很適合被用來做地圖,而百度地圖就是用svg技術(shù)做出來的。 另外從技術(shù)發(fā)面來講canvas里面繪制的圖形不能被引擎抓取,如我們要讓canvas里面的一個圖片跟隨鼠標(biāo)事件:canvas.onmouseover=function(){}。而svg里面的圖形可以被引擎抓取,支持事件的綁定。 另外canvas中我們繪制圖形通常是通過JavaScript來實現(xiàn),svg更多的是通過標(biāo)簽來來實現(xiàn),如在svg中繪制正矩形形就要用<rect>,這里我們不能用屬性style="width:XXX;height:XXX;"來定義。 我再來介紹一個svg的js庫:TWO.JS。其中包含two.js和three.js前者用于繪制二維圖形,后者用于繪制三維圖形。TWO.JS可以支持三種格式,svg(默認(rèn))、canvas、和WEBGL。當(dāng)然也可以在普通div中引入。 要從同一圖形的一個<canvas>標(biāo)記中移除元素,需要擦掉重新繪制;而svg很容易編輯,只要從其描述中移除元素即可。 以上是之前在別人博客中看到的,所以先引用過來,待之后熟練掌握canvas,svg再寫自己的心得體會。 具體請參考 http://blog.csdn.net/helloword_chen/article/details/49788309 |
延伸閱讀
學(xué)習(xí)是年輕人改變自己的最好方式
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26