VTK(一)—VTK简单示例:
参考文献:VTK图形图像开发进阶–张晓东、罗火灵
提取码:kclz
1. CMakeLists.txt:
cmake_minimum_required(VERSION 2.8)
project(vtk_test)
IF(CMAKE_SYSTEM_NAME MATCHES "Windows")
set(CMAKE_C_COMPILER "clang")
link_libraries(ws2_32 wsock32)
ELSEIF(CMAKE_SYSTEM_NAME MATCHES "Linux")
set(CMAKE_C_COMPILER "clang") #gcc
set(CMAKE_CXX_COMPILER "clang++") #g++
set(CMAKE_CXX_FLAGS "-std=c++11 -O3 -Wall")
ENDIF()
set(CMAKE_BUILD_TYPE "Release")
find_package(VTK REQUIRED)
include(${VTK_USE_FILE})
set(CMAKE_INCLUDE_CURRENT_DIR ON)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR})
add_executable(${PROJECT_NAME} main.cpp)
link_directories(${VTK_LIBRARY_DIRS})
#target_link_libraries(${PROJECT_NAME} ${VTK_LIBRARIES})
message(STATUS "the VTK is : ${VTK_INCLUDE_DIRS}")
2.基于C++源码
生成圆柱体:
#include <iostream>
#include <vtkSmartPointer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderer.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkInteractorStyleTrackballCamera.h>
#include <vtkCylinderSource.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
using namespace std;
int main()
{
vtkSmartPointer<vtkCylinderSource> cylinder = vtkSmartPointer<vtkCylinderSource>::New();
cylinder->SetHeight(3.0);
cylinder->SetRadius(1.0);
cylinder->SetResolution(300);
vtkSmartPointer<vtkPolyDataMapper> cylinderMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
cylinderMapper->SetInputConnection(cylinder->GetOutputPort());
vtkSmartPointer<vtkActor> cylinderActor = vtkSmartPointer<vtkActor>::New();
cylinderActor->SetMapper(cylinderMapper);
vtkSmartPointer<vtkRenderer> ren = vtkSmartPointer<vtkRenderer>::New(); //----设置绘制者(绘制对象指针)
ren->AddActor(cylinderActor);
ren->SetBackground(0.1,0.2,0.4);
vtkSmartPointer<vtkRenderWindow> renWin = vtkSmartPointer<vtkRenderWindow>::New(); //----设置绘制窗口
renWin->AddRenderer(ren);
renWin->SetSize(800,800);
vtkSmartPointer<vtkRenderWindowInteractor> iren = vtkSmartPointer<vtkRenderWindowInteractor>::New(); //----设置绘制交互操作窗口的
iren->SetRenderWindow(renWin);
vtkSmartPointer<vtkInteractorStyleTrackballCamera> style = vtkSmartPointer<vtkInteractorStyleTrackballCamera>::New(); //----摄像机
iren->SetInteractorStyle(style);
iren->Initialize();
iren->Start();
return 0;
}