与2D中的旋转变换相比,3D中的旋转更细微差别,因为在3D旋转中,我们必须处理3轴(x,y,z)。
绕任意轴
共有三种旋转方式,在这里我们可以使对象平行于(或沿着)特定轴旋转,以使对象围绕其旋转的坐标保持不变,而其余两个坐标将发生变化。可能的旋转有以下三种:
- 绕X轴旋转,
- 绕Y轴旋转,
- 绕Z轴旋转。
1)绕x轴旋转: 在这种旋转中,对象平行于x轴(主轴)旋转,其中x坐标 保持不变,其余两个坐标y和z仅更改。考虑在3D空间中具有初始坐标P(x,y,z)的点使其平行于主轴线(x轴)旋转。坐标位置将变为P’(x,y,z)。
旋转变换矩阵用于计算新的位置坐标P’,如下所示:
2)绕y轴旋转:在这种旋转中,对象平行于y轴(主轴)旋转,其中 y坐标保持不变,而两个坐标x和z的其余部分仅发生变化。
考虑3D空间中具有初始坐标P(x,y,z)的点使其平行于主轴线(y轴)旋转。坐标位置将变为P’(x,y,z)。
3)绕z轴旋转:在这种旋转中,对象平行于z轴(主轴)旋转,其中 z坐标保持不变,其余两个坐标x和y仅改变。
考虑3D空间中具有初始坐标P(x,y,z)的点使其平行于主轴线(y轴)旋转。坐标位置将变为P’(x,y,z)。
注意:始终将逆时针方向的旋转角度视为+ ve,而始终将逆时针方向的旋转角度视为-ve。这是3D旋转中始终遵循的通用约定。
在立方体“ OABCDEFG”上执行旋转变换,并将其绕y轴沿逆时针方向旋转45 *。
我们得到下图:
现在,我们将沿(平行于)y轴应用旋转变换,即:
应用旋转变换后的坐标O变为:
应用旋转变换后的坐标A变为:
应用旋转变换后的坐标B变为:
应用旋转变换后的坐标C变为:
应用旋转变换后的坐标D变为:
应用旋转变换后的坐标E变为:
应用旋转变换后的坐标F变为:
应用旋转变换后的坐标G变为:
因此,在成功对多维数据集“ OABCDEF”执行旋转变换后获得的结果多维数据集将如下所示: