久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

HTML5 CANVAS:繪圖狀態(tài)和狀態(tài)棧

當(dāng)我們?cè)贖TML5 canvas中使用2D上下文來(lái)繪制圖形的時(shí)候,2D上下文會(huì)處于某種狀態(tài)中。你可以通過(guò)操縱2D上下文的屬性來(lái)設(shè)置這些狀態(tài)。,HTML5中國(guó),中國(guó)最大的HTML5中文門(mén)戶。
1.jpg

  當(dāng)我們?cè)贖TML5 canvas中使用2D上下文來(lái)繪制圖形的時(shí)候,2D上下文會(huì)處于某種狀態(tài)中。你可以通過(guò)操縱2D上下文的屬性來(lái)設(shè)置這些狀態(tài),例如fillStyle屬性和strokeStyle屬性。所有的這些操作被稱為2D上下文的state(狀態(tài))。

  有時(shí)候,我們?cè)赾anvas上繪制圖形的時(shí)候,經(jīng)常需要改變2D上下文的狀態(tài)。舉例來(lái)說(shuō),你在繪制直線或矩形的時(shí)候需要一種strokStyle,在繪制下一條直線或矩形的時(shí)候需要另一種strokStyle。又或者是不同的填充色,旋轉(zhuǎn)角度等等。

  我們不可能在繪制圖形之前就設(shè)置好所有圖形的狀態(tài),但是我們可以將當(dāng)前的狀態(tài)壓棧到一個(gè)狀態(tài)棧中。在這個(gè)狀態(tài)棧中,最后壓入的狀態(tài)將最先被彈出。通過(guò)這種方式我們可以非常方便的恢復(fù)到前一次的繪圖狀態(tài)。

  HTML5 CANVAS繪圖狀態(tài)的例子
  將一個(gè)繪圖狀態(tài)進(jìn)行壓棧和出棧的方法如下:
  1. context.save();     // 將一個(gè)狀態(tài)壓入狀態(tài)棧中

  2. context.restore();  // 將最前面的狀態(tài)出棧,并設(shè)置到2d上下文中

復(fù)制代碼

  對(duì)于一個(gè)狀態(tài)棧,你可以壓入多個(gè)狀態(tài),然后在將它們依次彈出。來(lái)看下面的例子:
  1. var canvas  = document.getElementById("ex1");
  2. var context = canvas.getContext("2d");

  3. context.fillStyle  ="#66ff66";
  4. context.strokeStyle="#990000";
  5. context.lineWidth  = 5;

  6. context.fillRect  (5, 5, 50, 50);
  7. context.strokeRect(5, 5, 50, 50);

  8. context.save();

  9. context.fillStyle = "#6666ff";

  10. context.fillRect  (65, 5, 50, 50);
  11. context.strokeRect(65, 5, 50, 50);

  12. context.save();

  13. context.strokeStyle = "#000099";

  14. context.fillRect  (125, 5, 50, 50);
  15. context.strokeRect(125, 5, 50, 50);

  16. context.restore();

  17. context.fillRect  (185, 5, 50, 50);
  18. context.strokeRect(185, 5, 50, 50);

  19. context.restore();

  20. context.fillRect  (245, 5, 50, 50);
  21. context.strokeRect(245, 5, 50, 50);   
復(fù)制代碼

  上面的代碼得到的結(jié)果如下:

4.jpg

  狀態(tài)棧的用處
  狀態(tài)棧對(duì)于改變canvas的合成模式,圖形的轉(zhuǎn)換設(shè)置和在需要回到以前設(shè)置的狀態(tài)的場(chǎng)景中十分有用。

  通過(guò)保存和恢復(fù)合成模式或圖形轉(zhuǎn)換設(shè)置,你可以確保它們被正確的重置。否則,你要想恢復(fù)到以前設(shè)置的某種狀態(tài)時(shí)十分困難的。

  2D上下文的狀態(tài)有哪些?
  所有的2D上下文的屬性都是可以保存和恢復(fù)的屬性。你在恢復(fù)一個(gè)狀態(tài)的時(shí)候,繪制區(qū)域并不會(huì)自動(dòng)進(jìn)行恢復(fù)。你恢復(fù)的僅僅是2D上下文的設(shè)置(屬性值),這些設(shè)置包括:

  •   fillStyle
  •   font
  •   globalAlpha
  •   globalCompositionOperation
  •   lineCap
  •   lineJoin
  •   lineWidth
  •   miterLimit
  •   shadowBlur
  •   shadowColor
  •   shadowOffsetX
  •   shadowOffsetY
  •   strokeStyle
  •   textAlign
  •   textBaseline
  •   clipping區(qū)域
  •   轉(zhuǎn)換矩陣


  上面的列表并不是完整的列表。還有更多的屬性屬于2D上下文狀態(tài)的一部分。


  本文版權(quán)屬于jQuery之家,轉(zhuǎn)載請(qǐng)注明出處:http://www.htmleaf.com/ziliaoku/ ... g/201507252298.html

【網(wǎng)站聲明】本站除付費(fèi)源碼經(jīng)過(guò)測(cè)試外,其他素材未做測(cè)試,不保證完整性,網(wǎng)站上部分源碼僅限學(xué)習(xí)交流,請(qǐng)勿用于商業(yè)用途。如損害你的權(quán)益請(qǐng)聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。

相關(guān)文檔推薦

這篇文章主要介紹了基于HTML5 Canvas的3D動(dòng)態(tài)Chart圖表的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
本篇文章主要介紹了HTML5 Canvas 實(shí)現(xiàn)圓形進(jìn)度條并顯示數(shù)字百分比效果示例,具有一定的參考價(jià)值,有興趣的可以了解一下
這篇文章主要介紹了HTML5 Canvas 旋轉(zhuǎn)風(fēng)車?yán)L制,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
這篇文章主要介紹了html5 canvas合成海報(bào)所遇問(wèn)題及解決方案總結(jié),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
由于實(shí)際運(yùn)行環(huán)境是在瀏覽器中,因此性能還取決于JavaScript解釋器的效率,指定的FPS幀速在低性能解釋器中可能不會(huì)達(dá)到,所以這部分不是開(kāi)發(fā)者能夠決定的,開(kāi)發(fā)者能作的是盡可能通
本文將使用HTML5提供的VideoAPI做一個(gè)自定義的視頻播放器,需要用到HTML5提供的video標(biāo)簽、以及HTML5提供的對(duì)JavascriptAPI的擴(kuò)展。,HTML5中國(guó),中國(guó)最大的HTML5中文門(mén)戶。
主站蜘蛛池模板: 精品国产伦一区二区三区观看方式 | 久久777| 狠狠色综合欧美激情 | 一区二区三区视频在线观看 | 日韩欧美高清dvd碟片 | 久久久久免费 | 国产成人黄色 | 亚洲综合色网站 | 91成人在线 | 国产精品国产a级 | 精品一二区 | 国产午夜亚洲精品不卡 | 人人九九精 | 国产精品一区二区日韩 | 日本中出视频 | 一区二区三区四区视频 | 亚洲欧美精 | 热久久久久 | 欧美日韩在线精品 | 全部免费毛片在线播放网站 | 国产精品视频免费播放 | 中文字幕在线免费观看 | 亚洲一区二区三区免费在线观看 | 日韩在线不卡 | 国产亚洲一区二区在线观看 | 粉嫩高清一区二区三区 | 国产91丝袜在线播放 | www.精品国产| a级免费视频 | 色99视频 | 久久只有精品 | 一区二区福利视频 | 在线中文字幕国产 | 欧美在线观看一区二区 | 日韩欧美视频网站 | 91久久伊人 | 久久成人免费 | 亚洲精品久久久一区二区三区 | 欧美日韩在线看 | 天天综合久久 | 国精日本亚洲欧州国产中文久久 |