AI 协作日志
学生 Web 实验作品平台
学号:202412211401017 · 来源:ai-log.md
# 实验四 AI协作记录 > 学号: 202412211401017 > 姓名: 叶毅 > AI工具与使用版本:豆包 > 请用真实过程填充,保留关键提示词原文;不要只贴整段AI代码或聊天截图。 ## 协作1:变换次序核验(Task B) ### 我的目标与先验预测 一开始以为"平移2再转90°"和"转90°再平移2"差不多,立方体最后应该都在同一个位置。 ### 关键提示词 > 列向量约定下,局部原点(0,0,0),平移(2,0,0),绕Y轴转90°。T·R 和 R·T 两种写法,原点最后世界坐标分别是多少?帮我理一下步骤,不要直接给完整代码。 ### AI建议摘要 T·R 是先旋转再按世界坐标平移,平移方向不受旋转影响;R·T 是先平移,平移出来的那个向量再被旋转带偏,所以方向会变。 ### 我的判断与手算 按 AI 说的思路推了一下: - T·R:原点先被R转(原点不动),再平移(2,0,0),应该落在(2,0,0)。 - R·T:原点先平移到(2,0,0),再绕Y转90°,x方向被甩到-z,大概落在(0,0,-2)。 ### 我实际测试的参数与坐标 tx=2、angle=90°、scale=1,点"一键设置90°测试"。 ### 运行现象/数值结果 状态栏显示:T·R·S中心(2.00, 0.00, 0.00),R·T·S中心(0.00, 0.00, -2.00)。和手算完全一致,暖色立方体在x=2那边,青色立方体在z=-2那边。 ### 修正结论 之前直觉错了,矩阵乘法真的不可交换。R·T 里那个平移向量是被旋转过的,不是世界坐标里的(2,0,0)了。theta=0°时两个结果碰巧一样,但不能说明乘法可交换。 ## 协作2:程序调试(Task C) ### 错误现象与自己的初步分析 一开始写绕P旋转矩阵时,把 T(-P) 和 T(P) 的位置放反了,写成了 T(q)·T(-P)·R·T(P)。结果立方体转起来不是绕着黄色P点画圆,而是越飞越远,轨道中心明显不在P上。 ### 提示词 > 我想让立方体绕世界坐标点P旋转,矩阵链应该怎么排?我把 T(P) 放在最右边、T(-P) 放在最左边,结果轨迹不对,可能哪里错了? ### AI提出的可能原因 绕任意点旋转的标准写法是 T(P)·R·T(-P)·T(q)·S。先 T(-P) 把P挪到原点,在原点转完,再 T(P) 挪回去。如果 T(P) 和 T(-P) 顺序反了,相当于先在原点转完再整体平移P,物体就不是绕P转了。 ### 我逐项完成的测试 1. 先按反序写,设 P=(1,0,1),转90°,看到立方体跑到离P很远的地方,确认顺序有问题。 2. 改成 T(P)·R·T(-P)·T(q)·S,同样P=(1,0,1)、90°,立方体从(2,0,0)走到(0,0,0),正好在P周围。 3. 跑满360°,立方体回到初始位置(2,0,0),黄色P标记一直没动。 ### 真实原因与修复 就是 T(P) 和 T(-P) 顺序搞反了。改过来之后轨道就对了。另外还碰到一个小问题:暂停按钮按下去之后角度还在自己涨,查了一下 loop 里没判断 playing,加了 if(playing) 才正常。 ### AI建议是否采纳及理由 采纳了。顺序改完一次就对,360°回原位、P不移动这两个验收点都过了。 ## 协作3:主题场景协商(Task E) ### 我希望实现的对象关系 ### 关键提示词 ### AI提供的两个方案与比较 ### 我的选择理由 ### 实际矩阵链与交互参数 ### 两组对照测试 ### 最终结果和反思