MATLAB 平面线形变换 及验证多个点是否在同一直线

对于 y=A*x 

第一中理解可以看成是  已知A y 求解x

第二种理解可以看成  同过线行变换  将x变换到y 

例:

x=[0 1 1 0 0
    0 0 1 1 0];
A1=[-1 0
       0 1];
A2=[1.5 0
        0  1];
A3=[1 0
        0 0.5]
A4=[1 0.5
        0 1]
A5=[0.866 -0.5
        0.5 0.866]
%x实际是一个正方形
%0,0 1,0 1,1 0,1 0,0 坐标
%A1可以看成是  (x轴)a1 -1 0   (y轴)a2 0 1 对X的变换
%其他一次类推  可以观察下述图中矩形的坐标来体会这种理解
subplot(2,3,1)
fill([x(1,:),0],[x(2,:),0],'r')

subplot(2,3,2)
y1=A1*x;
fill([y1(1,:),0],[y1(2,:),0],'g')

subplot(2,3,3)
y2=A2*x;
fill([y2(1,:),0],[y2(2,:),0],'g')

subplot(2,3,4)
y3=A3*x;
fill([y3(1,:),0],[y3(2,:),0],'g')

subplot(2,3,5)
y4=A4*x;
fill([y4(1,:),0],[y4(2,:),0],'g')

y5=A5*x;
subplot(2,3,6)
fill([y5(1,:),0],[y5(2,:),0],'g')

 

变换后的结果如下图

红色的是原图  从第一行开始  1 2 3  红色下面 4 5 6 

2图对应A1 矩阵的变换结果   正方形的下边长  对应的向量是【 -1 0】 右边长的向量是  【0 1】 和A1的两个列向量一致

3图对应的下边长的向量是 【1.5 0】 左边长对应得向量是【0 1】 和A2两个列向量一致  

其他 一次类推     (从零零点 开始看 正方形  两个边  横边对应 变换矩阵的第一列   纵边对应变换矩阵的第二列)

 

变换矩阵的行列式的意义

通过MATLAB计算

S=[det(A1) det(A2) det(A3) det(A4) det(A5)]
abs(S)

结果

1.0000    1.5000    0.5000    1.0000    1.0000

也就是通过变换后   正方形的面积编程原来的多少倍

 

 

利用上述对图行的变换的方法

若有一些点  判断他们是否在同一坐标,思路如下

都减去最后一个点的坐标   那么 第一个点的坐标表示的就是第一个点和最后一个点所连向量方向

将该向量作为第一个变换列矩阵a1   将该向量旋转90度  作为第二个变换列向量a2

 

A=[a1 a2];

y=A*x    看y坐标是否有一个接近0  x是原来的  A是通过原来第一个点减去最后一个点构建的

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值