From 71c5963639e612b171ed0ed3cf42b3f43873b1bf Mon Sep 17 00:00:00 2001 From: Frost-ZX Date: Sun, 15 Feb 2026 19:13:58 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E2=80=9C=E6=95=B0?= =?UTF-8?q?=E5=AD=97=E6=97=B6=E9=92=9F=E2=80=9D=E6=98=BE=E7=A4=BA=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/main.js | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/assets/main.js b/assets/main.js index b514b44..c074c0a 100644 --- a/assets/main.js +++ b/assets/main.js @@ -18,6 +18,10 @@ window.addEventListener('DOMContentLoaded', () => { isDefault: false, label: '音频可视化 - 2', }, + digitalClock: { + isDefault: false, + label: '数字时钟', + }, }; /** 分辨率配置选项 */ @@ -680,6 +684,9 @@ window.addEventListener('DOMContentLoaded', () => { case 'data': await renderDataText(); break; + case 'digitalClock': + await renderDigitalClock(); + break; case 'spectrum': await renderAudioSpectrum(); break; @@ -882,6 +889,34 @@ window.addEventListener('DOMContentLoaded', () => { } + /** 渲染数字时钟内容 */ + async function renderDigitalClock() { + + // 清空画布 + ctx.fillStyle = '#000000'; + ctx.fillRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT); + + // 获取当前时间 + let date = new Date(); + let hours = String(date.getHours()).padStart(2, '0'); + let minutes = String(date.getMinutes()).padStart(2, '0'); + let seconds = String(date.getSeconds()).padStart(2, '0'); + + // 计算字体大小,确保不超出画布 + let padding = 10; + let fontSize = Math.floor((CANVAS_HEIGHT - padding * 2) / 3); + let timeFont = `${fontSize}px monospace`; + let timeText = `${hours}:${minutes}:${seconds}`; + + // 绘制时间 + ctx.font = timeFont; + ctx.textAlign = 'center'; + ctx.textBaseline = 'middle'; + ctx.fillStyle = '#FFFFFF'; + ctx.fillText(timeText, CANVAS_WIDTH / 2, CANVAS_HEIGHT / 2); + + } + // 初始化下拉选项 (function () {