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

vtk: Modelling examples not working (Delaunay3D, finance etc)

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

我已经 了 Infovis 文件夹示例。

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

问题是,当我尝试 运行 这些示例时,它会打开一个 window,然后关闭得如此之快,我什至看不到它说的是什么,所以我对错误。

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 文件,它创建随机点作为输入而不是从文件中读取它们。所以你也可以这样做。 Python和C++中的函数名称和签名是一样的,修改Delaunay3D.cxx代码或在TestDelaunay3D.cxx中添加一些代码。但是不幸的是,财务示例没有这样的文件。

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

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

根据评论更新:

  1. Python 包装器提供了 C++ 版本几乎完整的功能。例外情况已注明 here. If you decide to use VTK Python then a good resource to read is the VTK Numpy interface.
  2. Paraview 实现了大部分 VTK 过滤器和源代码。所以它可以做很多几何图形的创建和修改。此外,您可以使用 programmable filters and sources 来做 Gui 做不到的事情。在可编程过滤器中,您可以编写任何可以导入 vtk 并使用其所有功能的 Python 脚本。
  3. 但是,如果对于您的用例,您只需要 Paraview 提供的功能的一个子集,那么您可能想要编写自己的 GUI。