AI 协作日志
学生 Web 实验作品平台
学号:202312215301009 · 来源:ai-log.md
# 实验二 AI协作记录(代码建议已提供;运行证据待本人核验) > 重要:以下“实际测试结果”“Console状态”“截图”必须在本人电脑运行后填写。不要将尚未执行的检查写成通过。请保留真实提示词,并根据你实际与 AI 的对话调整记录。 ## AI协作1 · Koch算法 ### 我的目标与初步判断(本人填写) - 我原先认为: ### 关键提示词(原文) - 请检查我上传的实验二说明和ZIP起始项目,完成Task A到E的代码补全,保留原有目录结构,说明需要我实际运行验证的内容。 - (如另有针对 Koch 算法的提问,请粘贴真实原文) ### AI关键建议摘要 - 每条线段先计算三等分点 P、Q,再将向量 Q-P 顺时针旋转 60° 得到向外凸起点 R。 - 递归地将 A→B 替换为 A→P→R→Q→B;Level n 的边数应为 3×4^n。 - 顶点按边界连续顺序输出,使用 LINE_LOOP 绘制封闭边界。 ### 我的测试方法与结果(运行后填写) - 预测的 Level 0—4 线段数:3、12、48、192、768。 - 实际运行结果 / 截图文件名: - Console 状态: ### 采纳情况及修正结论(本人填写) - 我采纳或修改了哪些建议?依据是什么? ## AI协作2 · 绘图板调试 ### 具体错误现象(运行后填写) - 实际现象: ### 我的初步排查(本人填写) - 我首先检查: ### 关键提示词(原文) - (请记录你实际用于调试的提示词;如尚未单独提问,请运行后再进行并记录) ### AI建议与逐项测试 - 使用 getBoundingClientRect() 把 clientX/clientY 转为 Canvas 像素坐标,再转为 NDC,并翻转 Y 轴。 - 测试点:四角、中心、窗口缩放、工具切换时取消未完成的第一次点击、清空后重画。 - 实际测试结果 / Console 状态: ### 最终原因及修复证据(本人填写) - 修复前现象: - 修复后现象 / 截图: ## AI协作3 · 主题整合 ### 主题及预期效果 - 当前代码默认主题为“绽放”;可以修改主题文字及设计说明,建议结合本人实际修改后的作品填写。 ### 两个方案的AI提示词(原文) - (粘贴真实提示词;如尚未询问方案比较,请勿声称已完成) ### 方案比较、取舍理由(本人填写) - 方案一:Koch 边界 + 外环 + 放射连接线/节点。 - 方案二(请根据实际讨论补充): - 取舍理由: ### 实际实现、测试与结果(运行后填写) - 新增几何组成:外环、放射连接线、节点。 - 交互:缩放滑块、点击画布移动中心、旋转开始/暂停、层次滑块。 - 实际验证的变化 / 截图文件名: - Console 状态: ## 其他AI使用(如有) - 工具、提示词及本人核验记录: AI协作1:Koch算法 我的目标与初步判断 本次任务的目标是理解 Koch 雪花的生成规则,并通过 JavaScript 计算顶点,再使用 WebGL 绘制雪花边界。 我的初步判断是:每条线段需要分成三等份,并在中间部分构造一个向外凸出的等边三角形。每次细分后,一条线段会变成四条线段,因此随着层数增加,线段数量会不断增加。 关键提示词(保留原文) “如何理解 Koch 雪花算法中线段三等分和旋转 ±60° 的计算?为什么 Level 3 应该有 192 条线段?如何检查凸起方向是否正确?” AI关键建议摘要 AI 建议先理解单条线段的替换过程,再扩展到等边三角形的三条边。设线段端点为 A、B,先计算三等分点 P、Q,再通过旋转向量计算凸起顶点 R,最后按 A、P、R、Q、B 的顺序组织顶点。 AI 还指出,每次细分都会使线段数量变为原来的 4 倍,因此 Level 为 n 时,线段总数为 3 × 4ⁿ。计算凸起方向时,需要结合初始三角形的顶点顺序和边的方向判断。 我的测试方法与结果 测试方法:在浏览器中打开 Task B,分别选择 Level 0、1、2、3、4,观察雪花的形状,并核对页面显示的线段数量。 Level 0:线段数为3。 Level 1:线段数为12。 Level 2:线段数为48。 Level 3:线段数为192。 Level 4:线段数为768。 采纳情况及修正结论 我理解了 Koch 雪花中一条线段替换为四条线段的原因。通过对不同层数的图案和线段数量进行核对,可以判断递归终止条件及顶点生成顺序是否合理。 最终结论:线段数量与预期一致,图案连续且凸起方向正确 AI协作2:交互绘图调试 具体错误现象 Task D 需要通过鼠标点击创建点、线段和矩形,并在同一个 Canvas 中保留已经创建的图形。 重点检查的问题包括:鼠标点击位置是否准确、矩形在不同对角点击顺序下是否正确、切换工具后是否清除了未完成的绘图状态,以及清空操作是否有效。 实际观察到的现象:鼠标坐标偏移 我的初步排查 我准备从以下方面排查问题: 检查鼠标坐标是否使用 getBoundingClientRect() 转换。 检查 Y 轴是否正确翻转为 WebGL 的坐标方向。 检查第一次点击保存的 firstPoint 是否在第二次点击后清除。 检查切换工具或清空画布时,未完成的绘图状态是否重置。 检查绘制新图形时,JavaScript 中保存的已有对象是否仍然保留。 关键提示词(保留原文) “请帮我检查 WebGL 交互绘图板中可能出现的鼠标坐标偏移、矩形方向错误和两次点击状态混乱问题。请分析可能原因,并给出逐项验证的方法,不要直接重写整个程序。” AI建议与逐项测试 AI 建议优先检查 Canvas 的显示尺寸与实际像素尺寸是否一致,并使用 getBoundingClientRect() 将浏览器窗口坐标转换为 Canvas 坐标,再转换为 NDC 坐标。 对于线段和矩形,建议通过状态变量保存第一次点击的位置,在第二次点击时生成完整图形,并及时清除临时状态。切换工具和清空画布时,也应取消尚未完成的绘图操作。 实际测试记录: 点的位置测试:正常。 线段与矩形测试:正常。 工具切换测试:正常切换。 清空测试:正常,旧图消失。 AI协作3:主题整合 主题及预期效果 我计划将 Task B 的 Koch 雪花算法与 Task C 的旋转控制结合起来,设计一个具有几何秩序感的 WebGL 交互图案。 主题:“秩序”。 预期效果:通过规则化的几何结构表现图案的重复与对称,并通过交互操作观察图案位置、尺度或旋转状态的变化。 两个方案的AI提示词(保留原文) “请为计算机图形学实验的 WebGL 主题作品提出两种设计方案。要求复用 Koch 雪花算法、旋转动画或鼠标交互绘图中的至少两项能力,新增至少两个由 WebGL 绘制的几何组成部分,并设计至少两种有效交互。请比较图元数量、实现难度和可解释性。” AI提出的可选方案 方案一:几何秩序图案 以 Koch 雪花为主体,增加外环和从中心向外延伸的连接线,并在连接线端点添加节点。使用旋转控件改变整体方向,使用滑块控制图案尺度。 优点:能够复用已有的雪花算法和旋转控制,几何构成容易解释。 需要注意:外环、连接线和节点必须由 WebGL 实际绘制,不能只使用 HTML 或 CSS 模拟。 方案二:交互式生长图案 以递归几何图案为基础,增加分支和端点标记,通过鼠标点击改变图案中心,并通过参数控件控制图案展开程度。 优点:主题表达直观,交互变化明显。 需要注意:需要额外维护分支顶点数据和鼠标交互状态,调试工作相对更多。 方案比较、取舍理由 我选择方案一,主要考虑了现有代码的复用程度、几何组成的可解释性以及交互实现难度。 没有选择另一方案的原因是:实现时间困难 实际实现、测试与结果 实际完成的几何组成部分:圆,线,雪花。 实际完成的交互方式:。 测试方法:先观察作品初始状态,再逐一操作交互控件,比较操作前后的图案变化。 实际测试结果:正常运行。 最终结论:符合实验要求。