%旋转矩阵在实际中应用广泛
%旋转矩阵式围绕原点00逆时针旋转的
%R=[cosa -sina
% sina cosa]
%a为某个角的时候 上述矩阵就是一个旋转角的矩阵
%如果连续旋转几次,R连乘几次就好
%非同维线性变换用途
% 投影 将二维投影到一维 A=[1 0]作用于 x数据集 相当于投影到x轴
%三维到二维 3D动漫人物到2D
%二维到三维
%转动符合封闭性 平移不符合向量封闭性 这样就需要增加一维
%将原来通过原点的平面沿垂直方向提高一个单位,与原平面保持平行 齐次坐标系
%假设三角形三个坐标(-1 1) (1 1) (0 2)
%旋转90度 右移3 上移4 设计变换矩阵A 画出变换后图形
%齐次数据矩阵
x=[-1 1 0 -1%第一列 -1 1第一个点的坐标 第二列 1 1第二个点的坐标
1 1 2 1%0 2 第三个点的坐标 第四个点 -1 1 和第一个点的坐标重合
1 1 1 1];%提高一个单位
%旋转矩阵 齐次化 对角补1 其他空位补零
R=[0 -1 0
1 0 0
0 0 1];%左上角4个 满足上述的旋转矩阵计算公式
%平移矩阵
M=[1 0 4
0 1 3
0 0 1];%单位阵列 后面 4 代表上移 3 代表右移动
y1=R*x;%求出转动后图形参数
y2=M*R*x;%求出两次变换后图形参数
plot(x(1,:),x(2,:))
hold on
plot(y1(1,:),y1(2,:))
hold on
plot(y2(1,:),y2(2,:))
%例如对梯形 做先旋转再平移同上
x=[ 1 1 2 2 1
1 1.25 1.75 1 1
1 1 1 1 1];
R=[0 -1 0
1 0 0
0 0 1 ];
M=[1 0 4
0 1 3
0 0 1 ];
figure
y1=R*x;%求出转动后图形参数
y2=M*R*x;%求出两次变换后图形参数
plot(x(1,:),x(2,:))
hold on
plot(y1(1,:),y1(2,:))
hold on
plot(y2(1,:),y2(2,:))
来源:51CTO
作者:qq_39653453
链接:https://blog.csdn.net/qq_39653453/article/details/101215593