AI 协作日志

学生 Web 实验作品平台

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

# 实验二 AI协作记录(请据实际情况填写)

## AI协作1 · Koch算法

### 我的目标与初步判断

目标是在原有框架中补充Koch雪花算法。我先根据三等分公式计算P、Q,并判断每条线段应替换成四条,因此第n层应有3×4ⁿ条线段。不确定的地方是生成顶点R时,旋转角度应该取正60°还是负60°。

### 关键提示词(原文)

“初始三角形顶点按逆时针排列。我已经算出三等分点P和Q,怎样判断旋转哪个方向才能让突起朝外?请解释判断方法。”

### AI关键建议摘要

沿逆时针轮廓行走时,内部位于边的左侧,外侧位于右侧,因此应将向量Q-P右转60°,再加到P上得到R。可以用一条从左向右的水平边检查,突起应位于下方。

### 我的测试方法与结果

先选取A=(0,0)、B=(3,0),得到P=(1,0)、Q=(2,0)。按照右转60°计算,R约为(1.5,-0.866),位于水平边下方,符合预期。

再检查各层顶点数量:Level 0、1、2、4分别为3、12、48、768,并观察边界是否连续闭合。

### 采纳情况及修正结论

采纳了通过边的方向判断内外侧的方法。不能单独记住“负60°”,而应结合顶点排列方向判断。递归时按A→P→R→Q→B的顺序处理,使用LINE\_LOOP自动连接最后一个顶点与首点。

## AI协作2 · 绘图板调试

### 具体错误现象(如一次成功,可先人为注入并恢复一个小错误)

绘图板中点击后无法在正确位置显示图形;创建线段或矩形时,第二次点击也不能正常完成对象。

### 我的初步排查

先检查点击事件是否触发,再查看坐标转换和对象保存语句。怀疑横坐标计算存在问题,同时需要检查第二次点击后是否将对象加入数组。

### 关键提示词(原文)

“点击事件可以触发,但点无法正常显示,线段第二次点击也不能完成。请帮我检查坐标转换和保存对象的代码,指出具体错误,不要重写整个程序。”

### AI建议与逐项测试

AI指出两个问题:

rect.waigth应为rect.width,错误属性会导致横坐标计算结果为NaN。

object.push(object)应为objects.push(object),应将单个对象加入保存所有图形的数组。



修改后分别测试画布中心和四角附近的点击,再创建点、线段和矩形,检查之前的对象是否保留。随后测试工具切换和清空,确认未完成的第一次点击不会影响下一次操作。

### 最终原因及修复证据

原因是属性拼写错误及单个对象与数组变量混淆。修正对应两行后,坐标计算和对象保存逻辑恢复正常。

通过点、线段和矩形共存,以及清空后重新绘制,检查修复效果。

## AI协作3 · 主题整合

### 主题及预期效果

选择“绽放”为主题,希望保留原有Koch雪花及旋转能力,在外围加入花瓣和枝条,使图案具有展开、生长的含义。

### 两个方案的AI提示词(原文)

“我想以‘绽放’为主题,保留Koch雪花和旋转动画。请比较两种用基本WebGL图元增加花瓣、枝条的方案,尽量沿用原有结构,并说明交互难度。”

### 方案比较、取舍理由

方案一:使用TRIANGLES生成实心花瓣,加入分叉枝条,点击时切换花瓣数量。视觉较明显,但需要同步管理花瓣及相关装饰的数量。



方案二:将圆环改成内外顶点交替的花瓣轮廓,将放射线扩展为分叉枝条,点击移动中心并增加Koch层数。可以继续使用原有LINE\_LOOP、LINES及控件结构。

### 实际实现、测试与结果

采用方案二。它对原有程序改动较少,几何构成和交互规则也容易解释。12片花瓣采用24个轮廓顶点,分叉枝条由成对顶点组成,便于检查数据组织。



没有采用方案一,是因为当前更希望保持原框架清楚,先完成要求,再考虑填充效果。

## 其他AI使用(若有)

工具、提示词及关键修改记录。

使用工具:ChatGPT。

其他协作主要包括解释任务要求、说明Uniform与Buffer的区别,以及整理提交检查事项。

参考提示词:“改变旋转角度时为什么只需要更新Uniform,而改变Koch层数需要重新生成顶点?”

理解到旋转不改变原始几何数据,可以由Shader根据角度计算位置;层数改变会影响顶点数量和坐标,因此需要重新生成并上传数据。