首页
社区
课程
招聘
[旧帖] [求助]矩阵运算意义 0.00雪花
发表于: 2012-10-25 11:59 1870

[旧帖] [求助]矩阵运算意义 0.00雪花

2012-10-25 11:59
1870
最近在自学3D游戏开发,其中不可避免的遇到了向量和矩阵这两个家伙。向量还好说,向量的加减都有其几何意义,点积可以用来判断两个向量的夹角,叉积可以求正交向量。
    矩阵到现在为止我知道怎么做运算,但不知道这样运算有什么意义。3D红龙书上看到一句话说:“借助矩阵乘法,我们可以对向量实施变换”。我就想不通了,为什么向量乘矩阵后算出来的向量他就变换了呢??求达人教我。

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 225
活跃值: (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
去学习立体几何 基础概念
2012-10-25 13:23
0
雪    币: 2015
活跃值: (902)
能力值: ( LV12,RANK:1000 )
在线值:
发帖
回帖
粉丝
3
解含n个未知数的n个一次方程,把X1 X2....Xn看成一个向量,方程组右边数值就是乘以矩阵得到的向量,方程组的系数就是那个矩阵。矩阵运算这里可以用来解方程组,初中老师可不会教你用矩阵来解方程组吧?提前学习线性代数,那初中的题目就都是浮云了
2012-10-25 13:35
0
雪    币: 49
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
线性代数是正解
2012-10-25 13:54
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
学习了  学习了 谢谢
2012-10-25 14:32
0
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
这几天我也找了一些资料,后来在同事推荐的一本《3D游戏基础:图形与游戏开发》中找到了我想要的答案,现在发出来给大家分享下:
    要知道矩阵为什么能变换向量我们要先知道向量以及向量加法,以及一些定义。

    向量定义:向量是有大小和方向的有向线段。
    向量加法法则:两个向量相加,将对应的分量相加就可以了。如:a[1,2];b[3,4],a+b = [1+3,2+4]
      向量加法的几何解释:平移向量,使向量a的头连接向量b的尾,接着从a的尾向b的头画一个向量,这条向量就是向量a+b的结果。这种理解方式叫做向量加法的“三角形法则”。
    通过三角形法则我们可以将向量[a,b],理解为向量[a,0]+向量[0,b],也就是说每一个向量都能解释为沿对应坐标轴移动对应的量然后相加。

    单位向量定义:单位向量就是模为1的向量,(通俗的讲法就是长度为1的向量)。一般将沿着坐标轴正方向的单位向量叫做:(某坐标轴的单位向量)。如:向量p[1,0,0]就是x轴的单位向量。

    标量与向量的乘法法则:向量[x,y] 乘 标量 k 等于 向量[kx,ky]。如:3[1,2,3] = [3*1,3*2,3*3]。

    下面有意思的来了:
    通过上面说明,我们可以知道对任意向量v都能写成为扩展形式:
    v = [x,y,z] = [x,0,0,] + [0,y,0] + [0,0,z]
      另一种略有差别的形式为:
    v = [x,y,z] = x[1,0,0] + y[0,1,0] + z[0,0,1]                        (某人喷:这不是P话吗,有什么意义呢)

      有意思的是上面数学上一模一样的东西在理解上却有质的变化。
    上面一种向量v被理解为:3个与坐标系平行的向量的相加。
    下面一种向量v被理解为:x,y,z轴单位向量的线性变换之和的结果。(想象一下3个坐标轴的单位向量被一双手拉来拉去的变换,最后这3个向量相加就成了向量v)

    现在我们用向量p,g,r表示x,y,z轴的单位向量,再代入v = [x,y,z] = x[1,0,0] + y[0,1,0] + z[0,0,1]里就会得到:v = xp + yq +zr。
    用p,q,r组成一个矩阵然后用一个向量去乘以该矩阵,得到:
            [px,0,0]
    [x,y,z]*[0,qy,0]  = [xp,yq,zr] = xp+yq+zr。[注:px指,单位向量p在x坐标轴上的分量,qy与rz同理]
            [0,0,rz]
   
                                                                  (汗:这样表示矩阵应该看得懂吧)
    发现了吧这和前面计算转换后的v的等式相同。

    所以向量乘矩阵就是这个向量变换到了这个矩阵所表示的坐标系中,得到变换后的向量在原坐标系中的表示位置。
   
    以上我是的理解,为了让大家有更深入的理解或是另一种理解方式,我将书上的原话发一遍:
    如果把矩阵的行为解释为坐标系的基向量,那么乘以该矩阵就相当于执行了一次坐标转换。若有aM = b,我们就可以说,M将a转换到了b。

    最后,如果有什么地方写的不对的请大家指正,谢谢。
2012-10-29 12:09
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我推荐你先去琢磨一下 希尔密码的原理
这里面不仅仅有矩阵的运算,同时对数群理论也有一定的要求
可以说矩阵运算是很多数学运算/密码学运算的基础。
2012-10-29 13:17
0
雪    币: 17
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
恩 很好 不错!MARK
2012-10-29 15:06
0
游客
登录 | 注册 方可回帖
返回
//