线性代数之仿射变换

编程入门 行业动态 更新时间:2024-10-24 22:25:13

<a href=https://www.elefans.com/category/jswz/34/1750895.html style=线性代数之仿射变换"/>

线性代数之仿射变换

仿射变换,又称仿射映射,是指在几何中,一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间.--维基百科

 

上面是解释不是那么好理解,举个简单的例子:

例如:你家的坐标在平面地图上是一个点,这个点的坐标是(0,0),在你家正前的有面旗,旗的坐标(100,0),这时一位农民伯伯在旗杆下栓了一头牛(民以食为天),栓牛的绳子长度3米时,这时想知道这头牛相对你家这个点能活动的坐标范围。
要接这个问题,用初等数学也可以解,但算起来会十分的麻烦,初等数学的常常是把X,Y的坐标独立起来计算。而使用线性代数就很好求解了。

解:这头的相对旗的移动角度是0-360°,我们先以旗为相对原点计算牛的可以移动的坐标
        升速速绳子长度;θ牛刚刚被栓上时的角度


    X =lcosθy

    Y =1SINθ


    牛现在还是动了,牛动的方向是从飞机上看地面逆时针转动β

x` = l cos(θ+β)= l(cosθcosβ-sinθsinβ)=xcosβ- ysinβw

y`= l sin(θ+β)= 1(cosθsinβ+sinθcosβ)=xsinβ+ycosβ
    
用行列式表达

    化简就是R(θ)[X,Y] =


    矩阵的乘法第一个行的每个元素依次乘以第二个矩阵对应列的元素。
    如果刻意不会请自行_ _百度
    
到现在为止旋转好了,现在问题来了,这个化简的确定了,如何将现有的坐标转换到你家所在的坐标系。
很简单,将旗杆的点平移到你家的点上,平移就非常简单了,就是简单的XY将上相应的系数

转换为矩阵

为什么变成三维矩阵了?为了方便计算,引入齐次坐标。

什么是齐次矩阵?用的n + 1维坐标表示Ñ维坐标。就是为了方便计算,可以这一任务,线性代数不是本事就存在的定量,而是为了计算的方便,人为规定一种简化计算的方法。

平移是3×3的矩阵,旋转是2×2矩阵,又没有办法把两者合并起来,一步计算到位,当然有,就是使用齐次坐标,把二维的旋转转换到3维,实际上所有的高维度在低维度上都是有投影的,这样,我们把二维的矩阵增加一个三维的单位矩阵,这样就有了

多么美妙的公式啊,以后计算一个点的放射变换在2维度平面直接代入上面公式就确定,这样牛的位置和范围也可以计算出来了

飞机上向下看的点很重要,上帝视角是在第三个维度上才能看到,至今没有发现外星人,也许正如“三体”中外星人在高维度上俯瞰三维空间的我们,那天看我们不爽就来个降维打击,扯远了。

飞机上看实际就是在XY以外的ž轴上看XY所在平面上的点的运动。

同理在有XY平面就有XZ,YZ平面,那他们的放射变换是如何的呢?

绕X轴逆时针旋转θ角:

绕ÿ轴逆时针旋转θ角

绕ž轴旋转角的旋转矩阵为: 


죽을래?平移如何加上去?

这里现在就是在三维空间上的仿射变换了,就得再加一个维度了

有点懒去隔壁偷了一张图片,还是注明一下吧

关于3D坐标变换的数学原理_Sonictl的博客-CSDN博客_三维坐标变换原理

隔壁写的那个机械臂坐标计算的例子非常好,3D坐标的转换本质上和二维平面的放射变换是相同的。

结尾就不写这头你家楼下的牛能活动的范围了,公式都给出来了,随便编个程序实现一下就可以了

    

更多推荐

线性代数之仿射变换

本文发布于:2023-06-27 07:58:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/908445.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:线性代数

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!