Я изучаю ВТК, читая книгу VTKTextBook.Я пытался выполнить пример Cone .
Когда я его запускаю, у меня странное поведение, которое трудно объяснить словами, но вы можете увидеть его в gif наследующая ссылка: https://imgur.com/lJigYGu
Код, который я использовал, немного отличается от кода примера, но оба они создают одну и ту же проблему.
Это код моегоФайл cone.cpp:
#include <vtkActor.h>
#include <vtkCamera.h>
#include <vtkConeSource.h>
#include <vtkNamedColors.h>
#include <vtkNew.h>
#include <vtkPolyDataMapper.h>
#include <vtkRenderWindow.h>
#include <vtkRenderer.h>
#include <vtkRenderWindowInteractor.h>
int main(int, char* []) {
vtkNew<vtkNamedColors> colors;
vtkNew<vtkConeSource> cone;
cone->SetHeight(3.0);
cone->SetRadius(1.0);
cone->SetResolution(10);
vtkNew<vtkPolyDataMapper> coneMapper;
coneMapper->SetInputConnection(cone->GetOutputPort());
vtkNew<vtkActor> coneActor;
coneActor->SetMapper(coneMapper);
vtkNew<vtkRenderer> ren1;
ren1->AddActor(coneActor);
ren1->SetBackground(
colors->GetColor3d("MidnightBlue").GetData());
vtkNew<vtkRenderWindow> renWin;
renWin->AddRenderer(ren1);
renWin->SetSize(300, 300);
vtkNew<vtkRenderWindowInteractor> interactor;
interactor->SetRenderWindow(renWin);
interactor->Start();
for (auto i = 0; i < 360; ++i) {
// render the image
renWin->Render();
// rotate the active camera by one degree
ren1->GetActiveCamera()->Azimuth(1);
}
return EXIT_SUCCESS;
}
, и это мой CMakeLists.txt:
cmake_minimum_required(VERSION 3.3 FATAL_ERROR)
project(Cone)
set(VTK_USE_CARBON ON)
find_package(VTK COMPONENTS
vtkCommonCore
vtkCommonDataModel
vtkFiltersSources
vtkInteractionStyle
vtkRenderingCore
vtkRenderingFreeType
vtkRenderingOpenGL2 QUIET)
if (NOT VTK_FOUND)
message("Skipping Cone: ${VTK_NOT_FOUND_MESSAGE}")
return ()
endif()
message (STATUS "VTK_VERSION: ${VTK_VERSION}")
if (VTK_VERSION VERSION_LESS "8.90.0")
# old system
include(${VTK_USE_FILE})
add_executable(Cone Cone.cpp)
target_link_libraries(Cone PRIVATE ${VTK_LIBRARIES})
else ()
# include all components
add_executable(Cone Cone.cxx )
target_link_libraries(Cone PRIVATE ${VTK_LIBRARIES})
# vtk_module_autoinit is needed
vtk_module_autoinit(
TARGETS Cone
MODULES ${VTK_LIBRARIES}
)
endif ()
Я уже спрашивал в списке рассылки vtk-users и в vtkforum , но я не получил никакого ответа.
Я пробовал с версией 8.1.2 vtk, установленной с homebrew, и с версией 8.90.0, скомпилированной из источника в ветке masterна github .