python计算点到面的距离

已知M个点,记P∈R^(M*3),目的是求M个点到平面Z= aX + bY + c的距离解法1: 使用平面的法向量来求解
平面Z= aX + bY + c的法向量为[a,b,-1];解法2: 使用系数[a,b,c]来求解
  • code1
# 加入normal就为法向量[a,b,-1]
def point_plane_dist(normals,pcd):max_dist = 0.4a1 = normals[0] # aa2 = normals[1] # ba3 = normals[2] # -1normals = normals.reshape(3,1)FM = np.sqrt(a1**2 + a2**2+a3**2)dists = abs(np.dot(normals,A)+a3)/FM# 求点集中于平面距离小于阈值的点集的索引ground_idx = (dists <= max_dist).ravel()ground_points = pcd[ground_idx]pre_cloud = pcd[np.logical_not(ground_idx)]# 输出地面背景点和前景点return ground_points, pre_cloud
  • code2
def point_plane_dist(normals,pcd):max_dist = 0.4a1 = normals[0]a2 = normals[1]a3 = normals[2]FM = np.sqrt(a1**2 + a2**2+1)A = np.array([a1,a2,-1]).reshape(3,1)dists = abs(np.dot(pcd,A)+a3)/FMground_idx = (dists <= max_dist).ravel()ground_points = pcd[ground_idx]pre_cloud = pcd[np.logical_not(ground_idx)]return ground_points, pre_cloud
  • code2(c++版本代码)
#include<iostream>
#include<vector>using namespace std;vector<float> mat(vector<vector<float>> P, vector<float> N)
{float c = N[2];N[2] = -1;float FM = sqrt(pow(N[0], 2.0) + pow(N[1], 2.0) + 1);vector<float> res(P.size(), 0);for (int i = 0; i < P.size(); i++){for (int j = 0; j < N.size(); j++)res[i] += P[i][j] * N[j];res[i] += c;res[i] = res[i] / FM;}return res;
}int main()
{// 平面Z = aX + bY + cvector<float> normals(3, 0);//法向量[a,b,c]int N;cin >> N;vector<vector<float>> points(N, vector<float>(3, 0));vector<float> dist = mat(points, normals);return 0;}

python计算点到面的距离相关推荐

  1. HDU3662(求三维凸包表面的多边形个数,表面三角形个数,体积,表面积,凸包重心,凸包中点到面的距离)

    题目:3D Convex Hull   题意:给定空间中的n个点,求这n个点形成的凸包的表面的多边形个数. 增量法求解:首先任选4个点形成的一个四面体,然后每次新加一个点,分两种情况: 1> 在 ...

  2. python计算点到直线的距离_Python求平面内点到直线距离的实现

    近期遇到个问题,需要计算平面内点到直线的距离,发现数学知识都还给老师了,度娘后找到计算方法,特此记录. 点到直线的计算公式: 通过公式推导,得到信息: a:直线斜率 b:固定值-1 c:直线截距b 转 ...

  3. python求点到曲线距离_Python。如何从点和偏移距离的x,y列表中获取偏移样条曲线的x,y坐标...

    在特殊情况下,坡度为无穷大/零,但基本方法是使用插值计算某个点的坡度,然后找到垂直坡度,然后计算该距离处的点.在 我修改了来自here的示例,以添加第二个图.它与data file you provi ...

  4. java jts点到面的距离_jts-空间索引

    前言: 如果您对JTS这三个词还是没有一个概念,那么推荐您关注一下sinoly的博客.这个我能够找到为数不多的关于jts的中文资料. http://www.blogjava.net/sinoly/ar ...

  5. python计算平面两点距离公式_python距离公式坐标平面误差

    我的目标是使用围绕圆的边缘和恒定起点(圆圈的中间)的随机端点在pygame中使用线条形成圆形.所以我决定将pygame.draw.line函数:screen,aRandomColor,starting ...

  6. python 求点到线段距离

    1 点和线段的参数 # 点的坐标 p = [0,0]# 线段的参数 # 线段的端点1 a = [-1,1] # 线段的端点2 b = [1,1] 2 求取距离 import numpy as np d ...

  7. CloudComparePCL 点云点匹配(基于点到面的距离)

    文章目录 一.简介 二.PCL中的匹配类型 三.实现代码 四.实现效果 参考文献 一.简介 在ICP算法中经常会使用到一个点到另一个点切平面的垂直距离("点到平面"误差度量,如下图 ...

  8. creo怎么测量点到面的距离

    要点: 分析–测量–选"距离", 这时候会让选两个特征,选完第一个特征后,按住ctrl,才能选第二个!

  9. python实现点到平面的距离

    python实现点到平面的距离 目录 python实现点到平面的距离 1.三点定面 2.点到面的距离 3.python实现点到面的距离 关于点线面之间关系可以参考:平面方程与点到平面的距离_西檬饭-C ...

最新文章

  1. 近期活动盘点:2019第六届世界互联网大会、面向智慧城市的人本尺度城市形态:理论方法与实践讲座、高级管理人员AI大数据能力研修班...
  2. [每日短篇] 1D - 消除 if 的一种方法
  3. Ts + React + Mobx 实现移动端浏览器控制台
  4. Spring框架的事务管理之基于AspectJ的XML方式(重点掌握)
  5. 静态程序分析chapter4 - 基于格(Lattice)理论的数据流分析
  6. IBM营收持续下滑 不过蓝色巨人证明自己非老矣
  7. Guava之Ordering
  8. python一行行写文件_python一行行写文件-女性时尚流行美容健康娱乐mv-ida网
  9. Android Studio 安装ASM插件
  10. 混合使用Objective-C,C++和Objective-C++
  11. 笔记本相机测试软件,联想笔记本人脸识别软件(Lenovo VeriFace)
  12. Python | 实现双色球选号(educoder)
  13. IP的子网和超网划分
  14. 苹果开场铃声 android,为何苹果用户喜欢用手机默认铃声?原因在这4点,真是非常现实...
  15. php在广告策划方面需要什么,网上推广网店运营 系统是基于PHP+MySQL的B2B(电子商务)行业门户解决方案”是什么意思呢,谢谢...
  16. 自学iOS开发系列----UI(视图编程入门:UIScrollView)
  17. 平面直角系【坐标系旋转】、【点绕坐标系旋转】、【A点绕B点旋转】
  18. LVS的模式一:DR(直接路由)模式
  19. led灯珠型号及使用参数
  20. pytorch实战(四)——模型的保存与读取

热门文章

  1. 视频播放密码/视频加密功能
  2. Python数据挖掘——烟火图像分类:传统机器学习建模方法与卷积神经网络性能比较
  3. Operator '==' cannot be applied to错误
  4. [MOVE]-音频翻唱检索论文笔记
  5. 三张表,四张表怎么连接?
  6. 使用C#快速创建KML文件或读取其功能
  7. 华为OD机试 - 最小调整顺序次数、特异性双端队列
  8. openssl源码中的头文件include error
  9. python编程8g的内存够么_内存8G够用吗?深入解读~
  10. 助你成功的10个万能谈话技巧