AI 协作日志
学生 Web 实验作品平台
学号:202412211401015 · 来源:ai-log.md
# 实验二 AI协作与核验记录 工具:ChatGPT(代码辅助) 真实用户提示词: > 查看现有代码,在此基础上优化完成要求 ## AI协作1:Koch算法理解 ### 目标及AI初步判断 原占位p=a、q=b、r为中点,不会形成四段雪花。逆时针边界外侧在右边,应对Q−P右转60°;n层预期3×4ⁿ段。 ### 内部核验问题 如何用三角形绕行方向与水平线测试确认±60°?如何使LINE_LOOP连续且不重复端点? ### 建议和实现 计算三等分点P、Q及R,依次递归A→P、P→R、R→Q、Q→B;终止时只输出A。三条初始边连续输出,闭合交给LINE_LOOP。 ### 核验方法 对[-1,0]→[1,0]检验R在下方;检查0—4层输出数、相邻线段长度和整体半径。具体已执行结果见evidence测试记录。 ### 取舍 保留递归规则,但将近似三角形改为精确等边三角形并居中,使用宽高比校正避免画布拉伸。没有照搬外部现成Koch程序;实现依据实验给定几何规则生成。 ### 学生本人补记 初步预测、实际操作结果、是否采纳及理由:初步预测修改后代码会在三角形边进行划分,在大三角形边上不断生产出相同的小三角形。实际操作结果:随着层次的深入,原本的大三角形不断生出小三角,外观更趋向于雪花状,采纳,正确采用递归思想,符合实验要求 ## AI协作2:绘图板调试 ### 原代码具体问题 pointerToNDC固定返回[0,0],所有点重叠中心;矩形使用[a,a,a,a],无法形成矩形;第二次点击不创建对象;清空不清对象数组。 ### AI排查判断 分别检查鼠标映射、四角构造、firstPoint跨事件状态及objects数组。坐标计算必须考虑CSS显示尺寸与Y方向;移除Canvas border改用outline,避免边框引入微小偏移。 ### 内部核验问题 取消Y轴翻转会产生什么现象?如何验证工具切换不复用旧端点? ### 修复及测试方法 用getBoundingClientRect归一化点击;矩形用min/max构造四角;第二次点击push对象后清空firstPoint;切换及清空取消半成品。验证对象共存、四角、调整窗口与缩放后的中心。测试中可逆注入Y符号错误,比较修复前后坐标,随后恢复。 ### 学生本人补记 本人现象、猜想、逐项操作与修复证据:原代码将点击位置固定在中心,矩形也没有正确生成,初步猜想是鼠标坐标没有转换正确,且没有保存完整的图形数据。根据AI建议,补全坐标转换和矩形四个顶点,并在切换工具时清除第一次点击的位置。已有测试记录显示,修改后点、线和矩形可以保存在对象数组中,切换工具不会沿用旧端点,清空后可以重新绘制。采纳,修改对应了原代码存在的问题,符合实验要求 ## AI协作3:主题方案比较 ### 主题 节律:以周期变化表现有序的时间与空间关系。 ### 内部方案问题 用基本WebGL图元提出两个能复用Koch与动画、又区别于教师示例的方案,比较图元数、交互难度和可解释性。 ### 方案一:轨道节律(采用) Koch核心+三条椭圆轨道+菱形卫星。每轨120条线段;每颗卫星2个三角形,1—12颗/轨,因此最多72个卫星三角形。默认Koch48段、三轨360段、18颗卫星36个三角形。交互为数量调节与脉动开关;参数少,周期运动含义直观。 ### 方案二:递归枝条生长(未采用) Koch核心+二叉枝条+叶片。若单根满二叉树深度d且根为0层,枝段数为2^(d+1)−1;叶片约2^d个。需要新增递归、枝长和角度控制,与B的递归能力重复,图案更易拥挤。 ### 采用理由及实质改动 选择轨道方案,取消原示例放射线、点状节点,增加交错椭圆和实心菱形;新增数量改变与周期缩放,而非只改标题。仅层次变化上传网格,其余帧复用同一Buffer并改变Uniform和绘制次数。 ### 实现与验证 新增部分位于task-e.js的rebuild、render和satellites/pulse事件。核验层次、卫星数、运行、脉动、尺度、定位、复位;证据以测试记录为准。 ### 学生本人补记 本人选择理由与操作观察:选择轨道方案,主要是卫星沿轨道运动更容易体现周期变化,与“节律”的主题相符。递归枝条方案与前面雪花的递归思想较为接近,因此没有采用。初步预测增加卫星数量后,轨道上的图形会更加密集,开启脉动并开始运行后,整体图案会周期性放大和缩小。已有测试记录显示,卫星数量、脉动开关和复位状态均能正确改变,采纳,既复用了前面的功能,也增加了新的几何组成和交互方式。