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以前版本?因为支持的其他第三方开源库少或者是低版本,整个环境搭建有问题。
就这样,你看到这篇日志节省一点开发环境搭建时间,过低版本其他生态需要的开源库也必须是低版本甚至无法使用,追求高版本浪费时间不容易搭建。
本文介绍如何使用VS2019和VTK搭建开发环境,并通过示例代码展示如何生成和显示一个圆柱体。文中详细记录了安装步骤、配置过程以及代码实现。

2万+

被折叠的 条评论
为什么被折叠?



