最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js Canvas繪制圓形時鐘教程

 更新時間:2017年02月06日 17:21:26   作者:藍(lán)丶木魚  
這篇文章主要為大家詳細(xì)介紹了js Canvas繪制圓形時鐘教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Canvas繪制圓形時鐘的具體代碼,供大家參考,具體內(nèi)容如下

<!DOCTYPE html> 
<html> 
<head lang="en"> 
  <meta charset="UTF-8"> 
  <title>canvas-clock</title> 
</head> 
<body> 
  <canvas id="canvas" width="500px" height="500px"> 
    你的瀏覽器不支持該元素!趕緊下載最新版本瀏覽器或使用其他瀏覽器! 
  </canvas> 
  <script> 
    //獲取到canvas元素 
    var canvas = document.getElementById('canvas'); 
    //獲取canvas中的畫圖環(huán)境 
    var context = canvas.getContext('2d'); 
 
 
    //時鐘的大小 
    function drowClock(){ 
      //鐘表的大?。撼跏贾翟O(shè)置 
      var clockDimensions = 150; 
 
      //清理當(dāng)前畫布,以便后期繪制 
      context.clearRect(0,0,canvas.width,canvas.height); 
      //繪制表盤 
      context.beginPath(); //開啟新路徑 
      context.lineWidth = clockDimensions/15; 
      context.strokeStyle = "#A7C0DC"; 
      //繪制表盤圓圈 
      context.arc(canvas.width/2,canvas.height/2,clockDimensions,0,Math.PI*2,false); 
      context.stroke();//描邊繪制 
 
      //繪制表盤的刻度線 
      for(var i=1;i<=60;i++){ 
        if(i%5==0){ 
          context.save();//保存當(dāng)前繪制環(huán)境 
          context.beginPath(); 
          context.lineWidth =clockDimensions/30; 
          context.strokeStyle = "#9AABB1"; 
          //重置坐標(biāo)原點(0,0) 
          context.translate(canvas.width/2,canvas.height/2); 
          //繪制環(huán)境旋轉(zhuǎn)方法,以(0,0)為參考點進行旋轉(zhuǎn) 
          context.rotate(Math.PI*2/60 * i); 
          context.moveTo(0,clockDimensions-clockDimensions/30); 
          context.lineTo(0,clockDimensions-clockDimensions/8); 
          context.stroke(); 
          context.beginPath(); 
          context.textAlign = 'center'; 
          context.textBaseline = 'middle'; 
          context.font = 'bold '+Math.floor(clockDimensions/10)+'px 宋體'; 
          context.fillStyle = "#03671F"; 
          context.fillText(i/5,0,0-(clockDimensions-clockDimensions/5)); 
          context.fill(); 
          context.restore();//恢復(fù)當(dāng)前保存的繪制環(huán)境 
        }else { 
          context.save(); 
          context.beginPath(); 
          context.lineWidth = Math.floor(clockDimensions/100); 
          context.strokeStyle = "#8EA5AB"; 
          //重置坐標(biāo)原點(0,0) 
          context.translate(canvas.width / 2, canvas.height / 2); 
          //繪制環(huán)境旋轉(zhuǎn)方法,以(0,0)為參考點進行旋轉(zhuǎn) 
          context.rotate(Math.PI * 2 / 60 * i); 
          context.moveTo(0, clockDimensions-clockDimensions/20); 
          context.lineTo(0, clockDimensions-clockDimensions/10); 
          context.stroke(); 
          context.restore(); 
        } 
      } 
 
      //獲取當(dāng)前windows的時間 
      var now = new Date(); 
      var sec = now.getSeconds(); 
      var min = now.getMinutes(); 
      var hour = now.getHours(); 
 
      //獲取精準(zhǔn)的小時數(shù) 
      hour = hour +min/60 + sec/3600; 
      //轉(zhuǎn)換為12進制 
      hour = hour>12?(hour-12):hour; 
      //獲取精準(zhǔn)的分鐘數(shù) 
      min = min + sec/60; 
 
      //繪制時針 
      context.save(); 
      context.beginPath(); 
      context.lineWidth = clockDimensions/30; 
      context.strokeStyle = "#596C74"; 
      //重置坐標(biāo)原點(0,0) 
      context.translate(canvas.width / 2, canvas.height / 2); 
      //繪制環(huán)境旋轉(zhuǎn)方法,以(0,0)為參考點進行旋轉(zhuǎn) 
      context.rotate(Math.PI * 2 / 12 * hour); 
      context.moveTo(0, clockDimensions/10); 
      context.lineTo(0, 0-clockDimensions/2); 
      context.stroke(); 
      context.restore(); 
 
      //繪制分針 
      context.save(); 
      context.beginPath(); 
      context.lineWidth = clockDimensions/40; 
      context.strokeStyle = "#596C74"; 
      //重置坐標(biāo)原點(0,0) 
      context.translate(canvas.width / 2, canvas.height / 2); 
      //繪制環(huán)境旋轉(zhuǎn)方法,以(0,0)為參考點進行旋轉(zhuǎn) 
      context.rotate(Math.PI * 2 / 60 * min); 
      context.moveTo(0, clockDimensions/8); 
      context.lineTo(0, 0-(clockDimensions-clockDimensions/5)); 
      context.stroke(); 
      context.restore(); 
 
      //繪制秒針 
      context.save(); 
      //重置坐標(biāo)原點(0,0) 
      context.translate(canvas.width / 2, canvas.height / 2); 
      context.beginPath(); 
      context.lineWidth = clockDimensions/50; 
      context.strokeStyle = "#738B93"; 
      //繪制環(huán)境旋轉(zhuǎn)方法,以(0,0)為參考點進行旋轉(zhuǎn) 
      context.rotate(Math.PI * 2 / 60 * sec); 
      context.moveTo(0, clockDimensions/6); 
      context.lineTo(0, 0-(clockDimensions-clockDimensions/10)); 
      context.stroke(); 
      //修飾秒針 
      context.beginPath(); 
      context.arc(0,0-(clockDimensions-clockDimensions/3),clockDimensions/20,0,Math.PI*2,true); 
      context.fillStyle = "#2FFC14"; 
      context.fill(); 
      context.lineWidth = clockDimensions/50; 
      context.stroke(); 
      //修飾圓心 
      context.beginPath(); 
      context.fillStyle = "#738B93"; 
      context.arc(0,0,clockDimensions/20,0,Math.PI*2,true); 
      context.fill(); 
      context.restore(); 
    } 
    drowClock(); 
    setInterval(drowClock,1000); 
 
  </script> 
</body> 
</html> 

效果圖:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • javascript中兼容主流瀏覽器的動態(tài)生成iframe方法

    javascript中兼容主流瀏覽器的動態(tài)生成iframe方法

    這篇文章主要介紹了javascript中兼容主流瀏覽器的動態(tài)生成iframe方法,需要的朋友可以參考下
    2014-05-05
  • ES6(ECMAScript 6)新特性之模板字符串用法分析

    ES6(ECMAScript 6)新特性之模板字符串用法分析

    這篇文章主要介紹了ES6(ECMAScript 6)新特性之模板字符串用法,簡單介紹了ES6模板字符串的概念、功能并結(jié)合實例形式分析了ES6模板字符串的用法,需要的朋友可以參考下
    2017-04-04
  • Ionic3 UI組件之a(chǎn)utocomplete詳解

    Ionic3 UI組件之a(chǎn)utocomplete詳解

    這篇文章主要為大家詳細(xì)介紹了Ionic3 UI組件之a(chǎn)utocomplete的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • vue 自定義指令directive的使用場景

    vue 自定義指令directive的使用場景

    這篇文章主要詳細(xì)介紹了vue 自定義指令directive的使用場景,文中有詳細(xì)的代碼示例,感興趣的小伙伴歡迎閱讀
    2023-04-04
  • JavaScript關(guān)于prototype實例詳解(超重點)

    JavaScript關(guān)于prototype實例詳解(超重點)

    prototype是js里面給類增加功能擴展的一種模式,這篇文章主要介紹了JavaScript關(guān)于prototype(超重點),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • TypeScript接口使用介紹

    TypeScript接口使用介紹

    接口是一系列抽象方法的聲明,是一些方法特征的集合,這些方法都應(yīng)該是抽象的,需要由具體的類去實現(xiàn),然后第三方就可以通過這組抽象方法調(diào)用,讓具體的類執(zhí)行具體的方法
    2022-10-10
  • uniapp中實現(xiàn)App自動檢測版本升級的示例代碼

    uniapp中實現(xiàn)App自動檢測版本升級的示例代碼

    本文主要介紹了uniapp中實現(xiàn)App自動檢測版本升級的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • JavaScript制作頁面倒計時器的實現(xiàn)

    JavaScript制作頁面倒計時器的實現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了JavaScript制作頁面倒計時器的實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-03-03
  • js實現(xiàn)手機拍照上傳功能

    js實現(xiàn)手機拍照上傳功能

    這篇文章主要為大家詳細(xì)介紹了js實現(xiàn)手機拍照上傳功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • javascript 進度條的幾種方法

    javascript 進度條的幾種方法

    在實際項目中,進度條的用處還是非常大的。這篇文章主要是要介紹幾種制作進度條的方法。通過學(xué)習(xí),你也能制作屬于自己的進度條了。
    2009-05-05

最新評論

桦甸市| 射阳县| 宜兰市| 辽阳县| 凤翔县| 晋江市| 改则县| 宁远县| 海南省| 巴彦淖尔市| 洪雅县| 甘洛县| 花莲市| 响水县| 荥经县| 布尔津县| 民勤县| 乌兰察布市| 丰城市| 连云港市| 民乐县| 石林| 满城县| 奈曼旗| 夏邑县| 内江市| 沙坪坝区| 五华县| 辽宁省| 宁强县| 精河县| 麟游县| 灵川县| 九龙坡区| 仁化县| 厦门市| 广西| 景东| 沂南县| 霍州市| 通江县|