解释代码 pclPointCloudpclPointXYZRGBPtr yr1 = clouds1i; cout 路径 i + 1 所有骨架点: endl; pclPointXYZRGB& point54 = jinqi;防止修改掉茎起点 pclPointXYZRGB& point56 = point54;将搜索的起点统一设置为茎秆的起点 clouds1i-push_backpo
这段代码实现了寻找路径的功能。首先,创建了一个名为yr1的PointCloud指针,类型为pcl::PointCloudpcl::PointXYZRGB,并将该指针指向clouds1[i]。然后,输出路径的编号。接下来,初始化了两个PointXYZRGB类型的引用变量point54和point56,分别指向jinqi。这样做是为了防止修改jinqi,同时将搜索的起点统一设置为茎秆的起点。然后,将point56加入到clouds1[i]中。接着,初始化了一个变量distances,用于记录路径的距离。然后,通过两层循环,找到一个叶片内不同点的循环,确保不会遗漏边。在内层循环中,遍历所有生成树的边,获取边的两个点p0和p00。如果point56与p0相同,则将p00加入到yr1中,并更新distances和point56的值。如果point56与p00相同,则将p0加入到yr1中,并更新distances和point56的值。然后,判断是否遇到叶节点,如果是,则将该边从resulta中删除,以防止下次搜索时重复遇到。最后,外层循环结束后,路径的构建完成。
原文地址: https://www.cveoy.top/t/topic/iT3e 著作权归作者所有。请勿转载和采集!