相对于任意平面的镜像变换矩阵
2012-09-13 10:14
2707 查看
本文将讨论任意点v相对于某个平面镜像变换后的点v'的推导过程。
首先见下图:
图画的不好,大家将就看哈^-^!
图中的v代表将要变换的点、v'是v相对于平面镜像变换后的点、n是平面的法向量,在讨论中,我们始终假设n为单位向量、k是自v到该平面的最短有向距离、q是平面上距离点v最近的点、d是原点到平面的最短有向距离。
根据向量加法的几何意义,我们知道
同样的,我们可以知道
。然后,把上面求出的q值代入该公式,我们得到
那么现在,我们就面临这样的问题,k怎么求呢?
首先,我们在图中创建个直角三角形,如图:
此时,我们可以发现
。同时
,为什么是-d呢,因为原点位于平面的负方向,所以d是小于0的,而求b的长度,要取d的长度,即-d。此时,合并2个公式,我们就求得了
。此时,把k的值代入上述公式,我们得到了
如此,我们便得到了v'与v的关系表达式,展开看下会更明显:
现在,把它写成矩阵形式,我们便得到了相对于任意平面的镜像变换矩阵:
以下为详细的推导出矩阵形式(add 草原Song)
首先见下图:
图画的不好,大家将就看哈^-^!
图中的v代表将要变换的点、v'是v相对于平面镜像变换后的点、n是平面的法向量,在讨论中,我们始终假设n为单位向量、k是自v到该平面的最短有向距离、q是平面上距离点v最近的点、d是原点到平面的最短有向距离。
根据向量加法的几何意义,我们知道
同样的,我们可以知道
。然后,把上面求出的q值代入该公式,我们得到
那么现在,我们就面临这样的问题,k怎么求呢?
首先,我们在图中创建个直角三角形,如图:
此时,我们可以发现
。同时
,为什么是-d呢,因为原点位于平面的负方向,所以d是小于0的,而求b的长度,要取d的长度,即-d。此时,合并2个公式,我们就求得了
。此时,把k的值代入上述公式,我们得到了
如此,我们便得到了v'与v的关系表达式,展开看下会更明显:
现在,把它写成矩阵形式,我们便得到了相对于任意平面的镜像变换矩阵:
以下为详细的推导出矩阵形式(add 草原Song)
相关文章推荐
- SVG中以任意直线为对称轴的镜像变换及其矩阵
- 计算机图形学:任意点相对于任意平面的反射矩阵
- 扩展speia特效,支持任意RGB颜色变换矩阵,原理很简单,不解释
- 空间向量在任意平面的投影公式推导 (矩阵方法)
- 2D平面中关于矩阵(Matrix)跟图形变换的讲解
- 绕任意轴旋转的变换矩阵的推导
- [opencv] 将摄像头图像做镜像变换(split, merge, 矩阵相乘)
- 2D平面中关于矩阵(Matrix)跟图形变换的讲解
- 2D平面中关于矩阵(Matrix)跟图形变换的讲解
- 2D平面中关于矩阵(Matrix)跟图形变换的讲解
- 绕任意轴旋转的变换矩阵的推导
- 扩展speia特效,支持任意RGB颜色变换矩阵,原理很简单,不解释
- 2D平面中关于矩阵(Matrix)跟图形变换的讲解
- PCL 构造一个绕任意轴旋转的变换矩阵
- 2D平面中关于矩阵(Matrix)跟图形变换的讲解
- 平面坐标变换 矩阵形式
- 矩阵变换
- 深入解析HTML5 Canvas控制图形矩阵变换的方法
- ASP.NET gridview中点击任意行的任意位置选中某行交替效果 变换鼠标手势,获取选定行的指写数据
- SharpGL学习笔记(八) 矩阵堆栈和变换的综合例子: 机器人