在 Visual Studio 中设置 VTK 库的引用和配置可以分为以下几个步骤:
- 下载 VTK: 首先,您需要下载并解压 VTK 库。您可以从 VTK 官方网站下载源代码,并按照官方提供的说明进行编译,也可以尝试寻找预编译的版本。
- 创建 Visual Studio 项目: 打开 Visual Studio,创建一个新的 C++ 项目。
- 设置包含目录和库目录:
- 在 Visual Studio 中,右键单击您的项目,选择“属性”。
- 在属性对话框中,选择“C/C++” > “常规”,然后在“附加包含目录”中添加 VTK 头文件的路径。
- 然后选择“链接器” > “常规”,在“附加库目录”中添加 VTK 库文件的路径。
- 设置附加依赖项:
- 在属性对话框中,选择“链接器” > “输入”,在“附加依赖项”中添加需要链接的 VTK 库文件名(如
vtkCommon.lib
、vtkRenderingOpenGL2.lib
等)。
- 在属性对话框中,选择“链接器” > “输入”,在“附加依赖项”中添加需要链接的 VTK 库文件名(如
- 设置运行时库:
- 在属性对话框中,选择“C/C++” > “代码生成”,将“运行时库”设置为与 VTK 库相匹配的运行时库类型(如
/MT
或/MTd
)。
- 在属性对话框中,选择“C/C++” > “代码生成”,将“运行时库”设置为与 VTK 库相匹配的运行时库类型(如
- 将 VTK DLL 文件添加到项目中: 如果您使用的是预编译的 VTK 库,那么在运行时您需要将 VTK DLL 文件复制到您的可执行文件的目录中。
完成这些步骤后,您的项目就应该能够正确地链接和使用 VTK 库了。您可以使用 VTK 提供的各种类来构建您的图形应用程序。在您的代码中包含 VTK 头文件并使用 VTK 类即可开始编写您的应用程序。
当然你也可以直接使用别人已经编译好的文件
出现下面报错时:
Generic Warning: In G:VTKVTK-8.2.0RenderingiCorelvtkPolyDataMapper.cxx, line 28Error: no override found for vtkPolyDataMapper’.
代码头文件添加
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
属性——–链接器——输入—附加依赖项——添加:opengl32.lib
示例代码:
#include <vtkSmartPointer.h>
#include <vtkSphereSource.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
int main()
{
// 创建一个球体源
vtkSmartPointer<vtkSphereSource> sphereSource = vtkSmartPointer<vtkSphereSource>::New();
sphereSource->SetRadius(1.0);
sphereSource->Update();
// 创建一个 mapper
vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
mapper->SetInputConnection(sphereSource->GetOutputPort());
// 创建一个 actor
vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();
actor->SetMapper(mapper);
// 创建渲染器和渲染窗口
vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();
vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New();
renderWindow->AddRenderer(renderer);
// 创建交互器
vtkSmartPointer<vtkRenderWindowInteractor> interactor = vtkSmartPointer<vtkRenderWindowInteractor>::New();
interactor->SetRenderWindow(renderWindow);
// 将 actor 添加到渲染器中
renderer->AddActor(actor);
// 设置渲染器的背景色为灰色
renderer->SetBackground(0.2, 0.2, 0.2);
// 启动渲染
renderWindow->Render();
// 开始交互
interactor->Start();
return 0;
}
运行效果: