vs2019+vtk开发环境搭建,并显示一个圆柱体Cylinder

本文介绍如何使用VS2019和VTK搭建开发环境,并通过示例代码展示如何生成和显示一个圆柱体。文中详细记录了安装步骤、配置过程以及代码实现。

1.安装vs2019 Enterprise,visual assist x,cmake

Microsoft Visual Studio Enterprise 2019

下载地址:

Visual Studio 旧版下载 - 2019、2017、2015

sn:

BF8Y8-GN2QH-T84XB-QVY3B-RC4DF

2.下载vtk
https://www.vtk.org/files/release/9.2/VTK-9.2.6.tar.gz
3.cmake编译配置选中Example,可编译官方例子

先点一次configure初始化之后,选中VTK_BUILD_EXAMPLES再点一次configure;点generate;点open project。 

4.demo 显示一个圆柱体,拿官方的Cube例子修改

4.1 CMakeLists.txt

C:\Users\dell\Desktop\VTK-9.2.6\Examples\DataManipulation\Cxx\CMakeLists.txt

cmake_minimum_required(VERSION 3.8...3.12 FATAL_ERROR)
project(DataManipulation)
 
find_package(VTK 
COMPONENTS 
  CommonColor
  CommonCore
  CommonDataModel
  InteractionStyle
  RenderingContextOpenGL2
  RenderingCore
  RenderingFreeType
  RenderingGL2PSOpenGL2
  RenderingOpenGL2
)
 
if (NOT VTK_FOUND)
  message("Skipping example: ${VTK_NOT_FOUND_MESSAGE}")
  return ()
endif ()
 
add_executable(Arrays MACOSX_BUNDLE Arrays.cxx)
add_executable(Cube MACOSX_BUNDLE Cube.cxx)
add_executable(SGrid MACOSX_BUNDLE SGrid.cxx)
add_executable(RGrid MACOSX_BUNDLE RGrid.cxx)
 
target_link_libraries(Arrays PRIVATE ${VTK_LIBRARIES})
target_link_libraries(Cube PRIVATE ${VTK_LIBRARIES})
target_link_libraries(SGrid PRIVATE ${VTK_LIBRARIES})
target_link_libraries(RGrid PRIVATE ${VTK_LIBRARIES})
 
vtk_module_autoinit(
  TARGETS Arrays
          Cube
          SGrid
          RGrid
  MODULES ${VTK_LIBRARIES})

4.2圆柱体cxx代码路径

C:\Users\dell\Desktop\VTK-9.2.6\Examples\DataManipulation\Cxx\Cube.cxx

#include <vtkActor.h>
#include <vtkCylinderSource.h>
#include <vtkInteractorStyleTrackballCamera.h>
#include <vtkPolyDataMapper.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkRenderer.h>
#include <vtkSmartPointer.h>
int main()
{
  // cylinder圆柱体
  vtkSmartPointer<vtkCylinderSource> cylinder =
    vtkSmartPointer<vtkCylinderSource>::New(); // cylinder圆柱
  cylinder->SetHeight(3.0);
  cylinder->SetRadius(1.0);
  cylinder->SetResolution(10);
  // polyDataMapper
  vtkSmartPointer<vtkPolyDataMapper> cylinderMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
  cylinderMapper->SetInputConnection(cylinder->GetOutputPort());
  // actor
  vtkSmartPointer<vtkActor> cylinderActor = vtkSmartPointer<vtkActor>::New();
  cylinderActor->SetMapper(cylinderMapper);
  // renderer
  vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();
  renderer->AddActor(cylinderActor);
  renderer->SetBackground(0.1, 0.2, 0.4);
  // renderWindow
  vtkSmartPointer<vtkRenderWindow> renWin = vtkSmartPointer<vtkRenderWindow>::New();
  renWin->AddRenderer(renderer);
  renWin->SetSize(300, 300);
  // renderWindowInteractor
  vtkSmartPointer<vtkRenderWindowInteractor> renWinInteractor =
    vtkSmartPointer<vtkRenderWindowInteractor>::New();
  renWinInteractor->SetRenderWindow(renWin);
  // camera
  vtkSmartPointer<vtkInteractorStyleTrackballCamera> style =
    vtkSmartPointer<vtkInteractorStyleTrackballCamera>::New();
  renWinInteractor->SetInteractorStyle(style);
  renWinInteractor->Initialize();
  renWinInteractor->Start();
  return 0;
}

4.3 cmake重新点击Configure、Generate、Open Project、Vs2019编译运行Cube

*附:

visual assist x试用期到期之后重置状态继续试用:

reset-vassistx.bat 管理员权限运行

@echo off
set tempfile="%temp%\1489AFE4.TMP"
set regkey=HKEY_CURRENT_USER\SOFTWARE\Licenses
set has_error=0

tasklist | find /I "devenv.exe" > NUL
if %errorlevel% == 0 (
	echo Please close Visual Studio and try again.
	exit /B 1
)

echo.

echo Resetting Visual Assist X trial period
echo Deleting registry key %regkey% ...
reg delete %regkey% /f
if %errorlevel% == 1 (
	echo Registry key was not deleted.
	set has_error=1
)
echo.

echo Deleting temporary file %tempfile% ...
del %tempfile%>NUL

echo.

if %has_error% == 0 (
	echo Done. Visual Assist X should have forgotten about your trial period now.
) else (
	echo Done. However, maybe not everything worked out right.
)

exit /B %has_error%

问题:

1.为什么不使用vs2022?vs2022过于先进支持的visual assist x不好用。vs2022不支持扩展-管理扩展方式安装visual assist x;vs2022编辑代码时visual assist x不能自动生成代码。

2.为什么不用vs2019以前版本?因为支持的其他第三方开源库少或者是低版本,整个环境搭建有问题。

就这样,你看到这篇日志节省一点开发环境搭建时间,过低版本其他生态需要的开源库也必须是低版本甚至无法使用,追求高版本浪费时间不容易搭建。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值