周末在家,我用Claude Code做了个‘广场舞队形生成器’网页——队长扫了3次码,说‘下月比赛就用这个排阵’

周末在家,我用Claude Code做了个‘广场舞队形生成器’网页——队长扫了3次码,说‘下月比赛就用这个排阵’

站长
2026年4月11日 · 阅读 3088 · 点赞 58 · 预计 5 分钟
分享:

周末在家,我用Claude Code做了个‘广场舞队形生成器’网页——队长扫了3次码,说‘下月比赛就用这个排阵’

没有数据库,没有用户系统,不收集手机号。

就是一个单HTML文件,打开即用,关掉即忘。

但它解决了广场舞队长们最头疼的事:

  • 画队形图太慢(A4纸+铅笔画10分钟,改一次重来)

  • 手机拍照发群里,队员看不清站位

  • 比赛报名要交“队形示意图”,手绘不被接受
  • 我们用Claude Code + Canvas,在周六下午做出了这个工具。上线后,被朝阳区12支舞队队长扫码使用,3支主动拍视频发抖音:“教你怎么30秒排出‘蝴蝶展翅’阵”。

    ---

    🎨 核心能力:用Canvas画“会呼吸”的队形

    不是SVG,不是CSS Grid,而是原生Canvas——因为:

  • 轻量(单文件<80KB)

  • 可导出高清PNG(比赛报名刚需)

  • 支持触摸拖拽(大爷大妈手指粗也能操作)
  • ---

    🛠️ Step-by-step:从Prompt到上线

    1. Prompt定骨架(Cursor中输入)

    生成一个单HTML文件,实现广场舞队形生成器:
    - 页面顶部:标题「广场舞队形生成器」+ 下拉选择预设阵型(同心圆、方阵、S形、蝴蝶、五角星)
    - 中间Canvas画布(600x600px),初始显示预设阵型的圆点(直径16px,红色#e74c3c)
    - 点击画布任意位置:添加一个新圆点(队员)
    - 长按圆点:拖拽移动
    - 右上角按钮「导出PNG」:调用canvas.toDataURL('image/png')生成下载链接
    - 底部显示当前队员数(例:共16人)
    - 所有代码内联,不引用外部JS/CSS
    - 适配手机横竖屏(Canvas自动缩放)
    

    Claude Code输出后,保存为dance-pattern.html

    ---

    2. 手动增强:让大爷大妈真的能用

    Claude Code生成的Canvas默认不支持触摸拖拽。加5行代码:

    // 在<script>里追加
    let isDragging = false;
    let draggedDot = null;
    
    canvas.addEventListener('touchstart', handleTouchStart, false);
    canvas.addEventListener('touchmove', handleTouchMove, false);
    canvas.addEventListener('touchend', handleTouchEnd, false);
    

    再补上三个函数(完整代码见文末链接)。重点:

  • handleTouchStart:遍历所有圆点,计算手指是否落在圆内(距离<20px)

  • handleTouchMove:实时更新圆点坐标

  • handleTouchEnd:清空状态
  • ---

    3. 预设阵型:用数学公式生成,不是手画

    例如「同心圆」:

    function drawConcentricCircles(ctx, centerX, centerY, numRings = 3) {
      for (let r = 1; r <= numRings; r++) {
        const radius = r * 40;
        const count = r * 8; // 每圈人数递增
        for (let i = 0; i < count; i++) {
          const angle = (i / count) * Math.PI * 2;
          const x = centerX + Math.cos(angle) * radius;
          const y = centerY + Math.sin(angle) * radius;
          drawDot(ctx, x, y);
        }
      }
    }
    

    Claude Code能写,但需在Prompt中明确:“用三角函数生成同心圆,每圈人数=圈数×8”。

    ---

    4. 导出优化:PNG带水印+尺寸适配

    原生toDataURL导出模糊。升级为:

    const exportCanvas = document.createElement('canvas');
    exportCanvas.width = 1200; // 2x清晰度
    exportCanvas.height = 1200;
    const exportCtx = exportCanvas.getContext('2d');
    // 复制原Canvas内容
    exportCtx.drawImage(canvas, 0, 0, 1200, 1200);
    // 加水印
    exportCtx.fillStyle = 'rgba(0,0,0,0.1)';
    exportCtx.font = 'bold 48px sans-serif';
    exportCtx.fillText('广场舞队形生成器', 200, 100);
    // 触发下载
    const link = document.createElement('a');
    link.download = 'dance-pattern.png';
    link.href = exportCanvas.toDataURL('image/png');
    link.click();
    

    ---

    🌟 传播密码:为什么队长主动转发?

  • 不注册:扫了就用,队长群直接发短链

  • 不教:所有操作就是“点一下加人、按住拖人、点按钮导出”

  • 有面子:导出图带水印,比赛报名时显得专业

  • 可炫耀:“我们队的新阵型,AI排的!”
  • ---

    🚀 接单延伸:3个轻量升级包

    | 升级 | 描述 | 客户价值 |
    |------|------|----------|
    | 【音乐节拍线】 | 在Canvas上叠加半透明节拍线(随BPM闪烁) | 解决“踩不准点”痛点 |
    | 【服装色块】 | 点击圆点,弹出颜色选择器(红/黄/蓝/绿),导出图带色块 | 满足比赛服装统一要求 |
    | 【分组标注】 | 长按圆点→选“分组”→输入A/B/C组,导出图自动标字母 | 便于教练指挥 |

    全部用Claude Code二次生成,平均交付时间:15分钟/个。

    技术永远服务于人。当广场舞队长笑着举起手机扫二维码时,你写的不是代码,是她们的舞台。

    (完整源码+预设阵型库:woshird.com/dance

    站长
    人人都是程序员,站长

    喜欢这条 tip?打赏作者一杯咖啡

    你的支持是持续更新的动力

    分享:

    👥 相关文章

    ‘扫码查快递’页面为何被物业拒收3次?第4次上线靠把‘请输入手机号’改成‘您的尾号是?’——微信表单里的身份信任链重建

    从3次被拒到当天上线,关键不在技术而在心理:用‘手机号后四位’替代完整手机号输入,提升中老年用户信任感与填写率。

    2026/4/23 · 阅读 1686

    删掉这行`<meta name="viewport" content="width=device-width">`后,我的‘宠物疫苗记录’网页在iPhone上突然能横屏看了——微信里最危险的‘响应式假象’

    一行被所有教程奉为圭臬的meta标签,竟是微信网页横屏显示的隐形杀手;本文用真实故障还原排查过程,并给出3种安全替代方案。

    2026/4/23 · 阅读 1382

    凌晨1:23,我把‘阳台养花浇水提醒’网页发到园艺群——3小时后,7位邻居问‘能同步到我家小米音箱吗?’

    一个零代码网页如何接入IoT设备?本文用Claude Code生成兼容Web Speech API的语音播报页,让AI提醒‘该浇薄荷了’,真正走进家庭生活流。

    2026/4/23 · 阅读 2532

    5个让社区团长抢着转发的「AI生成海报」救命技巧:不修图、不PS、不登录,扫码→说话→得高清PNG

    告别Canva注册和字体版权焦虑,用Claude Code+微信直出海报,聚焦真实高频场景:团购预告、活动通知、失物招领。

    2026/4/23 · 阅读 1605

    为什么我把‘扫码填表’按钮从蓝色换成橙色后,社区跳蚤市场登记率翻了2.8倍?——微信里最被低估的色彩心理学开关

    一次无心的按钮配色调整,意外撬动用户行为;本文拆解微信生态下按钮色彩对中老年用户的点击转化影响,并附可直接复用的AI Prompt与CSS代码。

    2026/4/23 · 阅读 2962