AI 协作日志
学生 Web 实验作品平台
学号:202412211401027 · 来源:ai-log.md
# 实验四 AI协作记录
> 学号:202412211401027
> 姓名:朱勇锬
> AI工具与使用版本(如适用): 豆包
> 请用真实过程填充,保留关键提示词原文;不要只贴整段AI代码或聊天截图。
## 协作1:变换次序核验(Task B)
### 我的目标与先验预测
缩放和平移的矩阵不能交换 因为缩放默认根据世界原点缩放
### 关键提示词
补充c.chain不要改变代码结构
### AI建议摘要
使用 `c.chain(A,B,C)` 代表矩阵乘积 \(A\cdot B\cdot C\)(列向量,右侧先执行);
`modelTRS = c.chain(move, rotate, scale)`;`modelRTS = c.chain(rotate, move, scale)`;
给出 tx=2,angle=90°,scale=1 的手算预期。
### 我的判断与手算
tx=2,θ=90°,scale=1
\(T\cdot R\cdot S\):局部原点缩放、旋转后仍是原点,平移后中心点 \((2,0,0)\)
\(R\cdot T\cdot S\):先平移到 (2,0,0),绕 Y 轴转 90°,X→-Z,得到中心点 \((0,0,-2)\)
### 我实际测试的参数与坐标
tx=2,角度90,scale=1
### 运行现象/数值结果
状态栏输出:`T·R·S中心:(2.00, 0.00, 0.00) | R·T·S中心:(0.00, 0.00, -2.00)`;
两个方块位置明显分开;修改角度,TRS 方块位置不动、仅自身转向;RTS 方块跟着绕原点公转。
### 修正结论
矩阵变换顺序不能变 先移再转还是先转再移这二者不一样
## 协作2:程序调试(Task C或D)
### 错误现象与自己的初步分析
播放动画方块不动 初步猜测是没把rs拼进矩阵链
### 提示词
CG4框架Task C,实现方块自转和绕外部支点P公转。
使用c.chain,列向量,公式T(P)·R·T(-P)·T(q)·S。
不要重构代码,只填TODO位置,动画用dt增量实现匀速旋转。
### AI提出的可能原因
1. selfModel 需要 \(T_q\cdot R\cdot S\),实现物体在自身中心自转;
2. 绕点公转标准公式:\(T_P \cdot R \cdot T_{-P} \cdot T_q \cdot S\);
3. 动画循环 `angle + 0 * dt` 增量为 0,要改成角速度 × dt,用 60°/s,`%360` 循环。
### 我逐项完成的测试
1. 填入自转矩阵链,拖动滑块,方块可以原地自转;
2. 填入公转三明治矩阵链,拖动滑块,方块绕支点转动;
3. 修改角度更新语句,点击播放,方块持续旋转,360° 循环。
### 真实原因与修复
1.自转模型只写了平移,没有拼接旋转、缩放;
2.公转复合变换缺少 T (P)、T (-P) 配对;
3.动画增量系数为 0,角度不更新。
修复:使用 c.chain 组装对应矩阵,修改角度更新表达式。
### AI建议是否采纳及理由
全部采纳。矩阵链顺序和课程给的定点旋转公式一致,dt 时间增量写法适配 CG4 的 loop 机制,运行现象和理论预期匹配
## 协作3:主题场景协商(Task E)
### 我希望实现的对象关系
### 关键提示词
### AI提供的两个方案与比较
### 我的选择理由
### 实际矩阵链与交互参数
### 两组对照测试
### 最终结果和反思