作者:互联网 时间: 2026-08-03 11:48:55
分类: ai-development
标签: CodeArts, AI编程, LuckyWheel, 网页应用, Canvas
难度: 初级
读者: 前端开发者、编程学习者、技术写作者
我在码道 TUI 里输入了一段需求:「做一个抽签转盘(Lucky Wheel)网页应用,单个 HTML 文件即可运行……」约 3 分 17 秒后,一个 469 行、约 13 KB 的完整抽签转盘应用就自动生成了:默认 8 个等分扇区,红橙黄绿青蓝紫粉 8 色区分;选项文字可以直接在右侧编辑区修改、添加、删除(支持 2~16 个选项);点击「开始抽奖」,转盘先快后慢地旋转约 4.5 秒,停在随机扇区后高亮中奖扇区并弹出「恭喜中奖」提示;每项被抽中次数实时累加并保存在 localStorage,刷新页面也不丢,还能一键重置统计。双击 HTML 就能开抽。
复制下面的命令到终端,3 步完成安装:
# 1. 一键安装sh -c "$(curl -L https://cnnorth4-cloudide-marketplace.obs.cn-north-4.myhuaweicloud.com/codearts/cli_tui/install_script/install.sh)"# 2. 配置环境变量export PATH=~/.codeartsdoer/installers:$PATHexport CODEARTS_CLI_AK=你的AKexport CODEARTS_CLI_SK=你的SK# 3. 启动 TUIcodearts
AK/SK 获取:https://codearts.huaweicloud.com/portal/settings/cli-auth
安装完成后,在命令行或 PowerShell 中输入 codearts 回车,即可打开码道 TUI。把开发需求贴进输入框,码道会自动分析并生成完整代码。
这次开发中,码道展示了以下能力:
我想要一个抽签转盘(Lucky Wheel)网页应用,具体要求:
我在码道 TUI 中贴入需求后,码道开始拆解需求并生成代码:

生成过程中,码道边设计转盘绘制与缓动动画逻辑边写代码,代码逐行可见:

约 3 分 17 秒后,码道汇报完成,输出功能清单,并提示文件位置:

双击生成的 lucky-wheel.html 在浏览器中直接运行,点击「开始抽奖」后转盘旋转停在中奖扇区,弹出「恭喜中奖」弹窗,右侧统计同步更新:

码道生成的代码是一个自包含的单页应用,核心逻辑非常清晰:
转盘绘制:每次状态变化都调用 drawWheel() 按当前角度重绘所有扇区,扇区文字根据数量自动缩放,高亮扇区用 lighten() 提亮底色:
function drawWheel() {const anglePer = 2 * Math.PI / n;for (let i = 0; i < n; i++) {const start = -Math.PI / 2 + i * anglePer + currentAngle;const end = start + anglePer;// 扇形填充、描边,文字随扇区角度旋转}}
旋转动画:随机选中目标扇区后,先加 5 圈整圈旋转,再用 easeOutQuart 缓动(1 - (1-t)^4)在 4.5 秒内完成减速,保证每次都能「转得够久又停在指定扇区」:
const targetIndex = Math.floor(Math.random() * n);const totalDelta = extraRotations + delta;const eased = 1 - Math.pow(1 - t, 4);currentAngle = startAngle + totalDelta * eased;
中奖判定与统计:动画结束后高亮目标扇区、弹出结果弹窗,并把中奖项计数写入 localStorage:
highlightIndex = targetIndex;drawWheel();resultEl.textContent = winText;modal.classList.add('show');stats[winText] = (stats[winText] || 0) + 1;saveStats();renderStats();
选项编辑与持久化:右侧选项区实时绑定输入框,增删改都同步到 luckyWheelOptions,统计存 luckyWheelStats,刷新页面自动恢复:
document.getElementById('add').addEventListener('click', () => {if (options.length >= 16) { showToast('最多支持 16 个选项'); return; }options.push(`选项${options.length + 1}`);saveOptions();renderOptions();drawWheel();});
从这些代码可以看出,码道不只把功能拼出来,缓动曲线、扇区文字缩放、数量边界、双键持久化这些影响体验的细节也都处理得比较到位。
双击 lucky-wheel.html 即可开始使用:页面左侧是彩色转盘,顶部有指针,下方是红色「开始抽奖」按钮;右侧是「选项编辑」区(每个选项带色点和输入框,可增删)和「中奖统计」区。点击「开始抽奖」,转盘先快后慢旋转约 4.5 秒,停在随机扇区后该扇区高亮,弹出「恭喜中奖」弹窗并显示中奖项;关闭弹窗后,右侧统计区显示每项被抽中次数。选项内容和抽中次数都保存在 localStorage,刷新页面不丢;「重置统计」一键清空。紫色渐变背景配合 8 色扇区,界面鲜艳明快,手机窄屏自动转为上下布局。
用码道开发抽签转盘这类网页应用,最大的感受是「需求即产品」:把功能要点说清楚,码道就能给出包含完整技术方案与视觉风格的成品。对想快速做一个抽奖小工具、或者刚学前端想看看「Canvas 动画应用是怎么写的」的同学,让码道先生成一份,再对照源码逐行读,是很好的学习路径。下一轮,我打算让码道继续挑战不同类型的网页应用,继续记录真实的开发过程。