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

HTML5 CANVAS:繪圖狀態和狀態棧

當我們在HTML5 canvas中使用2D上下文來繪制圖形的時候,2D上下文會處于某種狀態中。你可以通過操縱2D上下文的屬性來設置這些狀態。,HTML5中國,中國最大的HTML5中文門戶。
1.jpg

  當我們在HTML5 canvas中使用2D上下文來繪制圖形的時候,2D上下文會處于某種狀態中。你可以通過操縱2D上下文的屬性來設置這些狀態,例如fillStyle屬性和strokeStyle屬性。所有的這些操作被稱為2D上下文的state(狀態)。

  有時候,我們在canvas上繪制圖形的時候,經常需要改變2D上下文的狀態。舉例來說,你在繪制直線或矩形的時候需要一種strokStyle,在繪制下一條直線或矩形的時候需要另一種strokStyle。又或者是不同的填充色,旋轉角度等等。

  我們不可能在繪制圖形之前就設置好所有圖形的狀態,但是我們可以將當前的狀態壓棧到一個狀態棧中。在這個狀態棧中,最后壓入的狀態將最先被彈出。通過這種方式我們可以非常方便的恢復到前一次的繪圖狀態。

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

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

復制代碼

  對于一個狀態棧,你可以壓入多個狀態,然后在將它們依次彈出。來看下面的例子:
  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);   
復制代碼

  上面的代碼得到的結果如下:

4.jpg

  狀態棧的用處
  狀態棧對于改變canvas的合成模式,圖形的轉換設置和在需要回到以前設置的狀態的場景中十分有用。

  通過保存和恢復合成模式或圖形轉換設置,你可以確保它們被正確的重置。否則,你要想恢復到以前設置的某種狀態時十分困難的。

  2D上下文的狀態有哪些?
  所有的2D上下文的屬性都是可以保存和恢復的屬性。你在恢復一個狀態的時候,繪制區域并不會自動進行恢復。你恢復的僅僅是2D上下文的設置(屬性值),這些設置包括:

  •   fillStyle
  •   font
  •   globalAlpha
  •   globalCompositionOperation
  •   lineCap
  •   lineJoin
  •   lineWidth
  •   miterLimit
  •   shadowBlur
  •   shadowColor
  •   shadowOffsetX
  •   shadowOffsetY
  •   strokeStyle
  •   textAlign
  •   textBaseline
  •   clipping區域
  •   轉換矩陣


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


  本文版權屬于jQuery之家,轉載請注明出處:http://www.htmleaf.com/ziliaoku/ ... g/201507252298.html

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

這篇文章主要介紹了基于HTML5 Canvas的3D動態Chart圖表的示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
本篇文章主要介紹了HTML5 Canvas 實現圓形進度條并顯示數字百分比效果示例,具有一定的參考價值,有興趣的可以了解一下
這篇文章主要介紹了HTML5 Canvas 旋轉風車繪制,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
這篇文章主要介紹了html5 canvas合成海報所遇問題及解決方案總結,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
由于實際運行環境是在瀏覽器中,因此性能還取決于JavaScript解釋器的效率,指定的FPS幀速在低性能解釋器中可能不會達到,所以這部分不是開發者能夠決定的,開發者能作的是盡可能通
本文將使用HTML5提供的VideoAPI做一個自定義的視頻播放器,需要用到HTML5提供的video標簽、以及HTML5提供的對JavascriptAPI的擴展。,HTML5中國,中國最大的HTML5中文門戶。
主站蜘蛛池模板: 成人亚洲精品久久久久软件 | 欧美成人一级 | 亚洲国产成人av好男人在线观看 | 日本一区二区高清视频 | 亚洲国产成人精品久久 | 国产一级片久久久 | 草草影院ccyy | 九九精品在线 | 成人免费淫片aa视频免费 | 亚洲区视频 | 国产精品视频一区二区三区四蜜臂 | 在线看亚洲 | 日本人麻豆| 91精品国产91久久久久青草 | 欧美区日韩区 | 欧美精品乱码久久久久久按摩 | 国产精品无码专区在线观看 | 国产精华一区 | 国产精品一区二区久久 | 99精品免费在线观看 | 久久视频免费观看 | 久久久久国产精品免费免费搜索 | 成人午夜激情 | av片免费观看| 精品中文字幕视频 | www.yw193.com| 婷婷综合激情 | 在线亚洲欧美 | 黄色一级电影免费观看 | 91视频亚洲| 精品国产一区二区三区久久久蜜月 | 成人在线| 日日摸日日碰夜夜爽亚洲精品蜜乳 | 九九热免费视频在线观看 | 国产成年人小视频 | 91精品一区二区三区久久久久久 | 亚洲一区欧美一区 | 综合网伊人 | 精品久久久久久久久久久下田 | 亚洲精品视频一区二区三区 | 伊人国产精品 |