c++ - vtk:建模示例不起作用(Delaunay3D、金融等)

标签 c++ vtk

我是 vtk 的新手,我已经使用 Cmake 和 Visual Studio 2017 以及默认选项和示例从源代码成功构建了 vtk 8.1.1。

我已经solved an issue带有 Infovis 文件夹示例。

现在,我正在尝试运行 Modeling 文件夹中的示例:

enter image description here

问题是,当我尝试运行这些示例时,它会打开一个窗口,但很快就会关闭,我什至看不到它说的是什么,所以我对错误一无所知。

Delaunay3D.cxx 文件以这些注释开头:

`// Delaunay3D
// Usage: Delaunay3D InputFile(.vtp) OutputFile(.vtu)
//        where
//        InputFile is an XML PolyData file with extension .vtp
//        OutputFile is an XML Unstructured Grid file with extension .vtu
`

所以看起来我需要外部数据文件,其他例子也是如此。但是,我从哪里获得这些文件,又将它们放在哪里?

最佳答案

源文件中的一些示例不完整,即正如您所发现的,其中一些需要外部输入文件,这些文件可能丢失或 CMakeLists.txt 等中存在错误。在您附加的文件夹的父文件夹中(即 Modelling 目录)的屏幕截图还有一个用于 Python 示例的文件夹。在该文件夹中,有一个 Delaunay3D.py 文件,它创建随机点作为输入而不是从文件中读取它们。所以你也可以这样做。通过修改Delaunay3D.cxx代码或在TestDelaunay3D.cxx中添加一些代码,Python和C++中的函数名称和签名是相同的。但不幸的是,财务示例没有这样的文件。

我发现将 VTK 代码与 Paraview 一起使用很有用. Paraview 建立在 VTK 之上。它具有通过 GUI 可用的大部分 VTK 过滤器。在 Paraview 中,您还可以创建一些数据并使用 File->Save Data 将其保存到文件中。然后,您可以将其用作示例的输入。一旦您熟悉了 VTK 文件类型和 VTK 源代码,生成数据就不需要大量代码了。因此,您可以自己修改任何示例代码(就像在 Delaunay3D.py 中所做的那样)。

关于放置输入文件的位置,在这种特殊情况下,您可以将它们放置在任何地方,但是当您运行构建的可执行文件时,您必须在命令行中正确输入输入文件的路径。

根据评论更新:

  1. Python 包装器几乎提供了 C++ 版本的全部功能。异常(exception)情况已注明 here .如果您决定使用 VTK Python,那么一个很好的阅读资源是 VTK Numpy interface .
  2. Paraview 实现了大部分 VTK 过滤器和源代码。所以它可以做很多几何图形的创建和修改。此外,您可以使用 programmable filters and sources做 Gui 做不到的事情。在可编程过滤器中,您可以编写任何可以导入 vtk 并使用其所有功能的 Python 脚本。
  3. 但是,如果对于您的用例,您只需要 Paraview 提供的功能的一个子集,那么您可能想要编写自己的 GUI。

关于c++ - vtk:建模示例不起作用(Delaunay3D、金融等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51814395/

相关文章:

c++ - 在 vtk 表面渲染输出中裁剪

c++ - VTKActor 在渲染后不可见但在相机->resetview() 上可见

python - 两个 3d 点之间的 Mayavi 弯曲箭头

c++ 自动覆盖有符号/无符号

c++ - Qt中的SLOT类型是什么?

c++ - 复制省略和右值引用

c++ - C++ 中的反向迭代器和负跨步迭代器,在开始之前使用一个作为哨兵

c++ - 在泛型类的每个实例化中增加编译时变量

c++ - 修复 VTK 6.2 链接错误

python - pyvista 射线追踪仅检测到一个交叉点