python 三维数组旋转 |
您所在的位置:网站首页 › python坐标变换矩阵 › python 三维数组旋转 |
一般来说,方阵能描述任意线性变换。线性变换保留了直线和平行线,但原点没有移动。线性变换保留直线的同时,其他的几何性质如长度、角度、面积和体 积可能被变换改变了。从非技术意义上说,线性变换可能“拉伸”坐标系,但不会“弯曲”或“卷折”坐标系。 矩阵是怎样变换向量的 向量在几何上能被解释成一系列与轴平行的位移,一般来说,任意向量v都能写成“扩展”形式: 另一种略有差别的形式为: 注意右边的单位向量就是x,y,z轴,这里只是将概念数学化,向量的每个坐标都表明了平行于相应坐标轴的有向位移。 让我们将上面的向量和重写一遍,这次分别将p、q、r定 义为指向+x,+y和+z方向的单位向量,如下所示: v = xp + yq + zr 现在,向量v就被表示成向量p,q,r的 线性变换了,向量p,q,r称作基向量。这里 基向量是笛卡尔坐标轴,但事实上,一个坐标系能用任意3个基向量定义,当然这三个基向量要线性无关(也就是不在同一平面上)。以p、q、r为 行构建一个3 x 3矩阵M,可得到如下矩阵: 用一个向量乘以该矩阵,得到: 如果把矩阵的行解释为坐标系的基向量,那么乘以该矩阵就相当于执行了一次坐标转换,如果aM=b, 我们就可以说,M将a转换到b。 从这点看,术语“转换”和“乘法”是等价的。 坦率地说,矩阵并不神秘,它只是用一种紧凑的方式来表达坐标转换所需的数**算。进一步,用线性代数操作矩阵,是一种进行简单转换或导出更复杂转换 的简便方法。 矩阵的形式: 基向量[1, 0, 0], [0, 1, 0], [0, 0, 1]乘以任意矩阵M: 用基向量[1, 0, 0]乘以M时,结果是M的第1行。其他两行也有同样 的结果,这是一个关键的发现:矩阵的每一行都能解释为转换后的基向量。 这个强有力的概念有两条重要性质: 1、有了一种简单的方法来形象化解释矩阵所代表的变换。 2、有了反向建立矩阵的可能 ---- 给出一个期望的变换(如旋转、缩放等),能够构造一个矩阵代表此变换。我们所要做的一切就是计算基向量的变换,然后将变换后的基向量填入矩阵。 首先来看看2D例子,一个2 x 2矩阵: 这个矩阵代表的变换是什么?首先,从矩阵中抽出基向量p和q: p = [2 1] q = [-1 2] 图7.1以“原”基向量(x轴,y轴)为参考,在笛卡尔平面中展示了这些向量。 、 如图7.1所示,x基向量变换至上面的p向量 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |