向量的平移、放大、对称、旋转

星空夜话 发表于 2006-08-21 20:27:28

上次写过一个只是关于向量旋转的,研究过矩阵后才发现这些东西完全都是矩阵的效应,太神奇了..

下面我们定义四种操作:
分别把点(x0,y0)变为
-平移M(x,y): --> (x0+x , y0+y)
-放大Z(L): --> (Lx0 , Ly0)
-翻转F(0): --> (x0,-y0) (按OX轴), F(1): --> (-x0,y0) (按OY轴)
-旋转R(a): a为逆时针旋转的角度. (x0*cosa-x0*sina , y0*sina+y0*cosa)

先面我们用矩阵来解释上面的操作:

P = [x0]
       [y0]

P' = Z * P;    Z = [L 0]
                            [0 L]

P' = F * P;    F = [1  0]   或者  F = [-1 0]
                            [0 -1]                    [0  1]

P' = R * P;    R = [cosa  -sina]   如果顺时针旋转,则取a = -a; 
                             [sina    cosa]
发现一个问题,上面并没有处理平移的操作M(x,y),那么我们又如何实现呢?

经过启发我们可以再增加一维来控制,把原来的P表示成:

p = [x0] 
       [y0] 
       [ 1]

则其他操作的矩阵可变为:

M = [1 0 x]       Z = [L 0 0]
       [0 1 y]              [0 L 0]
       [0 0 1]             [0 0 1]

F = [1  0  0]  或者 [-1  0  0] 
      [0 -1  0]            [ 0  1  0]
      [0  0  1]             [ 0  0  1]

R = [cosa  -sina  0]
       [sina   cosa  0]
       [  0          0      1]

我们用P的前两维来表示变换后的坐标,结果发现这样的几种常见的向量符合操作就变成
了矩阵相乘的关系,但由于矩阵相乘不可逆,所以要注意乘法的顺序.

关键词(Tag): 旋转 对称 放大 向量 平移


收藏: QQ书签 del.icio.us 订阅: Google 抓虾

最新评论


  • BunnyQ
    2006-08-21 23:38:59 http://blog.micy.cn

    貌似在图形学里都讲过的说 我复习的时候看了一遍感觉很爽.. 虽然最好考试没考吧..

    恩,好象讲过,当时的那个Octree也很有用。
    今天这个是因为我看了一个题目有感才写的...利用了矩阵相乘而优化了!~


  • 123
    2008-01-03 10:31:19 匿名 210.72.*.*

    旋转操作好像写错了
    应该是
    x0*cosa-Y0*sina , X0*sina+y0*cosa)

发表评论

* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 
 

分类小组论坛
杂谈, 娱乐、八卦, 文学、艺术, 体育, 旅游、同城, 象牙塔, 情感, 时尚、生活, 星座, 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定