旋转坐标转换的矩阵推导

预备知识

矩阵乘法

介绍略,去网上查吧

两角和(差)公式

推导

旋转变换一般是按照某个圆心点,以一定半径 旋转一定的角度α,为了简单起见我们给出下面的情景

假定点A(x,y)想经过旋转变换到达B(x‘,y‘),已知旋转角度α和点A坐标,计算出点B


要计算点B则分别计算他的x‘和y‘分量

根据矩阵乘法计算规则,可以推出

只要给出旋转角度,计算出矩阵,然后使用这个矩阵分别左乘每一个点,就能计算出这个点旋转后的点坐标 这样我们就可以通过矩阵变换坐标了 

如果是三维的话还得加个Z轴,多一个分量,矩阵也变成了3x3的,但是大概原理差不多,这里只做简单地原理分析,如果想计算三维点的坐标变换自己手动吧!!

原文:http://www.cnblogs.com/luweimy/p/4121789.html

时间: 2024-08-08 05:34:04

旋转坐标转换的矩阵推导的相关文章

斐波那契数列的矩阵推导(看不懂的可以放弃矩阵了)

一.矩阵乘法 设矩阵A,B 满足 :A的列数==B的行数 矩阵乘法的运算规则: 将A矩阵的每一行乘以B矩阵的每一列 * == == 二.斐波那契数列的矩阵推导 首先我们想 Fib[i]=Fib[i-1]+Fib[i-2]; 所以斐波那契数列的第i项之与两个数也就是Fib[i-1]+Fib[i-2]有关 那么我们可以设第一个矩阵 M1= 因为我们需要利用矩阵推出斐波那契的第n项 所以我们设M1的下一项为M3 则M3=(也就是让M1的下标整体后移一位) 那么现在我们需要一个过渡矩阵M2来实现这个从M

绕任意轴旋转的矩阵推导总结

前言 常用的几何变换中旋转是较为复杂的一种,最近看<Physically Based Rendering, Second Edition: From Theory To Implementation>一书涉及绕任意轴旋转的实现,也给出了大体思路,但具体的推导过程及最后的旋转矩阵并未直接地给出,故根据参考Animated CGEM: Rotation About an Arbitrary Axis总结(欢迎指正). (一)基础 1.点乘与叉乘 点乘(dot)亦称作内积或数量积,如图,a·b =

D3D Project 矩阵推导

D3D中, 从模型\场景到显示在屏幕上, 一般会涉及到 3 个坐标系, 4 个矩阵. 其中: 模型坐标系(Local Matrix), 世界坐标系(World Matrix), 相机坐标系(View Matrix), 这几个坐标系与矩阵相对应. 最后要把三维的模型显示在二维的屏幕上, 还需要一次投影变换, 对应的就是 Project Matrix. Project Matrix 与其他三个不同, 其他三个可以认为是"位置". Local Matrix => 模型的一部分相对整个模

OpenGL中平移、旋转、缩放矩阵堆栈操作

在OpenGL中,图元的几何变换均为线性变换,通过矩阵变换实现.OpenGL中的坐标用齐次坐标表示,即(x,y,z)表示成(x',y',z',h),其中x=x'/h; y=y'/h; z=z'/h. 通常h取1. 比如空间中的点(2,3,4),在OpenGL中将表示成(2,3,4,1). 齐次坐标表示方式适合于矩阵运算,也很方便地表示了无穷远的点,比如(1,0,0,0)就表示x轴上无穷远的点,因为1/0是无穷大,这里约定0/0=0. 例:点(1,1,1)将该向量平移变换(2,3,4)个单位,得到

几何变换平移、旋转、缩放矩阵

**矩阵乘法不满足交换律,因此先后顺序一定要讲究.** 矩阵乘法规则:A矩阵第一行与B矩阵第一列逐元素相乘再相加,放在C矩阵[11],A矩阵第一行与B矩阵第二列逐元素相乘再相加,放在C矩阵[12],A矩阵第二行与B矩阵第一列逐元素相乘再相加,放在C矩阵[21],A矩阵第二行与B矩阵第二列逐元素相乘再相加,放在C矩阵[22]. 平移矩阵:设某点向X方向移动dx,Y方向移动dy,某点的平移前的坐标为(x,y),则平移后的坐标计算为: X = x + dx ; Y = y + dy; 矩阵表示为: 旋

【转载】Unity中矩阵的平移、旋转、缩放

By:克森 简介 在这篇文章中,我们将会学到几个概念:平移矩阵.旋转矩阵.缩放矩阵.在学这几个基本概念的同时,我们会用到 Mesh(网格).数学运算.4x4矩阵的一些简单的操作.但由于克森也是新手,文章的严谨性可能不是很高,还请大神们多多指教. 创建项目 首先创建一个Unity工程,克森把他命名为“Matrix of China”(中国的矩阵),基本配置如下图所示: 为了便于查找,让我们在 Assets 目录下新建三个文件夹,分别命名为“Scripts”.“Shader”.“Materials”

矩阵的旋转

一,给定一个矩阵,用二维数组表示,不一定是方阵(N*N),求矩阵的转置(向右),和向左转置.比如: 1 2 3 4 5 6 7 8 9 向右转置: 1 4 7 2 5 8 3 6 9 再比如: 1 2 3 4 5 6 向 左转置 3 6 2 5 1 4 二,实现思路 假设原来的矩阵是M*N,转置后变成了 N*M.设原矩阵是arr[M][N],创建一个新的矩阵 rev[N][M] 对于向右转置而言,就是线性代数里面的求AT,对于arr[M][N]里面的每个元素arr[i][j],将之赋值给 rev

二维数组(矩阵)之将矩阵旋转90度

将矩阵旋转90度: 题目描述: 例如将一个5*5的矩阵顺时针旋转90度:旋转前 1       2        3         4         5 6       7        8         9        10 11    12      13      14       15 16    17      18      19       20 21    22      23      24       25 选转后: 21     16      11       6

OpenGl 坐标转换 (转载)

OpenGl 坐标转换 (转载) 1. OpenGL 渲染管线 OpenGL渲染管线分为两大部分,模型观测变换(ModelView Transformation)和投影变换(Projection Transformation).做个比喻,计算机图形开发就像我们照相一样,目的就是把真实的场景在一张照相纸上表现出来.那么观测变换的过程就像是我们摆设相机的位置,选择好要照的物体,摆好物体的造型.而投影变换就像相机把真实的三维场景显示在相纸上一样.下面就分别详细的讲一下这两个过程. 1.1模型观测变换