日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

css - 一段Javascript用canvas制作的一個頁面時鐘的代碼,有幾處地方不明白,希望有大神能指點一下。

瀏覽:186日期:2022-12-30 10:24:30

問題描述

var canvas=document.getElementById(’canvas’),ctx=canvas.getContext(’2d’),FONT_HEIGHT=15,//字體高度MARGIN=35, //邊緣HAND_TRUNCATION=canvas.width/25,HOUR_HAND_TRUNCATION=canvas.width/10,NUMERAL_SPACING=20, RADIUS=canvas.width/2-MARGIN,HAND_RADIUS=RADIUS+NUMERAL_SPACING;function drawCircle(){ctx.beginPath();ctx.arc(canvas.width/2,canvas.height/2,RADIUS,0,Math.PI*2,true);ctx.stroke();} //畫出時鐘的圓框輪廓function drawNumerals(){ctx.beginPath();ctx.arc(canvas.width/2,canvas.height/2,RADIUS,0,Math.PI*2,true);ctx.stroke(); var numerals=[1,2,3,4,5,6,7,8,9,10,11,12], angle=0, numeralWidth=0;numerals.forEach(function(numeral){ angle=Math.PI/6*(numeral-3); numeralWidth=ctx.measureText(numeral).width; ctx.fillText(numeral,canvas.width/2+Math.cos(angle)*(HAND_RADIUS)-numeralWidth/2, canvas.height/2+Math.sin(angle)*(HAND_RADIUS)+FONT_HEIGHT/3); });} //畫出時鐘的12小時刻度function drawCenter(){ ctx.beginPath(); ctx.arc(canvas.width/2,canvas.height/2,5,0,Math.PI*2,true); ctx.fill();} //時鐘盤心得實心圓點繪畫function drawHand(loc,isHour){ var angle=(Math.PI*2)*(loc/60)-Math.PI/2, handRadius=isHour?RADIUS-HAND_TRUNCATION-HOUR_HAND_TRUNCATION:RADIUS-HAND_TRUNCATION;ctx.moveTo(canvas.width/2,canvas.height/2); ctx.lineTo(canvas.width/2+Math.cos(angle)*handRadius, canvas.height/2+Math.sin(angle)*handRadius); ctx.stroke();}function drawHands(){ var date=new Date, hour=date.getHours();hour=hour>12?hour-12:hour; drawHand(hour*5+(date.getMinutes()/60)*5,true,0.5); drawHand(date.getMinutes(),false,0.5); drawHand(date.getSeconds(),false,0.2);} //指針移動繪畫function drawClock(){drawCircle();drawCenter();drawHands();drawNumerals();}ctx.font=FONT_HEIGHT+’ps Arial’;

loop=setInterval(function(){

ctx.clearRect(0,0,canvas.width,canvas.height);drawClock();

},1000);

在function drawNumerals(){.........}這段函數里面,var numerals=[1,2,3,4,5,6,7,8,9,10,11,12],

angle=0, numeralWidth=0;

第一個是定義的是數組,第二個起始弧度,第三個要定義數組寬度干嘛?

在數組遍歷中numerals.forEach(function(numeral){angle=Math.PI/6*(numeral-3);numeralWidth=ctx.measureText(numeral).width;ctx.fillText(numeral,canvas.width/2+Math.cos(aangle)*(HAND_RADIUS)-numeralWidth/2,canvas.height/2+Math.sin(angle)*(HAND_RADIUS)+FONT_HEIGHT/3);});angle=Math.PI/6*(numeral-3);他這個算法是什么意思?ctx.fillText(numeral,canvas.width/2+Math.cos(aangle)*(HAND_RADIUS)-numeralWidth/2,canvas.height/2+Math.sin(angle)*(HAND_RADIUS)+FONT_HEIGHT/3);這段算法是什么意思?

兩段function drawHand(loc,isHour){。。。。。。}

function drawHand(){........}

函數也看不太懂。

最后ctx.font=FONT_HEIGHT+'ps Arial';這是設置那里的字體?

setInterval();我記得已經是循環了,為什么還要加loop=setInterval();這是什么意思?以上這些不明白的地方希望有大神指點,因為是新手,有些地方可能問的不是太徹底,忘諒解。

問題解答

回答1:

首先,自己不懂,為什么不逐步調試呢?

第二,貼出來的代碼這么亂,你自己讀讀好讀嗎?

既然回你了 就簡單講講

function drawNumerals() { ctx.beginPath(); ctx.arc(canvas.width / 2, canvas.height / 2, RADIUS, 0, Math.PI * 2, true); ctx.stroke();var numerals = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],angle = 0,numeralWidth = 0; numerals.forEach(function (numeral) {// 1- 12 點的弧度值,不懂 打印一遍出來看看不就好了么?// 值從 -1/3π 依次遞增1/6π 最終到3/2π 至于干嘛的 數學知識,畫圖理解。// 3點為0,9點為π 順時針方向 angle = Math.PI / 6 * (numeral - 3);console.log(’angle’, angle);// 文本寬度,1-12 數字的寬度都不一樣的 這個就是獲取文本寬度numeralWidth = ctx.measureText(numeral).width;/** * 填充文本 * @param {String} text 文本 * @param {Number} x 坐標-x * @param {Number} y 坐標-y */// canvas.width / 2 + Math.cos(angle) * (HAND_RADIUS) - numeralWidth / 2 中點坐標 + 半徑*余弦 - 文本寬度的一半 不就表示文本填充的X坐標嗎// 其余自己腦補ctx.fillText(numeral, canvas.width / 2 + Math.cos(angle) * (HAND_RADIUS) - numeralWidth / 2, canvas.height / 2 + Math.sin(angle) * (HAND_RADIUS) + FONT_HEIGHT / 3); });}

寫了這些,好像這個是網上的例子吧,應該有視頻的,你都不愿意百度的,我也是服 Canvas 繪制時鐘。

ctx.font的問題,你知道ctx是什么了,就知道他是設置哪的字體了? ctx哪里來,代碼上有定義。不懂請百度Google。

至于你說loop=setInterval的問題,自己查setInterval。簡單來說loop是這個定時器返回的一個標識,在你不需要這個定時器的時候,可以使用clearInterval(定時器標識) 來清除這個定時器。

最后 答案一直都放在那里,只是你是否愿意去找。
標簽: JavaScript
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产香蕉精品| 亚洲精品动态| 欧美日韩精品一区二区三区在线观看| 久久精品av| 欧美亚洲国产精品久久| 999在线观看精品免费不卡网站| 亚洲在线成人| 日韩1区2区3区| 欧美a级一区二区| 日韩一区二区三区在线免费观看| 亚洲成人国产| 亚洲一区二区三区无吗| 少妇精品久久久一区二区| 国产精品一区亚洲| 成人精品天堂一区二区三区| 欧美午夜不卡| 国产免费久久| 亚洲黄色免费av| 国产高清一区二区| 天堂久久av| 国产一区二区精品福利地址| 欧美日韩视频| 国产精品一区二区三区美女| 色爱综合av| 亚洲日本国产| 精品一区二区三区亚洲| 91久久中文| 国产精品亚洲人成在99www| 亚洲成人va| 日本中文字幕一区二区视频| 国产精品成人一区二区不卡| 午夜久久99| 91九色综合| 国产一区国产二区国产三区| 在线精品小视频| 欧美精品三级在线| 欧美日韩中文一区二区| 日韩在线电影| 99精品视频在线| 日韩高清在线一区| 成人亚洲欧美| 中文一区二区| 麻豆理论在线观看| 日产欧产美韩系列久久99| 国产成年精品| 亚洲精品三级| 精品不卡一区| 亚洲综合婷婷| 手机在线电影一区| 亚洲伊人影院| 欧美一级精品| 国产福利一区二区精品秒拍| 久久aⅴ国产紧身牛仔裤| а√天堂8资源在线| 午夜电影一区| 欧美国产91| 成人一区不卡| 国产欧美自拍| 在线精品一区| 欧美午夜不卡影院在线观看完整版免费| 免费在线亚洲欧美| 日韩一区二区三区高清在线观看| 久久精品国内一区二区三区水蜜桃| 婷婷亚洲成人| 午夜日本精品| 日本精品不卡| 精品国产不卡一区二区| 婷婷亚洲精品| av不卡在线看| 91精品国产91久久久久久黑人| 麻豆精品一区二区综合av| 蜜臀精品久久久久久蜜臀 | 精品资源在线| 日韩精品免费一区二区夜夜嗨| 黄色成人精品网站| www在线观看黄色| 精品视频在线你懂得| 日本午夜免费一区二区| 99在线|亚洲一区二区| 亚洲啊v在线| 国产一区二区三区视频在线| 国产探花在线精品| 免费一区二区视频| 亚洲激情黄色| 国产手机视频一区二区 | 亚洲不卡av不卡一区二区| 精品72久久久久中文字幕| 国产午夜久久av| 热久久久久久| 在线看片一区| 日本亚洲最大的色成网站www| 性色av一区二区怡红| 99综合视频| 麻豆9191精品国产| 老牛国产精品一区的观看方式| 99re国产精品| 亚洲欧洲美洲国产香蕉| 综合一区av| 青草国产精品| 国产精品久久久久久久久久妞妞| 欧美一区二区三区久久| 欧美在线91| 久久精品免费看| 成人在线视频中文字幕| 欧美成人a交片免费看| 成人美女视频| 蜜桃国内精品久久久久软件9| 91成人超碰| 蜜芽一区二区三区| 日韩av影院| 老司机精品视频网| 精品欧美日韩精品| 黑人精品一区| 国产综合精品| 自拍自偷一区二区三区| 国产欧美一级| 日韩免费高清| 亚洲在线国产日韩欧美| 日韩激情视频网站| 国产精品一区二区av日韩在线| 久久一区亚洲| 激情欧美丁香| 日韩美女精品| 91视频一区| 亚洲一区激情| 国产欧美一区二区三区米奇| 精品国产一区二区三区性色av| 日本精品不卡| 中文字幕一区日韩精品| 久久不卡国产精品一区二区| 成人精品亚洲| 日本麻豆一区二区三区视频| 精品国产欧美日韩| 尤物精品在线| 国产精品久久777777毛茸茸| 精品国产午夜| 在线亚洲观看| 精品国内亚洲2022精品成人| 精品1区2区3区4区| 久久不卡国产精品一区二区| 欧美日韩一区二区三区视频播放| 无码日韩精品一区二区免费| 久久伊人久久| 性欧美长视频| 欧美国产美女| 日韩欧美高清一区二区三区| 国产高清不卡| 免费观看在线综合色| 精品国产美女a久久9999| 久久久精品午夜少妇| 亚洲丝袜美腿一区| 国产一区二区三区精品在线观看| 1024精品一区二区三区| 日韩视频1区| 免费在线小视频| 久久国产尿小便嘘嘘| 激情久久五月| 久久久久久久久成人| 六月丁香综合| 97se综合| 国产日韩精品视频一区二区三区| 欧美日韩中文字幕一区二区三区 | 亚洲激情欧美| 国产剧情在线观看一区| 午夜久久影院| 国产精品成久久久久| 日本亚洲不卡| 影音先锋国产精品| 中文在线а√天堂| 国产情侣久久| 蜜桃视频一区二区三区 | 久久99久久久精品欧美| 国产精品普通话对白| 最近高清中文在线字幕在线观看1| 亚洲精品黄色| 亚洲欧美一区在线| 樱桃视频成人在线观看| 国产精品一区二区三区av麻| 蜜桃久久精品一区二区| 99成人在线视频| 国产美女高潮在线观看| 老司机精品视频在线播放| 亚洲精品视频一二三区| 福利一区在线| 在线国产日韩| 在线视频免费在线观看一区二区| 三级一区在线视频先锋| 日本91福利区| 91亚洲成人| 国产高清久久| 婷婷精品在线| 精品中文字幕一区二区三区 | 欧美一级二级视频| 首页国产欧美久久| 欧美 日韩 国产一区二区在线视频| 国产不卡精品| 国产一区2区| 国产精品久久久久久久免费观看| 欧美国产另类| 国产精品99精品一区二区三区∴ |