AI 协作日志
学生 Web 实验作品平台
学号:202412215401032 · 来源:ai-log.md
# 实验二 AI协作记录 ## 1. Task B:Koch算法 **我要搞清楚的事**:凸起到底朝里还是朝外,还有为什么第 3 层是 192 段。 **我问 AI 的话**: > Koch 雪花一条边 A→B 怎么用三等分点和等边三角形算出向外凸的顶点 R?为什么递归到第 3 层线段数是 192? **AI 说的要点**: - 三等分点 P、Q 算出来后,以 PQ 为底往外做等边三角形,顶点 R = P + rotate(Q-P, -60°),也就是右转 60°。 - 逆时针多边形沿着边走里面在左边,所以"往外"就是往右转,-60° 才对;可以先用一条水平线试突起方向。 - 每段线变成 4 段,所以第 n 层是 3×4^n;第 3 层 = 3×64 = 192。 **我自己的判断**:我也觉得跟三角形绕的方向有关,逆时针应该右转,但符号老拿不准;段数逐层 ×4 感觉对,想亲眼确认。 **我做的验证**:打开 task-b.html,把 Level 从 0 拉到 4,记页面显示的线段数,顺手看凸起是不是都朝外。结果线段数是 3、12、48、192、768,每个凸起都朝轮廓外面,没有往里凹的。 **结论**:3×4^n 和 -60° 右转都对。代码里用的就是 -60°,跑出来全朝外,说明符号没错;之前我对旋转符号那点模糊认识,这次算搞清楚了。 ## 2. Task D:交互绘图调试 **现象**:做 Task D 时,点下去的位置和画出来的对不上,矩形方向也怪,还有两次点击的状态串了。 **我问 AI 的话**: > WebGL 绘图板点击位置偏移,矩形方向错乱,两次点击状态混乱。请列最可能原因和验证步骤,不要重写程序。 **AI 给的排查清单**: 1. 没用 getBoundingClientRect 直接用 clientX/Y → 加 rect 后偏移没了; 2. Y 轴没翻转 → 去掉翻转,顶部点的却画到底部,翻回来就正常; 3. 切换工具没清 firstPoint → 线段第一次点完切矩形,旧的第一点被复用画错,在 tool 切换里加 firstPoint=null 解决。 **我做的测试**: - 四角点"点"工具,位置都对,尤其顶部点在上、底部点在下,Y 方向没问题; - 我按建议故意把 Y 翻转那行注释掉,顶部点真的跑到底下去了,加回来就正常(这一步是人为制造错误再还原,还原后是对的); - 线段点完第一次切到矩形,旧的 firstPoint 被清空、没被复用,矩形位置正常; - 点"清空",旧图形全没了。 **最终原因 & 是否采纳**:根因就是 Y 轴翻转和跨事件状态清理。AI 的建议我都采纳了,一步步试下来全吻合,程序修好了。 ## 3. Task E:主题化整合 **主题与预期效果**:我的主题是"绽放",视觉上想表达从中心向外一层层展开、像花开放的感觉。 **我问 AI 的话**: > 用基本 WebGL 图元表达"绽放"主题,给两种方案并比较图元数量、交互难度和可解释性。 **AI 给的两个方向**: - 方案A:Koch 中心图案 + 旋转动画 + 外环 + 放射线/节点,交互用滚轮缩放、放射线数量滑块、点击切换呼吸、旋转控制; - 方案B:纯多层同心圆 + 旋转,图元最少但没复用算法图案。 **我的取舍**:选了 A。它复用 Task B 的算法和 Task C 的动画,几何上多了外环、放射线+端点两类 **我做的验证(打开 task-e.html)**: - 滚轮滚,图案整体放大缩小,好使; - 拖"放射线数量"滑块,放射线和端点数量跟着变; - 点一下画布,整体开始"呼吸"式缩放(绽放/收缩),再点关掉; - "开始/暂停旋转""反向""旋转速度"都能正常控制转动; - 拖 Koch 层数,雪花会重建; **结论**:作品跑起来跟我设计的一致 ---