gpt4 book ai didi

c++ - Qt交互渲染点、线、线段

转载 作者:行者123 更新时间:2023-11-28 02:09:22 27 4
gpt4 key购买 nike

我是 Qt 的新手,我想使用 Qt 使用 CGAL 制作交互式几何程序。我希望用户使用鼠标输入点、线段,然后按下按钮让 CGAL 算法处理输入。

我的环境是 CGAL 4.5、Qt 5.6QtCreator 3.6.1,在 Ubuntu 14.04 机器上。

CGAL 内置了对其对象的支持使用 QtGraphicsViewFramework 呈现 ( http://doc.cgal.org/latest/GraphicsView/index.html )

我不知道如何将 CGAL 对象(点、线、射线、多边形)渲染到 Qt 窗口中。我在上面链接到的页面假定您了解 Qt 才能使应用程序正常工作,因此对 Qt 初学者没有帮助。

到目前为止,我已经使用 QtCreator 创建了一个 Qt widgets 应用程序项目。据我所知,我需要通过将不同类型的小部件拖放到 QtCreator 中以图形方式修改 mainwindow.ui 文件,然后将调用 CGAL 函数的信号映射到绘图 Canvas 小部件将要使用的任何插槽上是。 (这是正确的吗?我对信号和槽机制犹豫不决)

我的问题是....我应该将哪个小部件作为绘图 Canvas 放在窗口上?两个相关的小部件似乎是 GraphicsViewOpenGL widgets在 DisplayWidgets 菜单下。但是我该如何使用它们呢?

最佳答案

我没有 CGAL 经验,但我可以给你一些与 Qt 相关的提示:

  1. 使用QGraphicsView + QGraphicsScene。如果需要,您可以像这样启用 OpenGL 支持:

    QGraphicsView view = new QGraphicsView(parentWindow);
    view->setViewport(new QOpenGLWidget(view));
  2. 要绘制 CGAL 对象,您必须使用提供的图形项目类(CGAL::Qt::TriangulationGraphicsItemCGAL::Qt: :VoronoiGraphicsItem, ...) 或者从 CGAL::Qt::GraphicsItem 派生你自己的。要将项目添加到场景,请使用 QGraphicsScene::addItem() 方法。

  3. 为了导航(平移 + 缩放) View ,CGAL 提供了 CGAL::Qt::GraphicsViewNavigation 类。这是如何使用它:

     CGAL::Qt::GraphicsViewNavigation* navFilter = new  CGAL::Qt::GraphicsViewNavigation(view);
    view->viewport()->installEventFilter(navFilter);

关于c++ - Qt交互渲染点、线、线段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36289908/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com