AI 协作日志

学生 Web 实验作品平台

学号:202412211402026 · 来源:ai-log.md

# 实验二 AI协作记录
## AI协作1 · Koch算法
### 我的目标与初步判断
目标:完成Koch雪花细分函数subdivideSegment,线段三等分,向外生成60°顶点R,递归四段。
初步判断:只需要把线段分成3份,旋转向量得到顶点R;一开始不清楚旋转矩阵是向外还是向内,容易得到向内凹的错误雪花。
### 关键提示词(原文)
> WebGL2 js实现koch雪花 subdivideSegment函数,线段AB三等分P Q,向外旋转60度得到R,递归A-P,P-R,R-Q,Q-B
### AI关键建议摘要
1. 向量PQ做2D旋转矩阵:[x*cos−y*sin, x*sin+y*cos],向外凸取+60°;
2. level=0直接压入起点;递归调用4段;
3. 外层buildKoch遍历三角形三条边,收集全部顶点,最后用LINE_LOOP绘制闭合雪花。
### 我的测试方法与结果
修改level滑块0‑4;level0原始三角形;level1出现锯齿,level2标准雪花;顶点统计`3*4^n`与页面stats输出匹配。
### 采纳情况及修正结论
采纳向量旋转实现R点;调试确认旋转符号向外;修正递归调用顺序,成功绘制Koch雪花。

## AI协作2 · 绘图板调试
### 具体错误现象
最初写pointerToNDC忘记Y轴翻转,点击画布绘制图形上下颠倒;切换工具时,上次点击的firstPoint残留,会错误绘制图形。
### 我的初步排查
怀疑坐标转换Y方向,WebGL NDC Y轴向上,屏幕Y向下;切换工具没有清空firstPoint状态。
### 关键提示词(原文)
> WebGL canvas鼠标点击坐标转NDC [-1,1] Y轴翻转;绘图板切换工具清空firstPoint变量
### AI建议与逐项测试
1. 屏幕Y:`ndcY = -(2*yCanvas/height -1)`;
2. tool.change事件重置`firstPoint=null`;
测试:点击画布绘制点、线段、矩形,图形位置和鼠标点击位置一致,切换工具不会残留上次点击。
### 最终原因及修复证据
NDC转换Y没有取负;切换工具未清空状态。修复后点、线段、矩形绘图全部正常,stats计数对象数量正确。

## AI协作3 · 主题整合
### 主题及预期效果
主题“绽放”:基于koch雪花,增加多层同心圆环、花瓣两套新增几何;点击画布移动图案中心;按钮控制旋转动画启停;滑块调节层次、缩放。
### 两个方案的AI提示词(原文)
> 方案1:生成多层同心圆环顶点数组;
> 方案2:生成绽放花瓣,三角函数生成花瓣轮廓顶点数组;
### 方案比较、取舍理由
圆环可以烘托中心,花瓣贴合“绽放”主题;两个几何和原有koch雪花、放射线完全区分,满足作业要求:至少两处实质性新增几何。
### 实际实现、测试与结果
实现makeConcentricRings多层圆环,makePetals花瓣;点击画布修改center偏移;toggle控制running动画;reset复位全部参数。页面可以正常渲染组合图形,交互全部可用。

## 其他AI使用(若有)
协助定位各个Task的TODO位置,补全事件监听、动画帧delta时间计算、角度弧度换算代码。