3D 坐标变换 公式 推导

[ 更新 ]更好的方法见[用抽象代数讨论仿射变换和仿射空间中的坐标变换] ,以下是之前的内容。

以下的推导 结论是正确的,可是过程有点懵。

以下使用行向量:

e1=(1,0,0)

e2=(0,1,0)

e3=(0,0,1)

i, j, k是三个线性无关的向量。它们在e1,e2,e3坐标系下的坐标也记作i,j,k

i’, j’, k’是三个线性无关的向量,它们在e1,e2,e3坐标系下的坐标也记作i’, j’, k’


denote???ijk???=A,???i′j′k′???=B

已知点P相对于Oijk的坐标是(x,y,z)

则点P相对于O’i’j’k’的坐标:

(x′,y′,z′)=((x,y,z)A+(O?O′))B?1

若B是正交矩阵。就不用求逆了,求转置就是。

特别地,

若O=(0,0,0),i=e1,j=e2,k=e3,则

(x′,y′,z′)=((x,y,z)?O′))B?1


推导

设点P相对于O’i’j’k’的坐标是(x’,y’,z’)

∵P=O+(x,y,z)A=O′+(x′,y′,z′)B

∴(x′,y′,z′)=((x,y,z)A+(O?O′))B?1


补充

记 B=AM(M=A?1B),即M是把i,j,k变换到i’,j’,k’的变换矩阵,

∴(x′,y′,z′)=((x,y,z)A+(O?O′))M?1A?1

特别地。

若O=(0,0,0),i=e1,j=e2,k=e3,则

(x′,y′,z′)=((x,y,z)?O′))M?1andM=B


应用

实际应用中,用到的一般都是O=(0,0,0),i=e1,j=e2,k=e3的特殊情况。

这是由于:问题在描写叙述O’i’j’k’坐标的时候一般都是相对于Oikj而言的;

这里没有绝对的坐标系,仿射空间中不论什么一个点都看以看成(0,0,…0),随意一组基都能够看成{(1,0,…0), (0,1,…0), (0,0,…1)}。

(x,y,z,1)[M?1?O′M?101]=(x′,y′,z′,1)

[M?1?O′M?101]=[MO′01]?1

换个角度理解

点P不动。把坐标架O,i,j,k变换到O’,i’,j’,k’,则变换矩阵是(MO′01), M=B,

就相当于 坐标架不动,点P逆着上述变换,变换到新坐标。

变换的两种方式

①先原地变换坐标架,再平移坐标架

[B001][IO′01]=[BO′01]

②先平移坐标架。再相对平移之后的原点变换坐标架

[IO′01]X=[BO′01]X=[BO′?O′B01]

X能够看成先平移回原点,相对原点 原地变换 坐标架,再平移过去:

X=[B?O′B01][IO′01]

[B?O′B01]=[I?O′01][B001]

注意到 X 与 [B001] 是类似矩阵,正是同一(4维的)线性变换在不同基下的坐标表示。1


  1. http://blog.csdn.net/u010476094/article/details/50551014 ?
时间: 2025-01-08 05:16:52

3D 坐标变换 公式 推导的相关文章

2d,3d中旋转推导

二维绕原点旋转,其实点为(x,y),旋转角度为黄色标注的角度. 推导过程如下: x' = r cos(al+be); y' = r sin(al+be);x '= rcosalcosbe-rsinalsinbe;y'= rsinalcosb+rcosalsinbe;又因为rcosal= x; rsinal=y;所以x'=xcosbe-ysinbe; y'=xsinbe+ycosbe 即为求的的旋转后坐标为(xcosbe-ysinbe,xsinbe+ycosbe); 3d中旋转(摘自网络中博客)

点到超平面距离公式 推导

公式: d = |wx0 + b|/||w||2 推导: 参考文献: https://blog.csdn.net/yutao03081/article/details/76652943 原文地址:https://www.cnblogs.com/jhc888007/p/9501494.html

“三角和差正弦公式”推导

“换底公式”推导

旋转坐标转换的矩阵推导

预备知识 矩阵乘法 介绍略,去网上查吧 两角和(差)公式 推导 旋转变换一般是按照某个圆心点,以一定半径 r 旋转一定的角度α,为了简单起见我们给出下面的情景 假定点A(x,y)想经过旋转变换到达B(x',y'),已知旋转角度α和点A坐标,计算出点B 要计算点B则分别计算他的x'和y'分量 根据矩阵乘法计算规则,可以推出 只要给出旋转角度,计算出矩阵,然后使用这个矩阵分别左乘每一个点,就能计算出这个点旋转后的点坐标 这样我们就可以通过矩阵变换坐标了  如果是三维的话还得加个Z轴,多一个分量,矩阵

(转)旋转矩阵推导

转自:http://www.cnblogs.com/luweimy/p/4121789.html 预备知识 矩阵乘法 介绍略,去网上查吧 两角和(差)公式 推导 旋转变换一般是按照某个圆心点,以一定半径 r 旋转一定的角度α,为了简单起见我们给出下面的情景 假定点A(x,y)想经过旋转变换到达B(x',y'),已知旋转角度α和点A坐标,计算出点B 要计算点B则分别计算他的x'和y'分量 得出结果: 根据矩阵乘法计算规则,可以推出 左侧矩阵第一行各个元素分别乘以右侧矩阵第一列,然后相加,是结果矩阵

OpenGL坐标变换及其数学原理,两种摄像机交互模型(附源程序)

实验平台:win7,VS2010 先上结果截图(文章最后下载程序,解压后直接运行BIN文件夹下的EXE程序): a.鼠标拖拽旋转物体,类似于OGRE中的“OgreBites::CameraStyle::CS_ORBIT”. b.键盘WSAD键移动镜头,鼠标拖拽改变镜头方向,类似于OGRE中的“OgreBites::CameraStyle::CS_FREELOOK”. 1.坐标变换的一个例子,两种思路理解多个变换的叠加 现在考虑Scale(1,2,1); Transtale(2,1,0); Rot

从狭义相对论洛伦兹变换到广义相对论场方程的推导

写在前面 这段时间有点闲,不是因为事不多,主要也是不想干,所以看了看膜拜已久的相对论的知识,特此记录,文中涉及到的公式大多是从别的网站找到的,链接我也会在文章底部留下,感觉国内网站上简单分析相对论的并不多,或者是晦涩难懂的长篇大论,或者上升到了玄学的高度,这也是我写这篇文章的目的,这篇文章适合大多数理工科非物理专业(学过高数和线代),想要知道相对论的推导细节的人.其他人也可以看跳过公式即可. 按理说不应该将此文章放到博客园中,但是博客园对页面定制做的比较好,所以比较适合写各种文章. 一.基本概念

opengl中场景变换|2D与3D互转换(转)

opengl中场景变换|2D与3D互转换 我们生活在一个三维的世界——如果要观察一个物体,我们可以: 1.从不同的位置去观察它.(视图变换) 2.移动或者旋转它,当然了,如果它只是计算机里面的物体,我们还可以放大或缩小它.(模型变换) 3.如果把物体画下来,我们可以选择:是否需要一种“近大远小”的透视效果.另外,我们可能只希望看到物体的一部分,而不是全部(剪裁).(投影变换) 4.我们可能希望把整个看到的图形画下来,但它只占据纸张的一部分,而不是全部.(视口变换) 这些,都可以在OpenGL中实