歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 使用HTML5的canvas做一個會動的時鐘

使用HTML5的canvas做一個會動的時鐘

日期:2017/3/1 10:26:23   编辑:Linux編程

這次我們的目標是畫一個會和時間同步的時鐘,不過沒有美學感覺,樣子丑的厲害。


HTML5支持canvas了,我們可以直接在頁面上繪圖了,我看了下canvas和GDI+的接口差不多,所以我們先了解些基本的概念和方式,然後來做一個應用吧。

我們做所有的畫之情需要一個畫布,html的canvas標簽就是幫我們聲明了一個畫布。

  1. <canvas id="mycanvas">
  2. </canvas>
這個默認的畫布的大小是300*150,接下來的工作大多就是javaScript來做了。

首先要實例化這個畫布

  1. $(
  2. function() {
  3. var canvas = document.getElementById("mycanvas");
  4. $.log(canvas.width);
  5. $.log(canvas.height);
  6. var context = canvas.getContext("2d");
  7. $.log(context.canvas);
  8. $.log(context.fillStyle); //要填充的區域的顏色
  9. $.log(context.strokeStyle); //要繪制的線條的顏色
  10. $.log(context.lineCap); //筆帽樣式
  11. $.log(context.lineJoin); //兩條連續線段的連接樣式
  12. $.log(context.lineWidth); //線段的寬度
  13. $.log(context.miterLimit); //斜聯接
  14. $.log(context.shadowColor); //陰影的顏色,默認為#000000,
  15. $.log(context.shadowOffsetX); //陰影在x方向上的偏移量,默認為0,不受坐標轉換的影響。
  16. $.log(context.shadowOffsetY); //陰影在y方向上的偏移量,默認為0,不受坐標轉換的影響。
  17. $.log(context.shadowBlur); //陰影的模糊度,默認為0,負數值將會被忽略
  18. }
  19. );
上面的結果你可以得到一個大致的想法,就是content可以認為是我們將來作畫用的畫筆(估計有專業人士對強烈抗議,我直接忽略),canvas就是我們的畫布。我們現在的畫筆是2D的畫筆,換句話說就是畫平面幾何的畫筆。

接下來,就是我們利用這個畫筆來學習怎麼畫了

各種線

  1. $(
  2. function() {
  3. var canvas = document.getElementById("mycanvas");
  4. var context = canvas.getContext("2d");
  5. context.strokeStyle = "rgb(255, 0, 0)";
  6. context.beginPath();
  7. context.lineCap = "butt"; //默認
  8. context.lineWidth = 10;
  9. context.moveTo(10, 10);
  10. context.lineTo(100, 10); //簡單的一條線
  11. context.stroke(); //該方法真正在畫布上繪制該線段
  12. context.beginPath();
  13. context.lineCap = "round"; //圓形線頭
  14. context.moveTo(10, 30);
  15. context.lineTo(100, 30);
  16. context.stroke(); //該方法真正在畫布上繪制該線段
  17. context.beginPath();
  18. context.lineCap = "square"; //方形線頭
  19. context.moveTo(10, 50);
  20. context.lineTo(100, 50);
  21. context.stroke(); //該方法真正在畫布上繪制該線段
  22. }
  23. );
各種陰影
  1. $(
  2. function() {
  3. var canvas = document.getElementById("mycanvas");
  4. var context = canvas.getContext("2d");
  5. context.strokeStyle = "rgb(255, 0, 0)";
  6. context.lineWidth = 10;
  7. context.shadowColor = "#0000FF";
  8. context.beginPath();
  9. context.lineCap = "round";
  10. context.moveTo(10, 10);
  11. context.lineTo(100, 10);
  12. context.shadowOffsetX = 10;
  13. context.shadowBlur = 10;
  14. context.stroke();
  15. context.beginPath();
  16. context.lineCap = "round";
  17. context.moveTo(10, 30);
  18. context.lineTo(100, 30);
  19. context.shadowOffsetY = 10;
  20. context.shadowBlur = 10;
  21. context.stroke();
  22. }
  23. );
各種線∠連接
  1. $(
  2. function() {
  3. var canvas = document.getElementById("mycanvas");
  4. var context = canvas.getContext("2d");
  5. context.strokeStyle = "rgb(255, 0, 0)";
  6. context.lineWidth = 10;
  7. context.shadowColor = "#0000FF";
  8. context.beginPath();
  9. context.lineJoin = "miter"; //兩條線段的外邊緣一直擴展到它們相交
  10. context.moveTo(10, 70);
  11. context.lineTo(50, 10);
  12. context.lineTo(80, 70);
  13. context.stroke();
  14. context.lineJoin = "bevel"; //以一個斜邊進行連接
  15. context.moveTo(100, 70);
  16. context.lineTo(140, 10);
  17. context.lineTo(180, 70);
  18. context.stroke();
  19. context.lineJoin = "round"; //:以一個圓弧邊進行連接
  20. context.beginPath();
  21. context.moveTo(200, 70);
  22. context.lineTo(240, 10);
  23. context.lineTo(280, 70);
  24. context.stroke();
  25. context.closePath(); //關閉path
  26. }
  27. );
Copyright © Linux教程網 All Rights Reserved