level 4
白兔子水瓶
楼主
我缩放的时候为了使整体缩放,采用render中GetActiveCamera()->Zoom(1.5)的方式,可以将整个Render中的所有Actor缩放,但是如果我更改了一个Actor,每次需要重新调用Zoom,这样就造成了Zoom的多次调用,然后就出现缩放不再管用的问题。下面是例子代码:
void VtkCameraZoom()
{
vtkSmartPointer<vtkJPEGReader> reader =
vtkSmartPointer<vtkJPEGReader>::New();
reader->SetFileName ( "..\\data\\lena-gray.jpg" );
reader->Update();
vtkSmartPointer<vtkImageActor> originalActor =
vtkSmartPointer<vtkImageActor>::New();
originalActor->SetInputData(reader->GetOutput());
vtkSmartPointer<vtkRenderer> originalRenderer =
vtkSmartPointer<vtkRenderer>::New();
originalRenderer->AddActor(originalActor);
vtkSmartPointer<vtkRenderWindow> renderWindow =
vtkSmartPointer<vtkRenderWindow>::New();
renderWindow->AddRenderer(originalRenderer);
renderWindow->Render();
vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =
vtkSmartPointer<vtkRenderWindowInteractor>::New();
renderWindowInteractor->SetRenderWindow(renderWindow);
for(int nIndex = 0; nIndex < 100; nIndex++)
{
originalRenderer->ResetCamera();
originalRenderer->GetActiveCamera()->Zoom(1.5);
renderWindow->Render();
}
renderWindowInteractor->Initialize();
renderWindowInteractor->Start();
}
2016年08月18日 02点08分
1
void VtkCameraZoom()
{
vtkSmartPointer<vtkJPEGReader> reader =
vtkSmartPointer<vtkJPEGReader>::New();
reader->SetFileName ( "..\\data\\lena-gray.jpg" );
reader->Update();
vtkSmartPointer<vtkImageActor> originalActor =
vtkSmartPointer<vtkImageActor>::New();
originalActor->SetInputData(reader->GetOutput());
vtkSmartPointer<vtkRenderer> originalRenderer =
vtkSmartPointer<vtkRenderer>::New();
originalRenderer->AddActor(originalActor);
vtkSmartPointer<vtkRenderWindow> renderWindow =
vtkSmartPointer<vtkRenderWindow>::New();
renderWindow->AddRenderer(originalRenderer);
renderWindow->Render();
vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =
vtkSmartPointer<vtkRenderWindowInteractor>::New();
renderWindowInteractor->SetRenderWindow(renderWindow);
for(int nIndex = 0; nIndex < 100; nIndex++)
{
originalRenderer->ResetCamera();
originalRenderer->GetActiveCamera()->Zoom(1.5);
renderWindow->Render();
}
renderWindowInteractor->Initialize();
renderWindowInteractor->Start();
}