假设在三维世界中存在一个平面,如图

一个平面可以通过如下表达式表达

                                            (1)

其中,(x,y,z)是在该平面上上的点的3D坐标。(A,B,C)能够构成该平面的一个法向量n。

那么,怎么通过一堆离散的点来求解这个平面呢?首先我们可以简单的用一个平面的法向量来表征一个平面。

方法1:

假设在某个平面中存在着三个坐标点分别是M1(x1,y1,z1),M2(x2,y2,z2),M2(x2,y2,z2),那么我们可以得到该平面上的两个向量

M1M2=M2-M1

M1M3=M3-M1

那么,我们需要求解的平面是不是就和这两个向量都平行呢?当然平行!换而言之,这两个向量所构成的平面就是我们所求解的平面。所以我们所求平面的法向量也就必定和这两个向量所构成的平面垂直。最后,也就是说法线必定与上述两个向量垂直。

根据叉积的定义(https://baike.baidu.com/item/%E5%90%91%E9%87%8F%E7%A7%AF/4601007?fr=aladdin&fromid=2812058&fromtitle=%E5%8F%89%E7%A7%AF),我们可以找到和上述两个向量都垂直的向量

n= M1M2 x M1M3

最终,我们通过平面中的3个点求解出来平面的法向量来表征该平面。

方法2:

方法1比较简单,利用高中的几何知识就可以轻易解决,那么大家有没有想过一个问题:在实际情况中,我们得到的某个平面的点集可能是存在一定的误差的,换而言之,某一些点虽然被归为某一个平面,但是由于测量误差的存在,它们可能是在三维坐标系中的位置是高于或者低于我们所求平面的。所以,当我们从中选取3个点去求解平面的时候就会存在比较明显的误差。所以,要是能够充分利用所有测量到的平面中的点的信息,则会增加我们的估计精度。

假如我们有N个点,这N个点都是基本满足公式(1),虽然存在一些误差。那么,它们应该基本满足下面的公式:

针对上述问题,我们可以将它归为一个最小二乘问题:

这是一个AX=0的线性欠定方程。在假设法线模为1的前提下,忽略对D的求解,我们可以对左边矩阵进行SVD分解,得到在未知向量模为1下的解。最终实现对平面法线的求解,当然这是一个近似解啦~

方法3

那么问题来了,要是这一对点中有少数特别离谱的点怎么办?这肯定会影响我们的求解精度啊!其实也简单,用RANSAC方法(https://en.wikipedia.org/wiki/Random_sample_consensus)就可以啦!

平面方程(Plane Equation)求解方法相关推荐

  1. 平面方程(Plane Equation)

    平面方程(Plane Equation) 原文链接:http://www.songho.ca/math/plane/plane.html 翻译:罗朝辉 (http://www.cnblogs.com/ ...

  2. 西尔维斯特方程(Sylvester equation)一般求解方法

    在求解模型中遇到 AX + XB = C 这样一个方程的求解,看到一篇论文中有优化求解方法,可惜看不懂.先把一般求解方法记录一下吧,至于有唯一解的条件.优化等内容看懂了再说吧. 对于Sylvester ...

  3. 最小二乘求解点云平面方程及其对应法向量

    csdn对latex语法支持不完整啊,太不友好了,那我只好上图片了.我把文档已经上传到csdn了,免积分,链接. 本文采用线性最小二乘直接解法(即对矩阵求逆),当矩阵维度大时,可能耗时比较多,可以采用 ...

  4. matlab求解平面方程的原理

    已知三点p1,p2,p3,求其平面方程 syms x y z %p1,p2,p3的坐标由自己定义. p1=[x1,y1,z1]; p2=[x2,y2,z2]; p3=[x3,y3,z3]; %%那么求 ...

  5. 空间中平面方程求解及点到平面的距离

    1.空间中平面方程的一般形式为: Ax+By+Cz+D=0 (参数,A,B,C,D是描述平面空间特征的常数) 已知空间中3个点的坐标(x1,y1,z1),(x2,y2,z2),(x3,y3,z3),求 ...

  6. 【MPC的前身方法二】(5.3)机器人动力学模型+反馈控制+齐次线性方程AX=B求解反作用力并优化方法

    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录 前言 一.建立单刚体动力学模型(近似抽象模型) 二.建立单刚体模型的运动方 ...

  7. pcl求平面法向量_线性代数6——平面方程与矩阵

    线性方程的几何意义 二元线性方程 该方程是一个二元线性方程组,包含两个方程,每个方程是一条直线,两条直线的交点就是该方程有唯一解,这就是二元线性方程的几何意义. 平面方程 空间内不在同一直线上的三点构 ...

  8. matlab 解相位_光测力学栅线投影技术-相位求解方法

    目前相位求解方法主要有傅里叶方法和相移方法两种,主要有以下区别: 傅里叶方法仅需要一张栅线图像,相移则需要至少三张(两步相移法是一种特殊情况,其相位求解方式严格来说并不是用的相移算法,这个在今后的文章 ...

  9. 一种基于物理信息极限学习机的PDE求解方法

    **作者|**PINN山里娃,作者主页 **研究方向|**物理信息驱动深度学习 不确定性 人工智能 偏微分方程 极限学习机 该作者聚焦深度学习模型与物理信息结合前沿研究,提供了一系列AI for sc ...

  10. 高数__已知一个平面方程_求平行的平面,并且经过某点

    201904 真题 已知平面 π 经过点P(-1, 1,2),并且与平面2x-3y+6z-3=0平行, 求平面π的方程 分析: 对于这种题型, 可以用点法式 来解决,  要用此方法,需要知道平面的法向 ...

最新文章

  1. 2021 年 5 月中国编程语言排行榜,C++ 超过 Java 没戏了...
  2. 原 layer父子页面交互
  3. 什么是计算机计算机网络的主要功能是什么,计算机网络的三大主要功能是什么?-与非网...
  4. Javascript之旅——第十站:为什么都说闭包难理解呢?
  5. Atitit.atiRI  与 远程调用的理论and 设计
  6. 分享一个圆角自定义的漂亮AlertDialog
  7. 同余方程-NOIP2012TGD2T1
  8. ET框架学习1-服务端的认识
  9. php ms5解密,「phpmd5解密」解析php混淆加密解密的手段
  10. HTML5新增标签--canvas之绘制你画我猜
  11. Vulnhub靶机:GEMINI INC_ 1
  12. 彻底清除计算机病毒的方式是,彻底清除电脑病毒的小方法
  13. Android 模拟器 连接局域网
  14. UCenter Home 正式开源 促进国内SNS网站发展
  15. 饭后小甜点leetcode——堆
  16. 2021级新生个人训练赛第37场
  17. 跟着小马哥学习Spring(1)
  18. 如何区分IPEX一代/二代/三代/四代/五代
  19. USB 发展 缺陷 与 未来
  20. ros中自定义msg消息并用其他功能包调用

热门文章

  1. 怎么把淘宝宝贝分享到微信朋友圈
  2. 【20保研】南开大学统计与数据科学学院2019年全国优秀大学生夏令营
  3. 大数据学习教程SD版第三篇【Hadoop HDFS】
  4. 前端几种本地缓存机制
  5. visio2013如何画箭头
  6. 精益创业 (创业理念)
  7. Macbook pro 2015款 换完硬盘bootcamp 尝试访问启动磁盘设置时出错解决方法
  8. 初次Blender建模遇到的问题与解决方法(二)
  9. C语言 execve()函数使用方法
  10. DirectX11 With Windows SDK--00 目录