91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

HTML5 學習手筆一:canvas API 畫對角線

發布時間:2020-05-08 00:41:44 來源:網絡 閱讀:2103 作者:terry_龍 欄目:移動開發

    自從停博一段時間后,一直在思考特別是今年開年,在想學習什么技術做為未來的技術儲備。本來想加強下Android 底層方面的知識,但覺得工作上跟這塊有所涉及再學習的話有點懶,由于Windows Phone 7 開發工作上沒有涉及,目前也算是入門,未來短時間內不會考慮將其應用于工作選擇,故不做考慮。現選擇了兩個方向為:IOS和HTML5,手上的毛主席相對比較緊還沒有買MAC,所以優先選擇了HTML5先涉獵一下,以后再考慮精通或者再涉獵IOS,作為未來的技術儲備。

 

     關于HTML5的簡介和推廣者網上一大把資料這里就略過,直接進入主題。

      


在頁面中加入HTML5->canvas

   在HTML頁面中插入canvas 元素非常直觀。只要在HTML源碼中插入canvas標簽:

<canvas id="diagonal" style="border:1px solid;" width="200" height="200"></canvas> //帶實心邊框的canvas元素 

請使用支持HTML5的瀏覽器瀏覽

 

 在canvas中繪制一條對角線

步驟分為:

 

  1. 首先獲得頁面元素中的canvas對象: var canvas=document.getElementById('diagonal');
  2. 得到canvas的上下文 :var context=canvas.getContext('2d'); 
  3. 通知canvas將要開始繪制一個新的圖形:context.beginPath();
  4. 將當前的位置移動到新的目標坐標(x,y)。(不繪制):context.moveTo(0,0);
  5. 將當前位置移動到新的目標坐標(x,y),而且在兩個坐標之間畫一條直線:context.lineTo(140,70);
  6. 調用canvas根據上面的指示繪制圖:context.stroke();

 

根據上面的步驟,編寫的代碼為:

<!DOCTYPE html>
<html>
        <canvas id="diagonal" style="border:1px solid;" width="200" height="200"></canvas>
        <script>
                function drawDiagonal()
                {
                   var canvas=document.getElementById('diagonal_line');//獲得canvas對象
                   var context=canvas.getContext('2d');      //獲取canvas的 上下文
                   //用絕對坐標來創建一條路徑
                   context.beginPath();
                   context.moveTo(0,0);//將光標移動到x為0,y為0的地方開始準備從這里開始繪制
                   context.lineTo(140,70);//繪制到x 坐標為140,y坐標為70的地方

                  //將這條線繪制到canvas上
                   context.stroke();  //只有調用stroke canvas 才會繪制圖像顯示結果
                }

           window.addEventListener("load",drawDiagonal,true);
        </script>

</html>

 效果如下例子:

 

 注意: beginPath、moveTo、lineTo都不會直接修改canvas的展示結果。canvas中很多用于設置樣式和外觀的函數也同樣不會直接修改顯示結果。只有當對路徑應用繪制(storke)或填充(fill)方法時,結果才會顯示出來。否則,只有在顯示圖像、顯示廣本或者繪制、填充和清除矩形框的時候,canvas才會馬上更新。

使用變換方法在canvas 上繪制對角線

這個方法較之上面的方法多了三個步驟:

 

  1. 首先先保存當前繪圖狀態save
  2. 再用平衡方法繪制上下文,使用translate
  3. 最后再繪圖完畢后使用restore 恢復原有的繪圖狀態。 

 

至于為什么要使用save和restore方法,演示完DEMO會講述。變化方法繪制對角線的代碼如下:

 <script>
                function drawDiagonal()
                {
                    var canvas=document.getElementById('diagonal');
                    var context=canvas.getContext('2d');
                    //保存當前繪圖的狀態
                   context.save();
                   
                   //向右下方移動繪圖上下文
                   context.translate(70,140);//平移-> x表示將坐標原點向左右移動多少個單位 y表示將坐標原點向上下移動多少個單位
                   
                   //畫圖
                   context.beginPath();
                   context.moveTo(0,0);
                   context.lineTo(70,-70);
                   context.stroke();

                  //恢復原有的繪圖狀態
                  context.restore();

//之所以要使用save 和 restore 是因為在操作canvas 時先把狀態保存,然后如果下面還需要操作canvas時將狀態恢復過來不會,這樣不會影響到上面我們畫完的結果。
                }
                window.addEventListener("load",drawDiagonal,true);

        </script>

 

演示的DEMO如下:

 使用canvas 的save 和 restore注意事項

分為兩種情況:

 

  1. 如果你本身繪制的圖可以一次性繪制完,那可以不使用save和restore
  2. 如果你繪制圖繪制一次后,使用stroke或才fill 后,底下還需要再次做繪制的動作,那么使用save和restore 會更好,不會跟上次的畫圖沖突,得不到我們想要的效果。 

 

 幾個簡單的小例子,稍微了解了HTML5 的一些編寫方式和它強悍的API,雖然目前還沒有好用的IDE來編寫HTML5應用或游戲,但隨著HTML5一步步的來臨,對它的未來應用非常有信心。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南和县| 宁都县| 中江县| 台江县| 涿州市| 剑阁县| 鄄城县| 芜湖县| 乳源| 光山县| 德庆县| 肇源县| 平利县| 牡丹江市| 互助| 墨竹工卡县| 余江县| 罗平县| 康保县| 鲜城| 西盟| 灌南县| 龙海市| 铜陵市| 横峰县| 林甸县| 泊头市| 抚宁县| 堆龙德庆县| 独山县| 奉节县| 信阳市| 乐清市| 安多县| 洪泽县| 乌恰县| 汉川市| 曲麻莱县| 永州市| 化德县| 田东县|