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时间计算、角度弧度换算代码。