精华内容
下载资源
问答
  • 图形变换矩阵

    2017-06-22 21:42:58
    图形变换矩阵     | 包括平面的和空间的 如果把点定义为行向量,那么根据矩阵的乘法,变换矩阵的形式只能是这样的: P'=PT 其中的P’...

    图形变换矩阵   

       |

    包括平面的和空间的

    如果把点定义为行向量,那么根据矩阵的乘法,变换矩阵的形式只能是这样的:

    P'=PT

    其中的P’是变换后的点坐标,而P为变换前的坐标,T为变换矩阵

    图形变换矩阵 - Castor - 趁年轻,多折腾~~

    空间图形的几何变换

    和前面类似,采用一个1*4的行向量表示空间中的一个点,则变换矩阵将为4*4阶,变换方式依旧是:

    P’=PT

    假设:

    图形变换矩阵 - Castor - 趁年轻,多折腾~~

    可以根据三维图形变换矩阵的功能,将其划分为四个块:

    图形变换矩阵 - Castor - 趁年轻,多折腾~~产生比例,对称,错切,旋转等基本变换

    图形变换矩阵 - Castor - 趁年轻,多折腾~~产生平移变换
     
    图形变换矩阵 - Castor - 趁年轻,多折腾~~ 产生透视变换
       s产生全比例变换

    1.       比例变换

    图形变换矩阵 - Castor - 趁年轻,多折腾~~

    其中的a,e,j分别为x,y,z三个方向上的比例因子
    2.对称变换
    共有三个平面,分别如下:

    图形变换矩阵 - Castor - 趁年轻,多折腾~~

     
    3.  错切变换
        错切变换是画斜轴测图的基础。

    沿x含y错切

    图形变换矩阵 - Castor - 趁年轻,多折腾~~

    沿x含z错切
     

    图形变换矩阵 - Castor - 趁年轻,多折腾~~

    沿y含x错切

    图形变换矩阵 - Castor - 趁年轻,多折腾~~

     沿y含z错切

    图形变换矩阵 - Castor - 趁年轻,多折腾~~

    沿z含x错切

    图形变换矩阵 - Castor - 趁年轻,多折腾~~

     沿z含y错切

    图形变换矩阵 - Castor - 趁年轻,多折腾~~

    4.旋转变换
     

    图形变换矩阵 - Castor - 趁年轻,多折腾~~

    5.平移变换

    图形变换矩阵 - Castor - 趁年轻,多折腾~~

    其中的lmn分别为xyz方向上的平移量

     

    以上这些都是计算机图形学中的基础知识,基本上都是这么写的,但是实际在AutoCAD内部,却并不是这样的,我会在后面的文章中提到的。

    展开全文
  • 图形变换矩阵小结

    2013-07-10 23:50:00
    近日研究freetype,需要用到一些矩阵变换,发现以前学的差不多都忘光了,遂复习了一下,并借来此文备忘。 ... ...三维图形变换 和前面类似,采用一个1*4的行向量表示空间中的一个点,则变换矩阵...

    近日研究freetype,需要用到一些矩阵变换,发现以前学的差不多都忘光了,遂复习了一下,并借来此文备忘。

    原文:点击打开链接,感谢作者!

    二维变换矩阵

    如果把点定义为行向量,那么根据矩阵的乘法,变换矩阵的形式只能是这样的:
    P'=PT
    其中的P’是变换后的点坐标,而P为变换前的坐标,T为变换矩阵

    图形变换矩阵 - Castor - 趁年轻,多折腾~~


    三维图形变换

    和前面类似,采用一个1*4的行向量表示空间中的一个点,则变换矩阵将为4*4阶,变换方式依旧是:
    P’=PT
    假设:

    图形变换矩阵 - Castor - 趁年轻,多折腾~~

    可以根据三维图形变换矩阵的功能,将其划分为四个块:

    图形变换矩阵 - Castor - 趁年轻,多折腾~~产生比例,对称,错切,旋转等基本变换

    图形变换矩阵 - Castor - 趁年轻,多折腾~~产生平移变换
    图形变换矩阵 - Castor - 趁年轻,多折腾~~产生透视变换
    s产生全比例变换

    1.比例变换

    图形变换矩阵 - Castor - 趁年轻,多折腾~~

    其中的a,e,j分别为x,y,z三个方向上的比例因子
    2.对称变换
    共有三个平面,分别如下:

    图形变换矩阵 - Castor - 趁年轻,多折腾~~

    3. 错切变换
    错切变换是画斜轴测图的基础。

    沿x含y错切

    图形变换矩阵 - Castor - 趁年轻,多折腾~~

    沿x含z错切

    图形变换矩阵 - Castor - 趁年轻,多折腾~~

    沿y含x错切

    图形变换矩阵 - Castor - 趁年轻,多折腾~~

    沿y含z错切

    图形变换矩阵 - Castor - 趁年轻,多折腾~~

    沿z含x错切

    图形变换矩阵 - Castor - 趁年轻,多折腾~~

    沿z含y错切

    图形变换矩阵 - Castor - 趁年轻,多折腾~~

    4.旋转变换

    图形变换矩阵 - Castor - 趁年轻,多折腾~~

    5.平移变换

    图形变换矩阵 - Castor - 趁年轻,多折腾~~

    其中的lmn分别为xyz方向上的平移量


    展开全文
  • android 图形变换矩阵讲解

    千次阅读 2016-08-14 10:18:05
    我们的屏幕,就像是一个窗口,透过它,我们看到了屏幕后面的世界,那里面有各种物体,我们看到的是映射在x,y平面上的一个投射图像。屏幕就像是一个镜头一样,将里面的物体映射到x,y平面上,成为一个二维的图像。...

    这里写图片描述

    看上图,这里表示了屏幕的坐标系,其中的x,y轴是大家所熟知的,但是其实,一个物体他是存在于一个三维空间的,所以必然会有z轴。我们的屏幕,就像是一个窗口,透过它,我们看到了屏幕后面的世界,那里面有各种物体,我们看到的是映射在x,y平面上的一个投射图像。屏幕就像是一个镜头一样,将里面的物体映射到x,y平面上,成为一个二维的图像。那么如果,我们把屏幕这个镜头沿着z轴,拉远或者拉进,那么图像会有什么变化呢,肯定会变小或者变大。就好比坐在飞机上透过窗口看地面的汽车,和在地面上看到的大小是不同的。

    结论就是,在屏幕上显示的像素,不仅仅有x,y坐标,其实还有z轴的影响。所以这里对应的像素描述由一个3行一列的矩阵来表示:

    这里写图片描述

    x,y分别代表x,y轴上的坐标,而1代表屏幕在z轴上的坐标为默认的。如果将1变大,那么屏幕会拉远, 图形会变小


    图像的平移原理:

    假设一个点a坐标为(x0,y0)经过水平平移了b距离后变成了点c坐标为(x1,y1)。

    因为是水平平移,所以a和b的y坐标的大小是相同的。但是a和b x的坐标点是不同的。

    所以有如下公式:

    X1 = x0 + b;

    Y1 = y0;

    怎么把它转换成矩阵呢?

    高等数学中有个叫系数矩阵的东西。如下:

    系数矩阵:

    方程组可以写成矩阵的形式,由未知数的系数构成的矩阵就叫系数矩阵.比如上面的的方

    程组的系数矩阵就是:

    x1  1 0 b  x0

    y1 = 0 1 0 * y0

    1   0 0 1  1

    教科书告诉你,计算规则是,第一个矩阵第一行的每个数字(2和1),各自乘以第二个矩阵第一列对应位置的数字(1和1),然后将乘积相加( 2 x 1 + 1 x 1),得到结果矩阵左上角的那个值3。


    根据这个结果可知系数矩阵:

    x1 = 1 * x0 + 0 * y0 + b * 1 = x0 + b;

    y1 = 0 * x0 + 1 * y0 + 0 * 1 = y0;


    图像旋转原理:

    这里我们通过一个旋转变换来看看原理,其实一张图片围绕一个点旋转,也就是所有的点都围绕一个点旋转,所以只需要关注一个点的情况即可:

    假定有一个点 ,相对坐标原点顺时针旋转后的情形,同时假定P点离坐标原点的距离为r,如下图:

    这里写图片描述

    那么就有:

    这里写图片描述
    换做矩阵运算就如下图:
    这里写图片描述
    最后把这个矩阵通过matrix.setValues的方法设置一下,然后通过canvas.drawBitmap(bmp, matrix, paint);就可以把
    该旋转矩阵应用到bitmap上面了。
    三角函数转换公式如下:

    sin(A+B)=sinAcosB+cosAsinB
    sin(A-B)=sinAcosB-cosAsinB
    cos(A+B)=cosAcosB-sinAsinB
    cos(A-B)=cosAcosB+sinAsinB


    另外图像的复合变化:

    设对给定的图像依次进行了基本变化F1、F2、F3…..、Fn,它们的变化矩阵分别为T1、T2、T3…..、Tn,图像复合变化的矩阵T可以表示为:T = TnTn-1…T1。

    如果想要对图像进行先平移再旋转,只需要把他们两个矩阵相乘即可。

    为什么相乘就可以达到先平移再旋转了?

    论证一下:

    x1    1 0 b        x0

    y1 = 0 1 0   *    y0

    1       0 0 1        1

    是点(x0,y0)在x方向上平移b后的结果为点(x1,y1)。

    如果再进行旋转的角度为A,旋转后的点为(x2,y2),那么就有如下公式。

    x2  x1       cosA    -sinA  0   

    y2 = y1  *    sinA    cosA   0  

    1   1        0      0    1

    又已知

    x1   1 0 b    x0

    y1 = 0 1 0 * y0

    1   0 0 1    1

    所以可以得出

    x2    1 0 b      cosA  -sinA  0     x0

    y2 = 0 1 0 *  sinA   cosA   0  *  y0

    1      0 0 1       0         0       1     1 


    有关于变换的set方法都可以带来不同的效果,但是每个set都会把上个效果清除掉,例如依次调用了setSkew,setTranslate,那么最终只有setTranslate会起作用,那么如何才和将两种效果复合呢。Matrix给我们提供了很多方法。但是主要都是2类:

    preXXXX:以pre开头,例如preTranslate 
    postXXXX:以post开头,例如postScale

    这里matrix前乘了一个scale矩阵,换算成数学式如下:

    这里写图片描述

    从上面可以看出,最终得出的matrix既包含了缩放信息也有平移信息。 
    后乘自然就是matrix在后面,而缩放矩阵在前面,由于矩阵前后乘并不等价,也就导致了他们的效果不同。我们来看看后乘的结果:

    这里写图片描述

    可以看到,结果跟上面不同,并且这也不是我们想要的结果,这里缩放没有更改,但是平移被减半了,换句话说,平移的距离也被缩放了。所以需要注意前后乘法的关系。



    展开全文
  • 关于二维平面坐标变换矩阵的说明

    千次阅读 2019-09-26 21:25:46
    坐标转换矩阵 什么是坐标转换矩阵 坐标转换矩阵就是指将两个点之间的仿射关系以转换矩阵的形式表现出来,也就是通过转换矩阵作用于原始点的坐标,得到 ...

    什么是坐标变换矩阵

    坐标转换矩阵就是指将两个点之间的仿射关系以转换矩阵的形式表现出来,也就是通过转换矩阵作用于原始点的坐标,得到相对应的通过仿射(平移,缩放,选择)得到的新的点的坐标。其具体公式为:

    在这里插入图片描述
    其中(x’, y’)为仿射后的点的坐标,(x, y)为初始点坐标,其余的矩阵即为对应的仿射关系,以下,我们就将分别从平移,缩放和旋转的角度证明可以用该公式表示二维坐标点之间的仿射关系。

    从平移的角度证明

    假设,二维平面的一个点做了如下的平移:
    在这里插入图片描述
    那么,该关系可用如下的矩阵运算表示:
    在这里插入图片描述
    于是,便证明了任意的平移关系可以用坐标变换矩阵表示。

    从缩放的角度证明

    假设,二维平面的点做了如下的缩放:
    在这里插入图片描述
    那么,该关系可以用如下的矩阵运算表示:
    在这里插入图片描述
    于是,便证明了任意的缩放关系可以用坐标变换矩阵表示。

    从旋转的角度证明

    假设,二维平面的点向逆时针旋转了   θ \ \theta  θ度:
    在这里插入图片描述
    容易得到点P’的坐标为(哈哈,如果对这步有疑问,请看下一小节):
    在这里插入图片描述
    那么,该关系可以用如下的矩阵运算表示:
    在这里插入图片描述
    于是,任意的旋转都可以用坐标变换矩阵表示

    从仿射关系证明(综合地看)

    以上其实已经证明了坐标变换矩阵可以用来表示任意单一的仿射关系(平移,缩放,旋转),那么如果一个点同时进行了平移,缩放,旋转,如何证明该坐标变换矩阵仍然可以表示该关系。也就是对一般化的证明。
    首先,为了方便证明,我们换一种方式表示坐标变换矩阵(你可以通过简单的矩阵运算可以发现这是同一个表达):
    在这里插入图片描述

    那么,这就好办了,对于一个点P0,如果它进行了平移变换得到P1,那么可以用一个坐标变换矩阵A(3*3的矩阵)表示。如果它还进行了缩放变换得到P2,那么可以用一个坐标变换矩阵B表示。如果它还做了旋转变换得到P3,那么可以用一个坐标变换矩阵C表示。最后,通过一步一步地坐标变换,如图:
    在这里插入图片描述
    注:当无某种变换时,其对应的变换矩阵即为3阶的单位矩阵。
    于是,P0到P3的仿射可以用如下变换矩阵T表示:
    在这里插入图片描述
    并且容易证明矩阵T的最后一行元素必定为(0, 0 ,1)

    延伸:旋转矩阵的证明

    对于点P逆时针旋转   θ \ \theta  θ度后,要求解点P’的坐标,首先,我们通过坐标轴的旋转将问题进行转换:
    在这里插入图片描述
    由此,问题转换为已知P’在逆时针旋转   θ \ \theta  θ角度后的坐标轴下的坐标为(x, y),求其在原坐标轴下的坐标(x’, y’),为了方便说明,见下图:
    在这里插入图片描述
    主要注意下直角三角形CAO和直角三角形P’AB,便可容易得到 :
    在这里插入图片描述

    展开全文
  • 平面坐标变换 矩阵形式

    千次阅读 2014-09-27 21:36:26
     ... 2.3.3 基本二维变换  基本二维变换有比例变换(Scaling)、旋转变换(Rotating)、错切变换(Shearing)和平移变换(Translating)。...比例变换就是将平面上任意一点的横坐标放大或缩小S11
  • 计算机图形变换矩阵

    千次阅读 2017-11-22 10:55:26
    为了完成我的 计算机图形学作业,有一道变换矩阵的问题,翻了好久,发现这篇博客讲的很清楚,感谢大佬的分享。以下内容转自:http://m.blog.csdn.net/csxiaoshui/article/details/654461251. 简介计算机图形学中的...
  • 2D平面中关于矩阵(Matrix)跟图形变换的讲解

    万次阅读 多人点赞 2014-01-27 00:42:43
    在Android的开发中,我们也经常会用到这样的一些图形变换,尤其是我们在写自定义View时,更是会经常利用到Matrix来实现一些效果,比如平移,旋转,缩放及切变等,相信很多朋友应该很想知道,矩阵实现这种变换的原理...
  • 二、平面坐标变换矩阵 三、平移变换 四、比例变换 五、对称变换 六、旋转变换 七、错切变换 八、复合变换 (1)、复合平移 (2)复合比例变换 (3)复合旋转 (4)相对某点的比例变换 (5)相对某点的选址...
  • 设二维平面上有一点(x,y),经过图形变换后成为另一点(x1,y1),则可用向量乘上一个变换矩阵得:若用齐次坐标表示,则有:我们称为二维变换矩阵,可以分为四个矩阵:其中对图形进行比例变换,旋转,对称,错切等变换;对图形进行...
  • 图形变换之基本矩阵变换

    千次阅读 2017-06-22 21:45:09
    图形变换之基本矩阵变换 1)平移变换 从一个位置到另一个位置的变换可以用平移矩阵T表示,该矩阵通过向量t=(tx,ty,tz)对实体进行平移操作。 其实还有另外一种形式(以左手坐标系为基准): 第一...
  • 仿射变换是二维的,透视变换是三维的,统一起来就是三维变换。齐次坐标表示就升到了四维。 Ref 仿射变换与投影变换: 讲解的很系统,作图很到位
  • 图像线性变换是仿射变换的子集,包括图像的旋转、错切、缩放以及几者的组合叠加,...所有图像线性变换都可以使用图像变换矩阵和图像平面空间向量的乘积来表示,本文分析了图像线性变换的代数表示方法以及对应变换矩阵
  • 图形矩阵变换

    千次阅读 2009-09-10 13:28:00
    对于学习计算机图形学的人来说,对其中的几个变换开始时往往有些难以理解。就算理解了,也是一知半解。不过,一般的图形学编程来说,不用深入这些变换照样能够编写程序。有些人学了4、5年图形学,但是还没有完整的...
  • 本文介绍了仿射变换的类型及其关系以及仿射变换矩阵,基本的仿射变换包括平移、旋转、缩放和错切,镜像可以看做特殊的缩放。实际中一般图像的仿射变换就是平移、旋转、缩放和错切的叠加组合,每叠加一个处理,就进行...
  • 计算机图形学之矩阵变换的深度理解

    万次阅读 多人点赞 2018-07-27 19:37:16
    对于图形学来说,矩阵计算不可避免,既直观又方便。而如果线性代数学的不透彻的话,那么基本上是做不到应用的,这里推荐看一下3Blue1Brown的线性代数的视频,可以对矩阵计算有深刻的认识。 之后就是应用阶段,我们...
  • 二维图形矩阵变换(一)——基本概念 原文:二维图形矩阵变换(一)——基本概念基本的二维变换可包括旋转、缩放、扭曲,和平移四种, 而这些几何运算则可以转换为一些基本的矩阵运算: 这几...
  • 变换矩阵的推导 二.平移、缩放、旋转的变换公式推导 1.平移 2.缩放 Sx、Sy是缩放因子 3.旋转 一般来说,单位圆的坐标(X,Y)可以写作(cosα,sinα);若圆的半径为R,则坐标可以表示为(Rcosα,Rsinα)。 ...
  • 1.在google上搜索,看到图形学中的 透视变换 矩阵都是以 4*4 描述的,但是在opencv中的 cvWarpPerspective(src,dst,warp_matrix); 函数中为什么 3*3 就可以描述一个 透视变换 矩阵。我现在需要的是对一个 二维平面 ...
  • 1 变换矩阵T的基本形式 T = P为新坐标,P0为原坐标。 T中除了左下角是1以外,其余各个变量都有意义 图像的平面变换又叫仿射变换,与之相对的还有透视变换,不过那就涉及到3维了,这里不提。 2 平移 ....
  • 图形学上课的时候,????坐在第一排划拉瑟图 ,老师突然布置了个作业:推导mv变换的矩阵。常言道上山容易下山难之...然后把两个矩阵相乘,得到最终的变换矩阵 M,这个 M 矩阵左乘世界坐标系下的齐次坐标,能够帮助我们将
  • 在3D图形学里,OpenGL为右手坐标系(准确来说,OpenGL的世界空间和相机空间是右手坐标系)。随便提一下,D3D11为左手坐标系。 (1) 右手坐标系 (2) 左手坐标系 OpenGL的矩阵和向量结合方式...
  • 变换矩阵在二维图形中的应用

    万次阅读 2014-06-20 20:24:43
    在二维空间中,线性变换可以用 2×2 的变换矩阵表示。 旋转[编辑] 绕原点逆时针旋转 θ 度角的变换公式是 与 ,用矩阵表示为: 缩放[编辑] 缩放公式为 与 ,用矩阵表示为: 切变...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,227
精华内容 5,690
关键字:

平面图形变换矩阵