隧道中线提取的优化方法

目录

一、算法原理

1、优化方法


2、参考文献

105

二、代码实现

cpp 复制代码
#include <iostream>
#include <vector>
#include <algorithm>
#include <pcl/point_types.h>
#include <pcl/point_cloud.h>
#include <Eigen/Dense>
#include <Eigen/Geometry>



struct QuadraticCoeffs 
{
    double a, b, c;  // 二次多项式系数: 对于XOY: x = a*y^2 + b*y + c; 对于YOZ: z = a*y^2 + b*y + c

    QuadraticCoeffs() : a(0), b(0), c(0) {}
    QuadraticCoeffs(double a_, double b_, double c_) : a(a_), b(b_), c(c_) {}

    double evaluate(double y) const 
    {
        return a * y * y + b * y + c;
    }

    double derivative(double y) const 
    {
        return 2.0 * a * y + b;
    }
};


/**
 * @brief计算法线与目标曲线的交点
 */
std::pair<bool, Eigen::Vector2d> findIntersectionWithNormal(
    double y0, double val0,  // 当前点在曲线1上的坐标
    const QuadraticCoeffs& curve1_coeffs,  // 当前点所在曲线
    const QuadraticCoeffs& curve2_coeffs)  // 目标曲线
{
    // 计算曲线1在当前点的导数
    double f_prime_y0 = curve1_coeffs.derivative(y0);
    // 法线斜率 = -1/f'(y0)
    double slope_normal = -1.0 / f_prime_y0;

    }
}
相关推荐
.道阻且长.4 小时前
2.LeetCode算法习题讲解--双指针--复写零
算法·leetcode·职场和发展
·薯条大王4 小时前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
To_OC6 小时前
LC 438 找到所有字母异位词:暴力超时后,我靠滑动窗口一招搞定
javascript·算法·leetcode
Forever Nore8 小时前
学完C语言力扣第一题做不来正常吗
数据结构·算法
hansang_IR9 小时前
【题解】LC:倍增 / 区间并查集(Range Parallel Unionfind)
c++·算法·并查集
东东最爱敲键盘9 小时前
day7.c++继承
c++
沫璃染墨10 小时前
《从零入门Linux系统篇(十五):系统工具篇·六——GDB调试器详解:从程序执行控制到高级调试技巧》
linux·运维·服务器·c语言·c++
吃着火锅x唱着歌10 小时前
Effective C++ 学习笔记 条款40 明智而审慎地使用多重继承
c++·笔记·学习
Tisfy10 小时前
LeetCode 3731.找出缺失的元素:哈希 / 排序
算法·leetcode·哈希算法·排序·哈希表