AI 协作日志
学生 Web 实验作品平台
学号:202412211402026 · 来源:ai-log.md
# 实验四 AI协作记录 > 学号:20230000 > 姓名:张三 > AI工具与使用版本:豆包 ## 协作1:变换次序核验(Task B) ### 我的目标与先验预测 列向量,局部原点(0,0,0),T(2,0,0),Ry90°。 预测:T·R结果中心(2,0,0);R·T结果中心(0,0,-2)。 ### 关键提示词 > 在WebGL2的列向量约定下,局部原点为(0,0,0),平移(2,0,0),绕Y轴旋转90°。请分别分析T·R与R·T的世界中心位置和计算步骤,并建议我要打印哪些数值进行核验;不要直接重写完整程序。 ### AI建议摘要 列向量顶点右乘矩阵,右边矩阵先执行。 1. $M_1=T\cdot R$:先旋转,再平移。旋转不改变原点,平移直接把点挪到(2,0,0)。 2. $M_2=R\cdot T$:先平移到(2,0,0),再Ry旋转90度,(2,0,0)旋转Y得到(0,0,-2)。 建议打印c.point(model,0,0,0)局部原点变换后的世界坐标,不要只看画面。 ### 我的判断与手算 Ry(90°)矩阵作用向量(2,0,0) → (0,0,-2),预测正确。 ### 我实际测试的参数与坐标 tx=2, angle=90°, scale=1 ### 运行现象/数值结果 T·R·S中心=(2.00, 0.00, 0.00) R·T·S中心=(0.00, 0.00, -2.00),与手算完全吻合。 ### 修正结论 矩阵乘法不可交换;变换顺序极大影响结果;即使theta=0两者输出一样,也**不能证明矩阵可交换,只是特殊情况**。 ## 协作2:程序调试(Task C或D) ### 错误现象与自己的初步分析 > 制造bug:把绕P旋转写成`T(-P)·R·T(P)·T(q)·S`顺序颠倒,物体旋转轨迹完全错误,没有绕P转圈。初步怀疑矩阵相乘顺序。 ### 提示词 > 我的三维对象能显示,但修改父关节角度后探头位置异常。请提出三个最有可能的矩阵顺序或局部坐标错误,每个错误给出一项能区分原因的测试,不要直接替我重写整份代码。 ### AI提出的可能原因 1. 绕点旋转T(P)、T(-P)写反顺序。测试:P=(0,0,0)观察是否回到B任务结果。 2. 角度没有用dt增量更新,直接累加角度造成漂移;测试暂停动画看角度是否停止。 3. 混淆行向量、列向量,矩阵链条写反。测试打印局部原点世界坐标,对比手算。 ### 我逐项完成的测试 1. P=(0,0,0)测试,bug版输出位置不对,确认T(P)/T(-P)顺序颠倒。 2. 暂停动画,角度停止,dt逻辑没问题。 3. point输出坐标和手算对不上,定位到矩阵链。 ### 真实原因与修复 把 `T(-P)·R·T(P)` 修改为 `T(P)·R·T(-P)`。 ### AI建议是否采纳及理由 采纳,通过打印世界坐标定位矩阵顺序错误,不依赖肉眼画面。 ## 协作3:主题场景协商(Task E) ### 我希望实现的对象关系 机械臂父子关节,另外一组物体实现自转+公转,立方体模型,复用现有框架。 ### 关键提示词 > 我已实现T·R·S、绕指定点旋转和两级父子变换。请提出两个可在40分钟内用简单立方体完成的三维联动场景,并比较部件关系、矩阵链、交互参数、验证难度。请复用现有WebGL2框架,不引入相机拾取、光照或外部库,也不要直接生成整套代码。 ### AI提供的两个方案与比较 方案A:行星‑卫星系统:太阳,行星自转,卫星绕行星公转。优点概念贴合变换;缺点缺少机械臂父子关节。 方案B:医学定位机械臂+样本台。基座‑肩部‑探头父子;样本自转,标记绕样本公转。优点同时覆盖父子继承、自转、绕点公转,正好覆盖实验全部考点,UI控件现成。 ### 我的选择理由 选方案B,可以同时练习父子层次、自转、绕点公转,满足任务E全部强制条件:>=3部件、父子关系、两种复合变换,2个可调参数。 ### 实际矩阵链与交互参数 1. basePose = T(-2,-1.3,0)·Ry(yaw) 2. shoulderPose = basePose·T(0,0.55,0)·Rz(pitch) 3. tipPose = shoulderPose·T(0,2.2,0) 4. specimenDraw = T(P)·Ry(spinAngle)·S 样本自转 5. orbitMarker = T(P)·Ry(orbitAngle)·T(radius,0.28,0)·S 标记公转 交互参数:yaw基座角度,pitch肩部俯仰,speed动画速度,暂停重置截图。 ### 两组对照测试 测试1:yaw=30 pitch=0,探头跟随基座旋转,肩部姿态不变。 测试2:样本P=(2,-0.48,0),样本自转,标记绕样本转圈,两者角速度不同。 ### 最终结果和反思 E页面运行正常;父变换自动传递子对象;自转公转使用两套独立角度elapsed驱动。必须区分**关节位姿矩阵(只存旋转平移)和绘制矩阵(带缩放)**。