_用clion显示几何图形,却多行报错:error C2065: “cylinder”: 未声明的标识符_
设置界面:
报错界面:
main.cpp:
#include <vtkSmartPointer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderer.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkInteractorStyleTrackballCamera.h>
#include <vtkCylinderSource.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
int main()
{
//生成圆柱体
auto cylinder = vtkSmartPointer<vtkCylinderSource>::New();
cylinder->SetHeight(3.0);//柱体高
cylinder->SetRadius(1.0);//主题横截面半径
cylinder->SetResolution(10);//柱体横截面多边形的边数
//渲染多边形几何数据,将输入的数据转换成几何图元(点、线、多边形)进行渲染
auto cylinderMapper =vtkSmartPointer<vtkPolyDataMapper>::New();
cylinderMapper->SetInputConnection(cylinder->GetOutputPort());//输入数据
//将渲染的数据转化成vtkProp的形式
auto cylinderActor = vtkSmartPointer<vtkActor>::New();
cylinderActor->SetMapper(cylinderMapper);//输入几何图元
//管理场景的渲染过程,组成场景的对象包括Prop,照相机(vtkCamera)和光照(vtkLight)
auto renderer = vtkSmartPointer<vtkRenderer>::New();
renderer->AddActor(cylinderActor);//加入vtkProp类型的对象
renderer->SetBackground(0.1,0.2,0.4);//设置背景颜色,RGB
//将操作系统与VTK渲染引擎连接在一起
auto renWin = vtkSmartPointer<vtkRenderWindow>::New();
renWin->AddRenderer(renderer);//加入Renderer对象
renWin->SetSize(300,300);//设置窗口大小
renWin->SetWindowName("Show");//设置窗口的名称
//提供平台独立的响应鼠标、键盘和时钟事件交互机制
auto iren = vtkSmartPointer<vtkRenderWindowInteractor>::New();
iren->SetRenderWindow(renWin);//设置渲染的窗口
//交互器样式
auto style =vtkSmartPointer<vtkInteractorStyleTrackballCamera>::New();
iren->SetInteractorStyle(style);//设置交互器样式
iren->Initialize();//初始化窗口处理事件
iren->Start();//启动窗口
return 0;
}
cmakelist.txt:
#设置支持cmake的最低版本
cmake_minimum_required(VERSION 3.25)
project(untitled)
#设置c++的版本
set(CMAKE_CXX_STANDARD 17)
#REQUIRED:如果没有找到包,就会弹出错误信息
find_package(VTK 9.2.2 REQUIRED)
#如果找不到包,打印错误信息
if (NOT VTK_FOUND)
message(FATAL_ERROR "Cube1: Unable to find the VTK build
folder.")
endif()
#构建可执行程序
add_executable(untitled main.cpp)
#链接资源
target_link_libraries(untitled PRIVATE ${VTK_LIBRARIES}
#[[ vtkFiltersCore
vtkCylinderSource
vtkPolyDataMapper
vtkActor
vtkRenderer
vtkRenderWindow
vtkRenderWindowInteractor
vtkRenderInteractorStyleTrackballCamera]]
)
#vtk重建窗口必须加上
vtk_module_autoinit(
TARGETS untitled
MODULES ${VTK_LIBRARIES}
)