AI 协作日志
学生 Web 实验作品平台
学号:202412210607035 · 来源:ai-log.md
# 实验五AI协作与核验记录(学生填写)
学号:202412210607035 姓名:韦玉珍 日期:2026.11.9
> 必须记录**自己的预测、原始问题、AI建议、自主判断与实际核验**。AI代码不能代替本人解释。可附完整对话链接/记录,避免只放聊天截图而无测试证据。
## 协作一:观察与投影概念核验(Task B / C,3分)
1. 我的问题和事先预测(M/V/P中谁变化?预期画面如何变化):
我想搞清楚模型矩阵M、视图矩阵V、投影矩阵P分别控制什么。我的预测:Task B只修改视图V,模型M、投影P不变,拖动相机参数只会改变观察角度,茶壶本身大小、姿态不变;Task C只修改投影P,M、V保持不变,切换透视/正交时,模型本身、相机位置不动,只有物体呈现效果变化:透视模式近大远小,正交模式远近物体尺寸一致。
2. 我实际输入给AI的提示词:
解释M V P矩阵各自作用;正交投影和透视投影画面区别;为什么切换正交容易报矩阵无效。
3. AI建议摘要(包括关键数字依据):
M是模型变换矩阵,控制物体自身平移旋转缩放;V是相机视图矩阵,等价于把世界反向移动;P投影矩阵负责把观察空间映射到裁剪空间。正交矩阵构造时left/right、bottom/top由正交高度和宽高比算出;透视需要FOV角度转弧度。正交如果参数范围写错,容易生成NaN矩阵,触发报错。
4. 我的判断和采纳/拒绝理由:
采纳。和课上知识点一致:B任务只改动lookAt视图V;C任务要求固定M、V,仅替换P矩阵,不能改动模型、相机参数。
5. 我的测试参数、测试操作与结果(附截图/数值):
Task-B:切换iso、top、front视角,模型没有旋转变形,只是观察角度改变;
Task-C:固定near=0.1,far=100,aspect不变;透视FOV=50°,近大远小;正交高度=5.5,前后两个方块一样大。切换投影无红色报错。
6. AI是否正确?我最终修正了什么认识?
AI正确。纠正了我的误区:正交不是“把物体压扁”,是取消透视汇聚;投影矩阵只影响成像规则,不会移动三维空间里的物体。
## 协作二:程序故障诊断(Task C / D,4分)
1. 真实错误现象和我起初怀疑的原因:
现象:透视模式全部正常,一切换到正交投影,页面弹出“观察或投影矩阵含无效数值”红色警告,D任务的鼠标交互跟着失效。一开始我怀疑是D里面平移代码写错。
2. 向AI提出的诊断问题:
C/D/E透视正常,切换正交就报矩阵非法,可能是什么原因?怎么修改?
3. AI建议的至少两个可区分原因及测试:
原因1:ortho接口near、far符号传反,框架要求正数却传负数,矩阵出现无穷、NaN;
原因2:正交高度orthoH、near/far参数校验缺失,非法参数直接送入矩阵函数。
测试方案:保留原本C的ortho调用格式,不改动near/far正负;增加参数合法性判断,near>0、far>near、orthoH>0才构造矩阵。
4. 我实际逐项测试了什么?各自结果如何?
测试1:直接套用之前带负号near/far的ortho代码 → 报错;
测试2:换回老师示例的写法 CG5.mat4.ortho(proj, -w/2, w/2, -h/2, h/2, near, far),加上参数判断 → 正交报错消失,C正常,D、E正交模式也恢复可用。
5. 最终根因、修复处及修复后结果:
根因:最开始修改C的时候,擅自改动了ortho的near、far传参规则,和本CG5框架接口不匹配。
修复:回归框架原生ortho调用形式,增加参数合法性校验。修复后:正交、透视切换稳定,D的鼠标旋转、平移、滚轮推拉、键盘控制全部正常,不再报矩阵错误。
> 若首次没有故障,可以备份后临时制造一处可恢复错误,完成排查后修复。
## 协作三:综合工作台方案比较(Task E,3分)
1. 我准备完成的观察任务:
实现定点公转复合变换 $M_{orbit}=T(P)\cdot R_y(\theta)\cdot T(-P)\cdot T(q)\cdot S$:黄色方块为固定参考支点,橙色方块绕支点持续公转,并且正交、透视模式都能正常运动。
2. 向AI询问的两种设计方案:
方案一:使用框架内置pivot、angleY、offset属性交给框架自动计算;
方案二:手动利用三角函数,每帧直接算出公转后的世界坐标pos返回。
3. 两种方案的功能、矩阵链、测试难度对比:
方案一:代码简短,依赖框架内部对pivot字段的解析;缺点:本实验框架不识别该字段,物体静止不动,调试困难;
方案二:手动实现T(P)RyT(-P)T(q)变换逻辑,直接计算坐标,不依赖框架私有字段;矩阵逻辑完全自己可控,透视、正交都兼容,方便写原理说明,缺点代码稍微多几行。
4. 最终采纳的方案与理由:
采纳方案二。因为方案一在当前CG5平台无法驱动物体运动;手动三角函数计算位置,完全贴合题目定点旋转公式,方便核验变换顺序,正交透视都稳定运行。
5. 自己实现或修改的功能差异:
基础功能:黄色固定参考点、橙色公转物体;额外自主扩展:增加轨道圆环,直观展示公转轨迹,方便观察公转路径。
6. 预测与实际结果对照,仍存在的局限:
预测:小球匀速绕Y轴持续公转;实际效果符合预期。局限:目前转速固定,没有做按键启停、调速功能。
## 全局诚信声明
我提交的代码均已本人运行并核验;无法解释的AI输出未直接作为完成结果。
我明确标注了使用AI辅助的功能和本人自主完成的关键判断。