MATLAB对图形的旋转平移

匿名 (未验证) 提交于 2019-12-03 00:11:01

%旋转矩阵在实际中应用广泛
%旋转矩阵式围绕原点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,:))

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!