AI 协作日志

学生 Web 实验作品平台

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

# 实验四 AI协作记录

> 学号:202412211402002  
> 姓名:梁颢川 
> AI工具与使用版本:deepseek

## 协作1:变换次序核验(Task B)

### 我的目标与先验预测
局部原点(0,0,0),T=(2,0,0),Ry(90°),S=1。
预测:T·Ry·S 中心 (2,0,0);Ry·T·S 中心 (0,0,-2)。
理由:列向量下右侧先作用。M2 先平移把点移到 (2,0,0),再绕 Y 轴 90°,+X 转向 -Z。

### 关键提示词
> 在WebGL2列向量约定下,局部原点(0,0,0),平移(2,0,0),绕Y轴旋转90°。分别分析T·R与R·T的世界中心位置和计算步骤,并告诉我要打印哪些数值进行核验;不要直接重写完整代码。

### AI建议摘要
AI确认了两种顺序结果 (2,0,0) 与 (0,0,-2),建议打印 model 矩阵、`c.point(model,0,0,0)` 结果以及 tx/angle/scale 三个参数。

### 我的判断与手算
手算 Ry(90°) 把 (x,y,z) 变为 (z,y,-x)。T·0=(2,0,0);Ry·T·0=Ry(2,0,0)=(0,0,-2)。与AI一致。

### 我实际测试的参数与坐标
tx=2, angle=90, scale=1;status 显示 "T·R·S中心:(2.00, 0.00, 0.00) | R·T·S中心:(0.00, 0.00, -2.00)"。

### 运行现象/数值结果
暖色立方体在 +X,青色立方体在 -Z,与预测一致。

### 修正结论
矩阵乘法非交换;平移在旋转右侧会先被旋转"带走"。theta=0° 两者相同不能证明可交换。

## 协作2:程序调试(Task D)

### 错误现象与自己的初步分析
最初把 `Mshoulder = T(0,.55,0)·Rz(pitch)` 直接写,没乘 basePose,结果调 yaw 时臂不动。初步怀疑父位姿没传下来。

### 提示词
> 我的三维对象能显示,但修改父关节角度后探头位置异常。分析是否为矩阵顺序或局部坐标错误,每个错误进行测试,不要直接重写整份代码。

### AI提出的可能原因
1. shoulderPose 未乘 basePose;
2. pitch 轴用错(应为局部 Z 而非 Y);
3. tipPose 用了臂段绘制矩阵(含 S)而非关节位姿。

### 我逐项完成的测试
- 测试1:yaw=90,pitch=0,若肩部世界坐标不随 yaw 变 → 确认原因1。
- 测试2:pitch=45,观察臂倾斜方向是否绕 Z 轴。
- 测试3:打印 tipPose 与 armDraw 局部原点坐标,若 tipPose 被压扁 → 原因3。

### 真实原因与修复
原因是1:`shoulderPose` 起点写成了 `c.T(0,.55,0)`。改为 `c.chain(basePose, c.T(0,.55,0), c.R("Z",pitch))` 后探头跟随正常。

### AI建议是否采纳及理由
采纳原因1和3的分析;原因2经检查轴选择正确,未采纳。AI未直接改代码,符合要求。

## 协作3:主题场景协商(Task E)

### 我希望实现的对象关系
保留示例并做实质性修改:把样本台的环绕标记改为"双标记反向公转",并给基座增加一个竖直升降参数。

### 关键提示词
> 我已实现T·R·S、绕指定点旋转和两级父子变换。给我能够用简单立方体完成的三维联动场景,并比较部件关系、矩阵链、交互参数、验证难度。请复用现有WebGL2框架,不引入相机拾取、光照或外部库,也不要直接生成整套代码。

### AI提供的两个方案与比较
- 方案1:双环绕标记反向公转(不同 orbitAngle 符号),验证简单,矩阵链 `T(P)·Ry(±θ)·T(r)·S`。
- 方案2:增加升降滑块改变 basePos.y,验证时需要检查基座/肩部/末端三点整体上移。

### 我的选择理由
采用方案1为主、方案2为辅,两者都容易用中心坐标做数值核验。

### 实际矩阵链与交互参数
- 基座:`T(-2, -1.3+lift, 0)·Ry(yaw)`
- 肩部:`basePose·T(0,.55,0)·Rz(pitch)`
- 末端:`shoulderPose·T(0,2.2,0)`
- 样本自转:`T(P)·Ry(spin)·S`
- 标记1:`T(P)·Ry(+orbit)·T(1.16,.28,0)·S`
- 标记2:`T(P)·Ry(-orbit)·T(1.16,.28,0)·S`
参数:yaw、pitch、speed、lift 独立可调。

### 两组对照测试
- 状态1:yaw=25,pitch=-20 → 末端坐标预期随 yaw 旋转;实测一致。
- 状态2:yaw=25,pitch=0 → 臂竖直,末端 y 最高;实测一致。

### 最终结果和反思
两个标记呈对称轨道,与样本自转轨迹不同;暂停/继续无突跳;PNG 打开正常。AI 提供的是方案比较而非整段代码,我按矩阵链自行实现并核验。