AI 协作日志

学生 Web 实验作品平台

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

# 实验三 AI协作记录

## AI协作1:矩阵和变换次序
我自己的预测:我以为公转是 T·R,自转是 R·T。
AI工具与原始提示词:"列向量约定下,公转和自转的矩阵顺序分别怎么写?"
AI的建议:公转(绕世界原点)= R·T(c),自转(绕自身中心)= T(c)·R。我预测反了。
本人计算、运行与证据:取中心 (0.8,0) 转 90°,R·T 后物体到 (0,0.8)(位置变了),T·R 后仍在 (0.8,0)(只是朝向变了)。task-b.html 拖角度滑块验证一致。
采纳或修正结论:采纳。公转 multiply(R,Tc),自转 multiply(Tc,R)。
## AI协作2:实际故障排查- 错误现象:改完 R() 后报 "M.rotateZ is not a function",页面卡在初始化。- 我先检查了什么:node --check 语法没问题,再读 common/gl-matrix.js 源码。
AI工具与原始提示词:"离线 gl-matrix 子集没有 rotateZ 方法,怎么查它提供了哪些 API?"
AI建议:直接读源码看 mat4 对象上有哪些方法。
实测结果:源码里是 fromX/fromY/fromZRotation,不是 rotateX/Y/Z。改完后 5 个数值测试全 ✓。另外还踩过 drawCount 变量名不一致的坑,统一后解决。
## AI协作3:设计方案比较
我考虑的两种实现:三角波用分段 if,还是用绝对值 1-|2p-1|。
AI工具与原始提示词:"周期为1的三角波怎么写最简洁?"
对比、取舍:两种写法自测点(0/0.25/0.5/0.75/1→0/0.5/1/0.5/0)结果一致,选绝对值版本更短。
实际实现及核验:
  function triangle01(t){
    const p = t - Math.floor(t);
    return 1 - Math.abs(2*p - 1);
  }
  控制台验证 5 个自测点全对,C-03 周期缩放呼吸效果正常。