
VisualStudio中VTK不可视化问题
在visual studio上使用VTK,想画个球可视化的时候,发现无法进行可视化,代码也没有报错,就好像可视化被跳过一样了。后来找到解决方法:增加下面这一段。
·
在visual studio上使用VTK,想画个球可视化的时候,发现无法进行可视化,代码也没有报错,就好像可视化被跳过一样了
后来找到解决方法:增加下面这一段
#include "vtkAutoInit.h"
VTK_MODULE_INIT(vtkRenderingOpenGL2)
VTK_MODULE_INIT(vtkInteractionStyle)
VTK_MODULE_INIT(vtkRenderingFreeType)
完整代码:
#include <vtkActor.h>
#include <vtkArrowSource.h>
#include <vtkNamedColors.h>
#include <vtkNew.h>
#include <vtkPolyDataMapper.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkRenderer.h>
#include <vtkSmartPointer.h>
#include <vtkSphereSource.h>
#include "vtkAutoInit.h"
VTK_MODULE_INIT(vtkRenderingOpenGL2)
VTK_MODULE_INIT(vtkInteractionStyle)
VTK_MODULE_INIT(vtkRenderingFreeType)
int main(int argc, char* argv[])
{
// 创建一个球体源
vtkSmartPointer<vtkSphereSource> sphereSource = vtkSmartPointer<vtkSphereSource>::New();
sphereSource->SetRadius(5.0); // 设置球的半径
sphereSource->SetPhiResolution(50); // 设置纬度分辨率
sphereSource->SetThetaResolution(50); // 设置经度分辨率
// 创建一个映射器,负责将球体数据转换为可视化数据
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();
renderer->AddActor(actor); // 将演员添加到渲染器中
// 创建一个渲染窗口
vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New();
renderWindow->AddRenderer(renderer);
// 创建一个渲染窗口交互器,用于交互
vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New();
renderWindowInteractor->SetRenderWindow(renderWindow);
// 启动可视化
renderWindow->Render();
renderWindowInteractor->Start();
return 0;
}
更多推荐
所有评论(0)