精华内容
下载资源
问答
  • C#winform,使用zedgraph开源控件作为绘制曲线的控件,现在我想让zed控件下方的一个bar控件和zed的坐标轴部分对齐,如图,目的:下面的bar控件滑动时,在zed的区域里做一条竖线跟着移动。现在的问题是:不能获知zed...
  • 前言C4D软件中的坐标轴表示了一个物体的属性,所以我们很大一部分人对于坐标轴的认知就是,它是用来移动物体的,我们可以通过坐标轴的位置来调整一个物体或者一整个层级的物体旋转轴心,但是,坐标轴的作用不止于此...

    前言

    C4D软件中的坐标轴表示了一个物体的属性,所以我们很大一部分人对于坐标轴的认知就是,它是用来移动物体的,我们可以通过坐标轴的位置来调整一个物体或者一整个层级的物体旋转轴心,但是,坐标轴的作用不止于此,它可以帮助我们在操作点线面的集合或者多个物体的时候,发挥出很大的作用,接下来我们来看看除了坐标轴还能怎么用。

    坐标轴的作用

    坐标轴是一个或者多个物体的位置、旋转、缩放的参考点,我们通过这个参考点可以使物体产生有逻辑的变化。当我们选取了多个物体,或者物体表面的多个点线面,默认来说软件会将选取的范围的中心作为轴心点,但是,当我们很多时候不希望将轴心固定在默认的中心点上,这时候,菜单栏中的轴向、柔和选择命令等就可以开始发挥作用了。

    e25f1d68ca73789015477713058ac308.gif

    b71d999ffe7d0a4fac874b44425ff44b.gif

    f2d2a492653843eea755ff42226adfb8.gif

    坐标轴的轴向

    坐标轴的轴向是用来控制选取了点线面之后坐标轴的位置的。点击移动、选择、缩放都会共享同一个轴向的属性菜单栏,而只有切换到点线面模式后该菜单栏下的属性才能被调整。

    7d632cd4cb061f938c96d8552b9fd128.gif

    C4D中调整轴向位置的选项非常多样,一种是固定的坐标轴轴向模式,例如全局、根对象、父对象、摄像机模式等,这一类模式是除非开启轴心修改,否则无法调整轴向的位置。另一种是非固定的,可以通过控制X、Y、Z三个轴向的数值来调整坐标轴的位置。

    在理解各个非固定坐标轴轴向之前,我们先来理解软件中关于XYZ三个轴向边界的界定是怎样的。在C4D软件中,一个物体边界的界定,是与坐标轴相互平行的3个平面,将物体包裹起来的最小长方体,可能这么说有点难理解,我们通过下边的动态图可以来理解这个边界,实际上我们调整的XYZ三个数值就是以这个边界为基准的。

    82c8d098478d524ebbd7dc7315d73204.gif

    下边简单介绍每个模式的作用:

    • 全局 以坐标原点作为轴向的位置
    • 对象 使轴向位置和另一个对象的坐标轴一致
    • 选取对象 将选取的点线面集合作为一个边界

    8b4d5a23fd973226279887031116ee42.gif
    • 根对象(父对象) 使轴向位置和最高(父级)层级的坐标轴一致

    3896a6aaf86cb07a9f2585096a67a918.gif
    • 选取范围 以包含选取的点线面的一个或者多个对象作为一个边界
    • 点 以选取的物体所有的点的中心作为坐标轴的位置

    693bd582d25b46353d372aca90483cc1.gif
    • 摄像机 将坐标轴轴向固定在视角中心
    • 自由 开启轴心模式(快捷键L)就可以随心移动坐标轴,可以配合捕捉将轴向移动到想要的位置

    方向选项表示了坐标轴的朝向,参照轴向去理解即可,还有一个比较重要的选项是保留更改,这个选项在建模的时候很有用,它可以帮你把选取后的坐标轴位置固定,方便你在同一个位置进行下一步的制作。

    0daa14ff946f4600d93443a9f223dc99.gif

    单一对象操作

    这个在之前的文章有介绍过,用于对多个物体进行各自坐标轴的操作,用处比较有限,简单了解即可。

    13a6810710f5f60db3188dadb6eb20e4.gif

    柔性选择

    这个应该知道的人会比较多,它的作用是通过设置影响范围以及影响的强弱,使选择的区域的变化,会连带影响临近的点线面,这个相对来说会比较好理解一些,就不做细致的讲解,看看动态图去理解效果即可。

    cc17ee69b05dd2774ed92bc970c34fbc.gif

    柔性选择可以用来做一个角色类型的表面效果,也可以制作一些点级别的动画,类似一个物体的变形等等。

    e5a6da366159b8dddc12ad35a883d5b0.gif

    总结

    本篇内容轴向的控制可能比较少人会学习到,因为很多教程并不会对坐标轴进行一个细致的讲解,所以,学习轴向的控制,可以让你在后续的建模、场景搭建、模型搭建有不错的效率提升。

    展开全文
  • 前言C4D软件中的坐标轴表示了一个物体的属性,所以我们很大一部分人对于坐标轴的认知就是,它是用来移动物体的,我们可以通过坐标轴的位置来调整一个物体或者一整个层级的物体旋转轴心,但是,坐标轴的作用不止于此...

    前言

    C4D软件中的坐标轴表示了一个物体的属性,所以我们很大一部分人对于坐标轴的认知就是,它是用来移动物体的,我们可以通过坐标轴的位置来调整一个物体或者一整个层级的物体旋转轴心,但是,坐标轴的作用不止于此,它可以帮助我们在操作点线面的集合或者多个物体的时候,发挥出很大的作用,接下来我们来看看除了坐标轴还能怎么用。

    坐标轴的作用

    坐标轴是一个或者多个物体的位置、旋转、缩放的参考点,我们通过这个参考点可以使物体产生有逻辑的变化。当我们选取了多个物体,或者物体表面的多个点线面,默认来说软件会将选取的范围的中心作为轴心点,但是,当我们很多时候不希望将轴心固定在默认的中心点上,这时候,菜单栏中的轴向、柔和选择命令等就可以开始发挥作用了。

    b545b8935dc0e80d6fcb5169f3073d47.gif
    1b0d4e34dd72c3e3480cc0354b7eba28.gif
    5972a8d02a2851791e3cb0698cf39bd3.gif

    坐标轴的轴向

    坐标轴的轴向是用来控制选取了点线面之后坐标轴的位置的。点击移动、选择、缩放都会共享同一个轴向的属性菜单栏,而只有切换到点线面模式后该菜单栏下的属性才能被调整。

    09a7be15081a9cdfde20e1f1ed4598da.gif

    C4D中调整轴向位置的选项非常多样,一种是固定的坐标轴轴向模式,例如全局、根对象、父对象、摄像机模式等,这一类模式是除非开启轴心修改,否则无法调整轴向的位置。另一种是非固定的,可以通过控制X、Y、Z三个轴向的数值来调整坐标轴的位置。

    在理解各个非固定坐标轴轴向之前,我们先来理解软件中关于XYZ三个轴向边界的界定是怎样的。在C4D软件中,一个物体边界的界定,是与坐标轴相互平行的3个平面,将物体包裹起来的最小长方体,可能这么说有点难理解,我们通过下边的动态图可以来理解这个边界,实际上我们调整的XYZ三个数值就是以这个边界为基准的。

    7691095506715b8972ede25e532fa136.gif

    下边简单介绍每个模式的作用:

    • 全局 以坐标原点作为轴向的位置
    • 对象 使轴向位置和另一个对象的坐标轴一致
    • 选取对象 将选取的点线面集合作为一个边界
    510ce54c159fa307f9b966f4fd49dae9.gif
    • 根对象(父对象) 使轴向位置和最高(父级)层级的坐标轴一致
    7761d1f44a0273278c011194cfdaf481.gif
    • 选取范围 以包含选取的点线面的一个或者多个对象作为一个边界
    • 点 以选取的物体所有的点的中心作为坐标轴的位置
    2a08cc3e9474eb1f7f809b6faea4ca8e.gif
    • 摄像机 将坐标轴轴向固定在视角中心
    • 自由 开启轴心模式(快捷键L)就可以随心移动坐标轴,可以配合捕捉将轴向移动到想要的位置

    方向选项表示了坐标轴的朝向,参照轴向去理解即可,还有一个比较重要的选项是保留更改,这个选项在建模的时候很有用,它可以帮你把选取后的坐标轴位置固定,方便你在同一个位置进行下一步的制作。

    37a202e40de8d1f8198e4a86840e6d08.gif

    单一对象操作

    这个在之前的文章有介绍过,用于对多个物体进行各自坐标轴的操作,用处比较有限,简单了解即可。

    6d53cf878fc22cfcee202e172488310d.gif

    柔性选择

    这个应该知道的人会比较多,它的作用是通过设置影响范围以及影响的强弱,使选择的区域的变化,会连带影响临近的点线面,这个相对来说会比较好理解一些,就不做细致的讲解,看看动态图去理解效果即可。

    a1c6411cb7c6cab6f26844802dfb220f.gif

    柔性选择可以用来做一个角色类型的表面效果,也可以制作一些点级别的动画,类似一个物体的变形等等。

    13eecd680b3e6025f90e1889765e4fe8.gif

    总结

    本篇内容轴向的控制可能比较少人会学习到,因为很多教程并不会对坐标轴进行一个细致的讲解,所以,学习轴向的控制,可以让你在后续的建模、场景搭建、模型搭建有不错的效率提升。

    展开全文
  • AutoCAD2012 64位精简版中文免安装版软件大小:561.5M授权方式:免费软件立即下载CAD软件怎样将图形坐标Z归零?当我们遇到CAD图形标高一致的时候,如果想要让图形统一标高,就需要先将图形坐标Z归零。本次小编为...

    AutoCAD2012 64位精简版中文免安装版

    软件大小:561.5M授权方式:免费软件

    立即下载

    CAD软件怎样将图形坐标Z轴归零?当我们遇到CAD图形标高一致的时候,如果想要让图形统一标高,就需要先将图形坐标Z轴归零。本次小编为您整理了CAD软件里将图形Z轴坐标归零的操作方法,一起来看看吧!

    步骤一、打开CAD软件,使用ctrl+A全选图形,或者框选坐标Z轴归零的图形,点击移动命令按钮。

    步骤二、用鼠标左键在任意位置随便指定一个坐标Z轴基点,在命令行输入0,0,1e99,将选中的CAD图形全部移动到坐标Z轴正无穷大的位置中。

    步骤三、再次框选同样的CAD图形,点击移动命令按钮,用鼠标左键在任意位置随便指定一个基点,在命令行输入0,0,-1e99,让选中图形的坐标Z轴从正无穷大的地点回归,这个时候就完成了CAD图形坐标Z轴归零的操作啦!

    以上就是关于CAD图形Z轴坐标归零的方法,是不是很简单呢?有想要了解CAD图形Z轴坐标归零方法的用户,可以尝试以上的方法操作看看,希望以上的方法可以给大家带来更多的帮助。

    展开全文
  • 最近在学视觉手眼标定这块,用的C#联合halcon,C#这块不太熟,在网口通讯这块一直不知道怎么把机器人发回的数据解析显示出来,比如我要实时读取机械手坐标,中间可能又要发指令让机械手移动,或要读取机械中的某个...
  • 从非技术意义上说,线性变换可能“拉伸”坐标系,但不会“弯曲”或“卷折”坐标系。 矩阵是怎样变换向量的 向量在几何上能被解释成一系列与平行的位移,一般来说,任意向量v都能写成“扩展”形...

    3D数学 ---- 矩阵和线性变换

     

    一般来说,方阵能描述任意线性变换。线性变换保留了直线和平行线,但原点没有移动。线性变换保留直线的同时,其他的几何性质如长度、角度、面积和体 积可能被变换改变了。从非技术意义上说,线性变换可能“拉伸”坐标系,但不会“弯曲”或“卷折”坐标系。

    矩阵是怎样变换向量的

    向量在几何上能被解释成一系列与轴平行的位移,一般来说,任意向量v都能写成“扩展”形式:

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    另一种略有差别的形式为:

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    注意右边的单位向量就是x,y,z轴,这里只是将概念数学化,向量的每个坐标都表明了平行于相应坐标轴的有向位移。

    让我们将上面的向量和重写一遍,这次分别将pqr定 义为指向+x,+y和+z方向的单位向量,如下所示:

    v = xp + yq + zr

    现在,向量v就被表示成向量pqr的 线性变换了,向量pqr称作基向量。这里 基向量是笛卡尔坐标轴,但事实上,一个坐标系能用任意3个基向量定义,当然这三个基向量要线性无关(也就是不在同一平面上)。以pqr为 行构建一个3 x 3矩阵M,可得到如下矩阵:

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    用一个向量乘以该矩阵,得到:

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    如果把矩阵的行解释为坐标系的基向量,那么乘以该矩阵就相当于执行了一次坐标转换,如果aM=b, 我们就可以说,Ma转换到b

    从这点看,术语“转换”和“乘法”是等价的。

    坦率地说,矩阵并不神秘,它只是用一种紧凑的方式来表达坐标转换所需的数**算。进一步,用线性代数操作矩阵,是一种进行简单转换或导出更复杂转换 的简便方法。

    矩阵的形式:

    基向量[1, 0, 0], [0, 1, 0], [0, 0, 1]乘以任意矩阵M

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    用基向量[1, 0, 0]乘以M时,结果是M的第1行。其他两行也有同样 的结果,这是一个关键的发现:矩阵的每一行都能解释为转换后的基向量。

    这个强有力的概念有两条重要性质:

    1、有了一种简单的方法来形象化解释矩阵所代表的变换。

    2、有了反向建立矩阵的可能 ---- 给出一个期望的变换(如旋转、缩放等),能够构造一个矩阵代表此变换。我们所要做的一切就是计算基向量的变换,然后将变换后的基向量填入矩阵。

    首先来看看2D例子,一个2 x 2矩阵:

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    这个矩阵代表的变换是什么?首先,从矩阵中抽出基向量pq

    p = [2   1]

    q = [-1  2]

    图7.1以“原”基向量(x轴,y轴)为参考,在笛卡尔平面中展示了这些向量。

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    如图7.1所示,x基向量变换至上面的p向量,y基向量变换至q向量。所以 2D中想象矩阵的方法就是想象由行向量构成的“L”形状。这个例子中,能够很清楚的看到,M代表的部分变换是逆时针旋 转26度。

    当然,所有向量都被线性变换所影响,不只是基向量,从“L”形状能够得到变换最直观的印象,把基向量构成的整个2D平行四边形画完整有助于进一步看 到变换对其他向量的影响,如图7.2所示:

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    平行四边形称作“偏转盒”,在盒子中画一个物体有助于理解,如图 7.3 所示:

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    很明显,矩阵M不仅旋转坐标系,还会拉伸它。

    这种技术也能应用到3D转换中。2D中有两个基向量,构成"L"型;3D中有三个基向量,它们形成一个”三脚架“。首先,让我们展示出一个转换前的 物品。图7.4展示了一个茶壶,一个立方体。基向量在”单位“向量处。

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    (为了不使图形混乱,没有标出z轴基向量[0, 0, 1],它被茶壶和立方体挡住了。)

    现在,考虑以下3D变换矩阵:

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    从矩阵的行中抽出基向量,能想象出该矩阵所代表的变换。变换后的基向量、立方体、茶壶如图7.5所示:

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    这个变换包含z轴顺时针旋转45度和不规则缩放,使得茶壶比以前”高“。注意,变换并没有影响到z轴,因为矩阵的第三行是[0, 0 , 1]。

    我们可以通过让比例因子k按比例放大或缩小来缩放物体。如果在各方向应用同比例的缩放,并且沿原点“膨胀”物体,那么就是均匀缩放。均匀缩放可以保 持物体的角度和比例不变。如果长度增加或减小因子k,则面积增加或减小k^2。在3D中,体积将增加或减小 k^3。

    如果需要“挤压”或"拉伸"物体,在不同的方向应用不同的因子即可,这称作非均匀缩放。非均匀缩放时,物体角度将发生变化。视各方向缩放因子的不 同,长度、面积、体积的变化因子也各不相同。

    如果|k|<1,物体将“变短”;如果|k|>1,物体将“变长”,如果k = 0,就是正交投影,如果k < 0就是镜像。

    应用非均匀缩放的效果类似于切变,事实上,非均匀缩放和切变和很难区分的。

    沿坐标轴的缩放

    最简单的缩放方法是沿着每个坐标轴应用单独的缩放因子,缩放是沿着垂直的轴(2D中)或平面(3D中)进行的。如果每个轴的缩放因子相同,就是均匀 缩放,否则是非均匀缩放。

    2D中有两个不同的缩放因子,Kx和Ky,图8.13展示了应用不同缩放因子后的情况。

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    凭直觉就可知道,基向量pq由相应的缩放因子单独影响:

    p' = Kxp = Kx [1   0] = [Kx   0]

    q' = Kyq = Ky [0   1] = [0   Ky]

    用基向量构造矩阵,结果如公式8.6所示:

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    对于3D,需要增加第三个缩放因子Kz,3D缩放矩阵如公式8.7所示:

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    沿任意方向缩放

    我们可以不依赖于坐标系而沿任意方向进行缩放,设n为平行于缩放方向的单位向量,k为缩放因子,缩放沿穿过原点 并平行于n的直线(2D中)或平面(3D中)进行。

    我们需要推导出一个表达式,给定向量v,可以通过vn和 k来计算v'。为了做到这一点,将v分解为两个分量,v|| 和v⊥,分别平行于n和垂直于n,并满足v =v|| + v⊥。v||是vn上 的投影,由 (v . n)n 可以得到 v||。 因为v⊥垂直于n,它不会被缩放操作影响。因此,v' = v||' + v⊥,剩下的问题就是怎样得到v||'。 由于v||平行于缩放方向,v||'可以由公式kv|| 得出,如图8.14所示:

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    总结已知向量并进行代换,得到:

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    既然我们知道了怎样对任意向量进行缩放,当然也就可以计算缩放后的基向量。这里只详细列出2D中的一个基向量的求法,其余的基向量依次类推。我们只 给出其结果(注意下面采用列向量形式只是为了使等式的形式好看一些。)

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    通过基向量构造矩阵,得到以单位向量n为缩放方向,k为因子的缩放矩阵,如公式8.8所示:

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    3D中,基向量为:

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    以单位向量n为缩放方向,k为因子的3D缩放矩阵如公式8.9所示:

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    一般来说,投影意味着降维操作,有一种投影方法是在某个方向上用0作为缩放因子。这种情况下,所有点都被拉平至垂直的轴(2D)或平面(3D)上。 这种类型的投影称作正交投影(或者平行投影),因为从原来的点到投影点的直线相互平行。

    向坐标轴或平面投影

    最简单的投影方式是向坐标轴(2D)或平面(3D)投影,如图8.15所示:

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    向坐标轴或平面投影在实际变换中不常发生,大多数情况是向低维的变换赋值,且要抛弃维数时。例如,将3D点赋值给2D点,抛弃z分量,只复制x和 y。

    通过使垂直方向上的缩放因子为零,就能向坐标轴或平面投影。考虑到完整性,下面列出这些变换矩阵,见公式8.10 - 8.14。

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    向任意直线或平面投影

    也能向任意直线或平面投影,像往常一样,由于不考虑平移,这些直线或平面必须通过原点。投影由垂直于直线或平面的单位向量n定 义。

    通过使该方向的缩放因子为0能够导出向任意方向投影的矩阵,2D中的情况如公式8.15所示:

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    记住这里n垂直于投影直线,而不是平行。3D中,向垂直于n的平面投影的矩 阵如公式8.16所示:

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    镜像

    镜像(也叫做反射)是一种变换,其作用是将物体沿直线(2D中)或平面(3D中)“翻折”,图8.16展示了镜像的效果。

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    使缩放因子为-1能够很容易地实现镜像变换,设n为2D单位向量,公式8.17所示的矩阵将沿通过原点且垂直于n的 反射轴来进行镜像变换。

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    3D中,用反射平面代替直线。公式8.18中的矩阵将沿通过原点且垂直于n的平面来进行镜像变换:

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    注意一个物体只能“镜像”一次,如果再次镜像(当沿不同的轴或平面的时候),物体将翻回“正面”(用一张纸来想象),这和在原位置旋转物体的效果一 样。

    切变

    切变是一种坐标系“扭曲”变换,非均匀地拉伸它。切变的时候角度会发生变化,但令人惊奇的是面积和体积却保持不变。基本思想是将某一坐标的乘积加到 另一个上。例如,2D中将y乘以某个因子然后加到x上,得到 x' = x + sy,如图8.17所示:

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    实现这个切变变换的矩阵为:

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    变换的组合

    设想世界中有一个任意方向、任意位置的物体,我们要把它渲染到任意方向、任意位置的摄像机中。为了做到这一点,必须将物体的所有顶点从物体坐标系变 换到世界坐标系,接着再从世界坐标系变换到摄像机坐标系。其中的数学变换总结如下:

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    矩阵乘法满足结合律,所以我们能用一个矩阵直接从物体坐标系变换到摄像机坐标系:

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    这样就能在渲染的循环外先将所有矩阵组合起来,使循环内作矩阵乘法的时候只需要和一个矩阵相乘即可(物体有很多顶点,省一次矩阵乘法就会提高不少效 率),如下:

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    所以矩阵组合从代数角度看是利用了矩阵乘法的结合律。矩阵的行向量就是变换后的基向量,这在多个变换的情况下也是成立的。考虑矩阵乘法AB, 结果中的每一行都是A中相应的行与矩阵B相乘的结果。换言之,设a1, a2, a3为A的行,矩阵乘法能够写为:

    三維旋轉矩陣實用算法 - szfzafa - ~Infinite Nightmare~

    这使得结论更加清晰,AB结果中的行向量确实是对A的基向量进行B变 换的结果。

    变换分类

    变换的类别并不是互斥的,也不存在一定的“次序”或“层次”使得某一类比另一类多或少一些限制。

    当讨论一般意义上的变换时,我们将使用类似的术语:映射或函数。在最一般的意义上,映射就是一种简单的规则,接受输入,产生输出。我们把从abF映 射记作F(a) = b

    线性变换

    在数学上,如果满足下式,那么映射F(a)就是线性的:

    F(a + b) = F(a) + F(b)   以及  F(ka) = kF(a)

    如果映射F保持了基本运算:加法和数量乘,那么就可以称该映射为线性的。在这种情况下,将两个向量相加然后再进行变换得到的结果和先分别进行变换再 将变换后的向量相加得到的结果相同。同样,将一个向量数量乘再进行变换和先进行变换再数量乘的结果也是一样的。

    这个线性变换的定义有两条重要的引理:

    (1) 映射F(a) = aM,当M为 任意方阵时,说映是一个线性变换,这是因为:

    F(a + b) = (a + b)M = aM + bM = F(a) + F(b)

    F(ka) = (ka)M = k(aM) = kF(a)

    (2) 零向量的任意线性变换的结果仍然是零向量。(如果F(0) = aa ≠ 0。那么F不可能是线性变换。因为F(k0) = a,但F(k0) ≠ kF(0)), 因此线性变换不会导致平移(原点位置上不会变化)。

    在某些文献中,线性变换的定义是平行线变换后仍然是平行线。大多数情况下它是对的,但有一个小小的例外:投影(当一条直线投影后变成一个点,能认为 这个点 平行于什么?)除了这点理论上的例外,这种定义是正确的。线性变换可能造成“拉伸”,但直线不会”弯折“,所以平行线仍然保持平行。

    仿射变换

    仿射变换是指线性变换后接着平移。因此仿射变换的集合是线性变换的超集,任何线性变换都是仿射变换,但不是所有仿射变换都是线性变换。

    任何具有形式 v' = vM + 的 变换都是仿射变换。

    可逆变换

    如果存在一个逆变换可以”撤销“原变换,那么该变换是可逆的。换句话说,如果存在逆变换G,使得G(F(a)) = a,对于任意a,映射F(a) 是可逆的。

    存在非仿射变换的可逆变换,但暂不考虑它们。现在,我们集中精力于检测一个仿射变换是否可逆。一个仿射变换就是一个线性变换加上平移,显然,可以用 相反的量”撤销“平移部分,所以问题变为一个线性变换是否可逆。

    显然,除了投影以外,其他变换都能”撤销“。当物体被投影时,某一维有用的信息被抛弃了,而这些信息时不可能恢复的。因此,所有基本变换除了投影都 是可逆的。

    因为任意线性变换都能表达为矩阵,所以求逆变换等价于求矩阵的逆。如果矩阵是奇异的,则变换不可逆;可逆矩阵的行列式不为0。

    等角变换

    如果变换前后两向量夹角的大小和方向都不改变,该变换是等角的。只有平移,旋转和均匀缩放是等角变换。等角变换将会保持比例不变,镜像并不是等角变 换,因为尽管两向量夹角的大小不变,但夹角的方向改变了。所有等角变换都是仿射和可逆的。

    正交变换

    术语“正交”用来描述具有某种性质的矩阵。正交变换的基本思想是轴保持互相垂直,而且不进行缩放变换。

    平移、旋转和镜像是仅有的正交变换。长度、角度、面积和体积都保持不变。(尽管如此,但因为镜像变换被认为是正交变换,所以一定要密切注意角度、面 积和体积的准确定义)。

    正交矩阵的行列式为1或者负1,所有正交矩阵都是仿射和可逆的。

    刚体变换

    刚体变换只改变物体的位置和方向,不包括形状。所有长度、角度、面积和体积都不变。平移和旋转是仅有的刚体变换,镜像并不被认为是刚体变换。刚体变 换也被称作正规变换,所有刚体变换都是正交、等角、可逆和仿射的,某些刚体变换旋转矩阵的行列式为1。

     

    原文地址:http://www.cnblogs.com/ylwn817/archive/2011/10/23/2221660.html

    转载于:https://www.cnblogs.com/mqxs/p/3818409.html

    展开全文
  • 一般来说,方阵能描述任意线性变换。...矩阵是怎样变换向量的向量在几何上能被解释成一系列与平行的位移,一般来说,任意向量v都能写成“扩展”形式:另一种略有差别的形式为:注意右边的单位向量就是x,y,z...
  • 一般来说,方阵能描述任意线性变换。线性变换保留了直线和平行线,但... 矩阵是怎样变换向量的 向量在几何上能被解释成一系列与平行的位移,一般来说,任意向量v都能写成“扩展”形式: 另一种略有差别的形式为: ...
  • //r是视点绕y的半径,h是视点高度即在y上的坐标 int CCloudPoint::scale = 10; int CCloudPoint::iWindowsWidth = 800, CCloudPoint::iWindowHeight = 800; float CCloudPoint::x[1000000], CCloudPoint::y...
  • MoveCube.unitypackage

    2020-01-04 14:28:21
    通过鼠标拖动坐标轴模型,实现在3D空间中拖动模型,无论摄影机怎样旋转,物体拖动方向与鼠标移动方向保持一致
  • 坐标轴怎样的我我画了一个简易的坐标轴 2,用循环不断去绘画和清理(意思就初始化图像,画好初始小蛇的坐标和和食物的坐标,然后通过whil循环不断的清理和绘制–例如小蛇的头部初始的坐标是(150,160),向右移动...
  • 上色的纱雾 Time Limit: 1000 ms / Memory Limit: 65536 kb Description   纱雾画画功力首屈一指,现在她准备上色了,这时候她在想,...开始的时候纱雾可以选择让画笔落在坐标轴任意一点上,之后每次移动画笔一...
  • SDUT-3916 上色的纱雾 Time Limit: 1000 ms / Memory Limit: 65536 kb Description 纱雾画画功力首屈一指,现在她准备上色了,这时候...开始的时候纱雾可以选择让画笔落在坐标轴任意一点上,之后每次移动画笔一个...
  • SDUT 3916 上色的纱雾

    千次阅读 2017-06-05 20:34:17
    SDUT 3916 上色的纱雾Time Limit: 1000MS Memory Limit: 65536KBProblem Description纱雾画画功力首屈一指,现在她准备上色了,...开始的时候纱雾可以选择让画笔落在坐标轴任意一点上,之后每次移动画笔一个单位的距离
  • 这两种图表都是有坐标轴的,现在来说一种没有坐标轴的图表——饼图。 饼状图实现 还是和之前一样,我们先把简单的画图框架搭起来,添加SVG画布。但是这里需要注意的是,为了方便后面画饼图上的弧形,我们把组合这些...
  • 矩阵是怎样变换向量的向量在几何上能被解释成一系列与平行的位移,一般来说,任意向量v都能写成“扩展”形式:另一种略有差别的形式为:注意右边的单位向量就是x,y,z,这里只是将概念数学化,向量的每个坐标都...
  • 关于CCD定位的方法总结.

    万次阅读 2013-06-28 21:09:26
    关于CCD定位的方法总结. 如图1所示坐标系 图1 ...这是一台自动钻孔机的示意图. ...1. 坐标系代表钻孔机的平台坐标系(X, Y). ...2. 红点代表钻头, 坐标是(-70, -30). ...怎样让钻头移动到板材的正确位置钻孔呢?
  • 关于CCD定位的方法总结. 如图1所示坐标系 图1 这是一台自动钻孔机的示意图. 1. 坐标系代表钻孔机的平台坐标系(X, ...怎样让钻头移动到板材的正确位置钻孔呢?  通常板材上有3个或3个以上的定位.
  • MPAndroidChart折线图一

    2016-10-09 12:07:37
    背景: MPAndroidChart折线图,是由于项目中要用到,所以这次把在做的过程中,所用到的api...随着移动x轴坐标,对应的时间点和扫码次数都发生改变二、功能的实现(基本API的介绍) 1、设置图表数据 public void
  • 说到用python画画,那当然就是小乌龟turtle库了,为啥是turtle呢,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它...
  • 那么今天就一起来看看怎样在python中画一棵美丽的樱花树~说到用python画画,那当然就是小乌龟Turtle库了,为啥是turtle呢,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数...
  • 那么今天就一起来看看怎样在python中画一棵美丽的樱花树~说到用python画画,那当然就是小乌龟Turtle库了,为啥是turtle呢,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数...
  • 那么今天就一起来看看怎样在python中画一棵美丽的樱花树~说到用python画画,那当然就是小乌龟Turtle库了,为啥是turtle呢,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数...
  • 那么今天就一起来看看怎样在python中画一棵美丽的樱花树~ZHF免费资源网说到用python画画,那当然就是小乌龟Turtle库了,为啥是turtle呢,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它...
  • 那么今天就一起来看看怎样在python中画一棵美丽的樱花树~说到用python画画,那当然就是小乌龟Turtle库了,为啥是turtle呢,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数...
  • 那么今天就一起来看看怎样在python中画一棵美丽的樱花树~说到用python画画,那当然就是小乌龟Turtle库了,为啥是turtle呢,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数...
  • 那么今天就一起来看看怎样在python中画一棵美丽的樱花树~说到用python画画,那当然就是小乌龟Turtle库了,为啥是turtle呢,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数...

空空如也

空空如也

1 2 3
收藏数 53
精华内容 21
关键字:

怎样移动坐标轴