AI 协作日志
学生 Web 实验作品平台
学号:202412211401015 · 来源:ai-log.md
# 实验五AI协作与核验记录 学号:__202412211401015___ 姓名:___陈贤誉_____ 日期:2026-11-09 提示词:审核当前代码,根据要求说明缺失了哪些代码并补充完成,告诉我为什么要这样补充。 ## 协作一:观察与投影概念核验 1. **问题与预测草稿:** 改eye应只改变V;模型世界中心不动。正交下等尺寸物体不因深度不同而改变尺寸;透视下较近者较大。增大FOV使投影缩小。 2. **诊断问题:** AI依据总提示词拆解为“用哪些控制变量及坐标数值区分M/V/P?”;不是额外虚构的本人提问记录。 3. **AI建议:** 保持N/M,切换正面→侧面→正面;固定M/V切换P;固定P让滚轮只改变eye。打印世界中心、View和Model矩阵、scale、eye距离。 4. **判断草稿:** 采纳数值与截图并行核验。仅凭单个物体看起来转动,不能判定改变的是M还是V。 5. **实际自动验证:** 四个预设的世界中心均为(0,0,0),正面返回后View/Model逐项相等;改变P前后M/V逐项相等;相机距离8→7.095363,Model尺度仍为1。证据见两个JSON、B各视图及C对照图。 6. **结论:** 结果支持上述预测;应比较世界坐标与状态,不能把画面相似解释成同一数学机制。 ## 协作二:可恢复故障诊断 1. **制造的错误:** 自动化测试临时把透视函数使用的aspect固定为1,球体横向拉伸。故障仅注入测试页面内存,磁盘源代码未保留该错误。没有JavaScript/Console异常,说明“无报错”不等于投影正确。 2. **排查问题:** 在同一M/V、同一球体下,从宽高比、裁剪范围、矩阵顺序和观察基向量区分形变原因。 3. **候选与最小测试:** ①aspect错误:比较画布宽/高与P使用的aspect;②裁剪错误:恢复near=0.1/far=100;③Model非等比:检查三轴尺度与N;④屏幕平移方向错误:换侧视检查right/up。 4. **实际自动测试:** 画布aspect=1.6,错误P用1,单位横纵长度的屏幕比例为1.6;near/far与M/V保持原值。恢复实际aspect后比例为0.999999956。侧视Shift平移100、-50像素,在正交高度5、画布高500时得到(0,0.5,-1)。 5. **根因与修复:** 形变来自P丢失画布宽高比;恢复 `ex.projection(state, aspect)` 后球体不再拉伸。见 `C_fault_aspect.png`、`C_fixed_aspect.png` 及browser-results对应条目。 ## 协作三:综合工作台方案比较 1. **观察问题:** 自转与绕指定点旋转时,模型世界中心是否改变? 2. **比较问题:** 在已有模块上,比较可编辑旋转中心与双画布投影对照的功能、矩阵链和测试难度。 3. **方案比较:** | 方案 | 功能与矩阵链 | 代价与验证 | |---|---|---| | 任意指定点旋转 | 输入P;`T(P)·Ry·T(-P)·M`;显示P和运动标记 | 复用现有绘图与UI,可验证P固定、半径不变及世界中心轨迹 | | 正交/透视双画布 | 两画布共用M/V/N,分别使用P_ortho和P_persp | 需同步两套绘图上下文、尺寸及截图,改动较多 | 4. **当前选型:** AI提出并实现第一种方案,理由是能用较少改动检验完整复合矩阵。最终采用与提交责任由我在本人复核后确认,不将AI选型冒充本人先前决定。 5. **实质扩展:** 增加P的XYZ输入、半径、主OBJ联动开关、绕点状态栏;并逆变换键盘位移,使主OBJ绕点后A/D等仍沿世界轴移动。不是只修改标题或颜色。 6. **两组预测与结果:** P=(1,0,0),主模型初始中心q=(0,0,0)。θ=0°预期及实测中心(0,0,0);θ=90°预期及实测(1,0,1),P保持(1,0,0)。标记从(2.25,0,0)到(1,0,-1.25),半径保持1.25;再按D后中心(1.1,0,1)。详见E两张图及JSON。