vtk:建模示例不起作用(Delaunay3D,财务等)

时间:2018-08-13 02:13:36

标签: 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
`

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

1 个答案:

答案 0 :(得分:1)

源文件中的某些示例不完整,例如,您发现,其中一些示例需要外部输入文件,这些文件可能丢失或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 ++版本中几乎所有可用的功能。例外情况记为here。如果您决定使用VTK Python,那么VTK Numpy interface是一个不错的阅读资源。
  2. Paraview实现了大多数VTK过滤器和源。因此,它可以做很多几何的创建和修改。另外,您可以使用programmable filters and sources来执行Gui无法提供的操作。在可编程过滤器中,您可以编写任何可以导入vtk并使用其所有功能的Python脚本。
  3. 但是如果对于您的用例,您只需要Paraview提供的功能的子集,那么您可能想要编写自己的GUI。