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
中所做的那样)。
关于放置输入文件的位置,在这种特殊情况下,您可以将它们放置在任何地方,但是当您 运行 构建的可执行文件时,您必须在命令行中正确输入输入文件的路径.
根据评论更新:
- Python 包装器提供了 C++ 版本几乎完整的功能。例外情况已注明 here. If you decide to use VTK Python then a good resource to read is the VTK Numpy interface.
- Paraview 实现了大部分 VTK 过滤器和源代码。所以它可以做很多几何图形的创建和修改。此外,您可以使用 programmable filters and sources 来做 Gui 做不到的事情。在可编程过滤器中,您可以编写任何可以导入 vtk 并使用其所有功能的 Python 脚本。
- 但是,如果对于您的用例,您只需要 Paraview 提供的功能的一个子集,那么您可能想要编写自己的 GUI。
我是 vtk 的新手,我已经使用 Cmake 和 Visual Studio 2017 以及默认选项和示例从源代码成功构建了 vtk 8.1.1。
我已经
现在,我正在尝试 运行 建模文件夹中的示例:
问题是,当我尝试 运行 这些示例时,它会打开一个 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
中所做的那样)。
关于放置输入文件的位置,在这种特殊情况下,您可以将它们放置在任何地方,但是当您 运行 构建的可执行文件时,您必须在命令行中正确输入输入文件的路径.
根据评论更新:
- Python 包装器提供了 C++ 版本几乎完整的功能。例外情况已注明 here. If you decide to use VTK Python then a good resource to read is the VTK Numpy interface.
- Paraview 实现了大部分 VTK 过滤器和源代码。所以它可以做很多几何图形的创建和修改。此外,您可以使用 programmable filters and sources 来做 Gui 做不到的事情。在可编程过滤器中,您可以编写任何可以导入 vtk 并使用其所有功能的 Python 脚本。
- 但是,如果对于您的用例,您只需要 Paraview 提供的功能的一个子集,那么您可能想要编写自己的 GUI。