① T·R·S:先缩放,再旋转、平移
初始化中…
比较 T·R·S、R·T·S、T·S·R、S·R·T。四个视窗使用同样的观察和投影,保持模型、参数与坐标系一致;只改变 Model 矩阵的次序。
初始化中…
初始化中…
初始化中…
初始化中…
黄色:局部原点 O=(0,0,0) 的世界位置紫色:测试点 P=(1,0,0) 的世界位置
“预测”由坐标公式直接计算,不调用矩阵乘法;“矩阵”由 gl-matrix 的 Model 矩阵变换测试点计算。误差取两个点的六个坐标分量中的最大绝对差,允许 Float32 舍入误差 ≤ 10⁻⁵。
| 次序 | O 解析预测 | O 矩阵计算 | P 解析预测 | P 矩阵计算 | 最大误差 |
|---|
设输入点为 (x,y,z),平移量 t,缩放为 (a,1,b),c=cosθ,s=sinθ;下列公式均采用右手坐标系。
T·R·S(t+cax+sbz, y, −sax+cbz)
R·T·S(c(ax+t)+sbz, y, −s(ax+t)+cbz)
T·S·R(t+a(cx+sz), y, b(−sx+cz))
S·R·T(a(c(x+t)+sz), y, b(−s(x+t)+cz))
90° 预设 t=2、a=1.4、b=0.65:T·R·S 的 P 为 (2,0,−1.4),T·S·R 的 P 为 (2,0,−0.65)。180° 时本实验的 R 与对角缩放恰好可交换,部分结果重合只是特例,不能推出任意矩阵可交换。