算法来源:C++/PCL:最小二乘拟合平面直线,平面多项式曲线,空间多项式曲线

以下是我改写的算法,未经验证正确性!!!

// 3D 空间中拟合曲线
void fittingPolynomial3D(const pcl::PointCloud<pcl::PointXYZI>::Ptr &cloud, double &a, double &b, double &c) {// 获取点的总数int num_point = cloud->points.size();Eigen::MatrixXd A_(3, 3), B_(3, 1), A123(3, 1);double A01(0.0), A02(0.0), A12(0.0), A22(0.0), B00(0.0), B10(0.0), B12(0.0);for (int i = 0; i < num_point; ++i) {double x_y = std::sqrt(std::pow(cloud->points[i].x, 2) + std::pow(cloud->points[i].y, 2));A01 += x_y;A02 += std::pow(x_y, 2);A12 += std::pow(x_y, 3);A22 += std::pow(x_y, 4);B00 += cloud->points[i].z;B10 += x_y * cloud->points[i].z;B12 += std::pow(x_y, 2) * cloud->points[i].z;}A_ << num_point, A01, A02,A01, A02, A12,A02, A12, A22;B_ << B00,B10,B12;A123 = A_.inverse() * B_;a = A123(2, 0);b = A123(1, 0);c = A123(0, 0);}

3D 空间中拟合曲线相关推荐

  1. 使3D空间中物体朝向和其速度方向一致的旋转矩阵计算方案

    在3D空间中的物体以某一速度运动,有时候需要这个物体的朝向和速度的方向一致, 为了实现这个目标我们一般借助旋转矩阵 M 来将物体旋转到对应的朝向. 例如速度方向矢量 spdV: Vector3D(1, ...

  2. 使用脑电图慢皮层电位重建3D空间中的手,肘和肩的实际和想象的轨迹

    导读 从神经活动中解码想象运动的运动学的能力对于开发可以帮助行动不便的人的假肢设备至关重要.当前采用脑电图(EEG)等无创记录方法解码实际和想象的手运动轨迹来控制神经运动假体,通常通过应用多维线性回归 ...

  3. 在3D空间中绘制四边形

    在3D空间中绘制四边形 四边形 GL_QUADS OpenGL的GL_QUADS图元用于绘制四边形,它根据每四个顶点绘制一个四边形. 注意,在使用四边形时,必需记住一个重要规则:一个四边形的四个角必须 ...

  4. 3D空间中的点坐标转化为屏幕二维点坐标(一)

    每个人在进入计算机图形学的世界中,都有一个同样的困惑,三维世界中的三维坐标是如何被转换成屏幕上的二维坐标的,我如何在屏幕上找到一个点(二维点)对应三维世界中的点(三维点)呢? 要理解其中的过程,对学习 ...

  5. 一般向量空间的基变换_向量几何--3-D空间中的基变换与坐标变换【转】 - 回到未来 - C++博客...

    <6>3-D空间中的基变换与坐标变换-Twinsen编写 -本人水平有限,疏忽错误在所难免,还请各位数学高手.编程高手不吝赐教 -我的Email-address:popyy@netease ...

  6. 2D平面上的变换和3D空间中的变换以及求无穷远点

    求两个平行线的无穷远点,最简单的方法(二维空间和三维空间都适用) 两个平行线的交点就是无穷远点.求解的方法就是把直线的方向向量(向量我们都用列向量表示)拿到,然后给最后一维加个0就是它们的交点(无穷远 ...

  7. 【学习OpenGL】(三)——3D空间中的点与线

    一.3D空间中的点 #include <gl/glut.h> #include <math.h>#define GL_PI 3.1415fstatic GLfloat xRot ...

  8. 用纯C语言实现3D空间中的点坐标转化为屏幕二维点坐标,包含主视图、侧视图、俯视图、正等轴投影

    要实现3D空间中的点坐标转换为屏幕二维点坐标,需要进行透视变换和投影变换.以下是一些基本的思路和示例代码,可以用于实现主视图.侧视图.俯视图.正等轴投影. 1. 主视图投影 主视图投影是指以一个点作为 ...

  9. 3d空间中球体的动量守恒

    其实,虽然说的是3d空间中的,但事实上一旦掌握原理,他可以用在任意维度的空间中: 为了简化代码,最好能够满足如下要求: 所有的空间属性都用矢量来表示:比如位置,速度,加速度(虽然这里涉及不到加速度): ...

最新文章

  1. libevent源码深度剖析十一
  2. Linux各个发行版本的选择
  3. 【opencv】17.提取RBG各种颜色c++代码
  4. android 直播 app下载地址,蓝泡泡直播
  5. 操作系统实验报告6:进程间通信—共享内存
  6. Bootstrap~多级导航(级联导航)的实现
  7. java mvc 菜鸟_Spring MVC 简单入门
  8. android onNewIntent
  9. sql 删除重复记录
  10. c语言汉字转拼音,c语言汉字转拼音函数源码 汉字拼音转换
  11. android 指纹比对方法,指纹识别功能方面对比_手机Android频道-中关村在线
  12. 学车经验总结(科目二)
  13. 总是过目即忘,试试建立知识库吧
  14. 讲理论,重实战,腾达内部SpringBoot王者晋级之路全彩小册开源
  15. 【CUDA基础练习】向量内积计算的若干种方法
  16. java小游戏 飞翔的小鸟,校园新手入门,分分钟带你玩转编程
  17. Java-名片管理系统
  18. CTFHUB log
  19. 说大数据杀熟,这锅可不背!
  20. 如何评估企业人力资源价值--人力资源产出指标

热门文章

  1. 【数据库】聚簇索引与非聚簇索引
  2. 在WIN7下使用VB6.0
  3. error C2143/C2501/C2059/C2238
  4. 案例分析:回归-克里金方法生成气温表面图(1)
  5. 均值已知检验方差_χ2检验教案:独立性检验的z统计量
  6. 2021消防设施操作员(中级)岗位考试真题安全检查知识部分
  7. np.meshgrid, ravel(), np.c_, plt.contourf()函数的用法,以及决策边界的画法。
  8. 用Ogre实现画中画 [ 截图 ]
  9. 在线HTML转XML工具
  10. oracle distinct 多个,oracle distinct多字段去重