AI 协作日志
学生 Web 实验作品平台
学号:202412211402016 · 来源:ai-log.md
# 实验二 AI协作记录 AI工具:Codex。 学号:202412211402016。 记录范围:本日志参考实验一的“目标、提示词、AI建议、判断、测试与结论”结构,整理本次真实对话及工具运行结果。本次由用户提供学生填充版并要求补全TODO,代码实现、浏览器自动测试与截图检查由Codex执行。下文的算法判断和测试结果均注明执行者,不将AI测试写成学生本人已经亲自完成的实验。 本次真实关键提示词(原文): > 那你帮我做一份,完全按照要求,只修改todo内容,然后导出为文件夹,我自己解压 随后用户指定已经解压的实验2、实验3文件夹,并补充: > 那么就用这两个地址来进行吧,我已解压完成 以下三个协作点均来自上述同一次补全请求,没有另行编造三段独立的咨询对话。用户在咨询前的个人预测和亲自运行后的理解尚未在对话中提供;如课程要求个人独立核验,应由本人运行后如实补充。 ## AI协作1:Koch算法 ### 我的目标 按实验说明补全线段三等分、向外等边三角形顶点、递归和连续顶点输出,不改动原有WebGL初始化与Shader。 ### 提示词 使用上文所列真实补全请求;本次没有另行提出单独的Koch问题。 ### AI关键回答与判断依据 初始三角形顶点逆时针排列,沿边行走时外侧位于右侧,因此把向量Q-P右转60°后加到P,得到向外凸出的R。计算为: ```javascript const p=[a[0]+(b[0]-a[0])/3,a[1]+(b[1]-a[1])/3]; const q=[a[0]+2*(b[0]-a[0])/3,a[1]+2*(b[1]-a[1])/3]; const r=[p[0]+dx*c+dy*s,p[1]-dx*s+dy*c]; ``` 每条边按A→P、P→R、R→Q、Q→B递归。终止时只输出起点,使用LINE_LOOP连接末点与首点,顶点数等于线段数。每增加一级,每条线段变成四条,所以线段数为3×4^n。 ### 验证方法与实际结果(Codex执行) 在本地Edge浏览器逐级调整Task B的Level,读取生成点数并检查全部坐标处于可见范围[-1,1]。 | Level | 预期与实测顶点数 | |---:|---:| | 0 | 3 | | 1 | 12 | | 2 | 48 | | 3 | 192 | | 4 | 768 | 五级数量与边界检查均通过,相关算法同时补入Task C和E。Task A的Level 1、4检查分别得到3、81个三角形;重置检查通过。 ### 结论 采用右转60°和只输出递归起点的方案。保留原有Buffer上传和LINE_LOOP绘制结构,无需引入外部图形库。 ## AI协作2:绘图板调试 ### 现象 学生填充版Task D中的鼠标换算仍为占位实现,点击位置总被转换成(0,0)。这是未完成TODO导致的问题,不是本次新代码引入的故障。 ### 初步排查与AI建议 Codex检查pointerToNDC,发现xCanvas、yCanvas固定取画布中心,函数直接返回[0,0]。排查顺序为:浏览器鼠标位置→Canvas相对坐标→内部像素→NDC与Y翻转,再检查跨事件firstPoint、对象数组与绘制图元。 ### 提示词 沿用本次真实补全请求,没有虚构“我先发现了某个Bug”的单独提示词。 ### 实际对照测试(Codex执行) 在临时测试页面加载原始Task D脚本,点击Canvas内部约(180,155)处,读取首个对象顶点为(0,0)。随后恢复完成版脚本并在相同位置点击,读得约(-0.499,+0.500)。由于Canvas边框及显示尺寸,坐标接近理论(-0.5,+0.5),容差内通过。 继续验证:保留已有点后创建矩形,对象数为2;矩形有四个不同角点。在线段第一次点击后切换工具,firstPoint恢复为null。清空后对象数为0、firstPoint为null。 ### 最终原因、修改位置与结论 修改js/task-d.js中D1—D3的坐标换算、D4矩形角点、D6对象追加和D7清空状态。D5保存第一点的原始代码已正确,予以保留。坐标测试与状态切换均通过。 ## AI协作3:主题整合 ### 主题与预期效果 主题“绽放”,在Koch轮廓周围形成波浪花冠和12片菱形花瓣;点击移动花心并改变朝向。 ### 提示词与方案比较 沿用本次补全请求。以下为Codex在本次实现中采用的设计取舍说明,未声称用户另行发出了“两种方案比较”的提示词。 方案一:保留模板中的普通圆环、中心放射线和节点。这种方案实现少,但仅沿用模板不足以满足自主新增或实质修改两种几何的要求。 方案二:把圆环改为半径随cos(12θ)变化的波浪闭合轮廓,把放射线改为B→L→T→R→B组成的12片菱形花瓣。沿用WebGL LINE_LOOP与LINES,几何规则清楚,修改范围限于E1/E2。 ### 实际采用及新增交互 采用方案二;复用Koch生成、旋转动画与鼠标映射。在E3中除移动中心外,使用atan2计算点击方位角,使花冠改变朝向;E4切换动画。尺度滑块和层数控件保留原有功能。200字以内的设计说明在E1中填入页面原有说明框。 ### 验证方法与结果(Codex执行) 截图查看初始画面,确认波浪花冠、菱形花瓣和Koch轮廓可辨识。点击后读取center和theta均发生变化,并保存交互前后截图。Task C运行、暂停、反向及手动设置90°检查通过。全部Task A—E未出现JavaScript未捕获异常。 ## 核验材料与个人复核 evidence/包含Task A Level 1与4、Task E交互前后的截图及自动检查记录。截图和测试来自Codex本次运行。本人应再次打开index.html,亲自检查颜色、层数、暂停/反向、鼠标绘制和主题交互,并按真实情况补充自己的预测、理解及核验结论。