在PCL中画圆环,pcl可视化pcl::visualization::PCLVisualizer

找了很多资料,pcl中有 pcl::visualization::PCLVisualizer::addCircle 画圆环,但是明显看到圆环不圆,线条不光滑,不好看,于是有了我的画圆的方法。

2022/4/11  :      此方法性能不好,请参考最新方法:

此方法性能不好,请参考最新方法:

此方法性能不好,请参考最新方法:

此方法性能不好,请参考最新方法:

基于Qt在PCL中画圆环,VTK画圆环,pcl可视化viewer与vtk显示接合(终于解决)

一、代码

void mainwindow::initPointCloudViewer()
{
    viewer->initCameraParameters();

    QColor backgriundColor(0, 0, 15);
    viewer->setBackgroundColor(backgriundColor.red() / 255.0, backgriundColor.green() / 255.0, backgriundColor.blue() / 255.0, 0);

    viewer->createViewPortCamera(0);
    viewer->setCameraPosition(0, -20, 10, 0, 0, 0, 0, 1, 1, 0);
    viewer->addCoordinateSystem(0.9, "coordinateSystem", 0);
    //画网格 
    for (int i = -20; i <= 20; i += 5) {
        viewer->addLine(pcl::PointXYZ(i, -20, 0), pcl::PointXYZ(i, 20, 0), QString("GriglineY%1").arg(i).toStdString(), 0);
        viewer->addLine(pcl::PointXYZ(-20, i, 0), pcl::PointXYZ(20, i, 0), QString("GriglineX%1").arg(i).toStdString(), 0);
    }
    //画圆环
    QVector<pcl::PointXYZ> points;
    for (int j = 1; j <= 4; j ++) {
        int o_x = 0, o_y = 0, r = 5 * j;    //圆心及半径
        for (int i = 0; i < 100; i++)   //计算圆环上点的坐标
        {
            pcl::PointXYZ point;
            double alpha = 2 * M_PI / (100 - 1);
            point.x = o_x + r * cos(i * alpha);
            point.y = o_y + r * sin(i * alpha);
            point.z = 0;
            points.push_back(point);
        }
        //将圆环上的点用线段连起来
        for (int i = 0; i < points.size() - 1; i++)
        {
            viewer->addLine(points.at(i), points.at(i + 1), QString("CircleLineX%1_%2").arg(i).arg(j).toStdString(), 0);
        }
        viewer->addLine(points.at(points.size() - 1), points.at(0), QString("CircleLineX%1_%2").arg(points.size()).arg(5).toStdString(), 0);
    }
    
}

二、效果

呕心沥血呀老铁们,这就是我想要的效果了,没有画圆有画线段呀,这让我想到了微积分,效果达到就好了,PCL就没有一个好看的画圆的接口。

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

源客V

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值