MATLAB对图形的旋转平移,验证多点是否在同一直线

%验证多点是否在同一直线参见 MATLAN平面线形一文

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值