当前位置: 首页 > wzjs >正文

海淀团队组建网站重庆seo俱乐部

海淀团队组建网站,重庆seo俱乐部,襄樊北京网站建设,wordpress多条件文章目录 1 概述2 环境3 下载VTK源码4 ubuntu编译VTK5 windows编译VTK6 Qt使用VTK(CMake)7 Qt使用VTK(QMake)8 问题记录9 相关链接 更多精彩内容👉内容导航 👈👉VTK开发 👈 1 概述 V…

文章目录

    • 1 概述
    • 2 环境
    • 3 下载VTK源码
    • 4 ubuntu编译VTK
    • 5 windows编译VTK
    • 6 Qt使用VTK(CMake)
    • 7 Qt使用VTK(QMake)
    • 8 问题记录
    • 9 相关链接


更多精彩内容
👉内容导航 👈
👉VTK开发 👈

1 概述

VTK(Visualization Toolkit,可视化工具包)是一个开源的软件系统,主要用于三维计算机图形学的显示和处理。它提供了一个广泛的数据结构和算法集合,用于处理各种类型的数据,并将其可视化为图形图像。VTK可以处理图像、结构化和非结构化数据,并提供多种可视化技术,包括但不限于体绘制、表面绘制、体积渲染、流线绘制等。

VTK的主要特点包括:

  1. 跨平台性:VTK可以在多种操作系统上运行,包括Windows、Mac OS X和Linux等。
  2. 扩展性:VTK的架构设计使得它非常容易扩展。开发者可以根据需要添加新的数据处理和可视化模块。
  3. 强大的数据处理能力:VTK不仅支持基本的数据处理操作,还提供了高级的数据分析工具,如滤波器、几何操作等。
  4. 丰富的可视化功能:VTK支持多种可视化技术,能够生成各种高质量的图形图像。
  5. 与其他软件集成:VTK可以通过多种方式与其他软件集成,比如通过Python、C++等编程语言调用VTK的库函数来实现数据处理和可视化。
  • windows下在使用vs2022编译时一直报错,无法编译,改为使用vs2017编译就可以;
  • 使用vs2022编译时部分dll无法生成,并且安装后没有lib/cmake文件夹。
  • 使用cmake3.32/25版本都会有一些警告信息,改为使用cmake3.22没有。

2 环境

环境说明
系统ubuntu22.04、windows11
cmake3.22、3.25
Qt5.14.2
编译器g++11.4、msvc2017
VTK9.4.1

3 下载VTK源码

  • 进入下载 |VTK地址下载;
  • 或者使用git clone https://github.com/Kitware/VTK.git命令下载。

4 ubuntu编译VTK

  • 使用sudo apt install cmake-gui命令安装cmake;

  • 安装完g++和Qt;

  • 使用cmake-gui打开VTK文件夹中的CMakelists.txt文件夹;

  • 设置CMAKE_INSTALL_PREFIX安装路径;

  • 将VTK_GROUP_ENABLE_QT设置为YES;

  • 将QT5_DIR设置路径/opt/Qt5.14.2/5.14.2/gcc_64/lib/cmake/Qt5,如果使用的是QT6就设置的QT6_DIR;

  • 将VTK_QT_VERSION设置使用的Qt版本;

  • 然后点击【Configure】【Generate】;

  • 打开终端,进入VTK/build文件夹中,执行make -j8开始编译;

  • 编译完成后执行sudo make install安装。

  • 编译完成后安装在/opt/VTK路径下,在VTK/lib文件夹中除了有动态库还有cmake文件夹;

  • 使用Qt打开VTK/Examples/GUI/Qt路径下的工程中的CMakeLists.txt文件;

  • 然后设置VTK路径,如下所示;

    在这里插入图片描述

  • 设置完成之后编译运行;

    在这里插入图片描述

5 windows编译VTK

注意:这里我使用vs2022编译一直无法成功,不知道是环境问题还是什么,最后使用的是VS2017编译成功;

  • 打开CMake3.22;

  • 将VTK文件夹中CMakeLists.txt文件拖进CMake中;

    在这里插入图片描述

  • 点击【Configure】,选择VS2017-64编译器,点击【Finish】;

    在这里插入图片描述

  • 搜索CMAKE_INSTALL_PREFIX项,设置编译后的安装路径,不要放在C盘,C盘需要使用管理员权限;

    在这里插入图片描述

  • 搜索QT,将下列几项改为YES

    在这里插入图片描述

  • 搜索/INCREMENTAL,将/INCREMENTAL改为/INCREMENTAL:NO,否则在vs2017中编译会失败;

    在这里插入图片描述

    改为:

    在这里插入图片描述

  • 然后再点击【Configure】;

  • VTK_QT_VERSION设置为Qt5,如果使用的是Qt6则设置为6;

    在这里插入图片描述

  • 然后再点击【Configure】;

  • 这时候会出现错误弹窗,这是找不到Qt5的cmake路径;

    在这里插入图片描述

  • 如下图所示,设置QT5_DIR路径;

    在这里插入图片描述

  • 然后点击【Configure】【Generate】;

  • 就会在VTK/build文件夹中生成VTK.sln文件,如果只安装了一个版本的VS,之间点击【Open Project】就可以打开;

  • 如果安装了多个版本的VS,则进入VTK/build文件夹,鼠标选中VTK.sln,选择使用vs2017打开;

    在这里插入图片描述

  • 选择【Debug】模式(编译完成后再选择【Release】模式),选择【ALL_BUILD】,生成;

    在这里插入图片描述

  • 编译完成后,没有错误信息,选择【INSTALL】,生成;

    在这里插入图片描述

  • 安装完成后就在设置的E:/VTK路径下如下图所示;

    在这里插入图片描述

    在这里插入图片描述

6 Qt使用VTK(CMake)

  • 创建一个Qt工程,构建工具使用CMake;

  • 在CMakeLists.txt文件中添加下列两端代码,引入CMake;

    find_package(VTKCOMPONENTSCommonCoreGUISupportQtInfovisCoreRenderingFreeTypeViewsQt)
    if (NOT VTK_FOUND)message("Skipping example: ${VTK_NOT_FOUND_MESSAGE}")return ()
    endif ()target_link_libraries(untitled10PRIVATE${VTK_LIBRARIES}"Qt${VTK_QT_VERSION}::Gui""Qt${VTK_QT_VERSION}::Widgets")
    

    在这里插入图片描述

  • 然后编译,如果VTK没添加进环境变量,CMake编译时是找不到VTK路径的;

  • 如下图所示,设置VTK_DIR路径;

    在这里插入图片描述

  • 然后进入UI文件,添加一个OpenGLWidget控件,提升为QVTKRenderWidget或者QVTKOpenGLNativeWidget都可以;

    ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-

  • 进入main.cpp添加下列代码,否则VTK不能正常显示;

    // 统一 Qt 和 VTK 的 OpenGL 上下文配置,解决因 OpenGL 参数不匹配导致的渲染问题。
    // 通过 QVTKOpenGLNativeWidget::defaultFormat() 获取 VTK 推荐的 OpenGL 配置
    // 用 QSurfaceFormat::setDefaultFormat() 将其设为 Qt 全局默认格式
    QSurfaceFormat::setDefaultFormat(QVTKOpenGLNativeWidget::defaultFormat());
    

    在这里插入图片描述

  • 进入widget.cpp文件,添加下列代码;

    #include "widget.h"
    #include "./ui_widget.h"
    #include "QVTKOpenGLNativeWidget.h"
    #include "vtkConeSource.h"
    #include "vtkPolyDataMapper.h"
    #include <vtkActor.h>
    #include <vtkRenderWindow.h>
    #include <vtkRenderer.h>Widget::Widget(QWidget* parent): QWidget(parent), ui(new Ui::Widget)
    {ui->setupUi(this);
    }Widget::~Widget()
    {delete ui;
    }void Widget::on_pushButton_clicked()
    {vtkNew<vtkConeSource> cone;vtkNew<vtkPolyDataMapper> mapper;vtkNew<vtkActor> actor;vtkNew<vtkRenderer> renderer;mapper->SetInputConnection(cone->GetOutputPort());actor->SetMapper(mapper);renderer->AddActor(actor);renderer->SetBackground(0.2, 0.3, 0.4);ui->openGLWidget->renderWindow()->AddRenderer(renderer);
    }
  • 编译运行后效果如下所示;

    在这里插入图片描述

7 Qt使用VTK(QMake)

  • 创建一个Qmake工程;

  • 打开pro文件,添加下列代码,链接VTK库,下面代码中有3中链接库的方法,任选一种就可以(推荐3)

    #----------------------------------------------------------------方法1:手动链接每一个库文件,比较复杂
    # win32:CONFIG(release, debug|release): LIBS += -LE:/lib/VTK/lib/ -lvtkCommonCore-9.4 -lvtkGUISupportQt-9.4 -lvtkInfovisCore-9.4 -lvtkRenderingFreeType-9.4 -lvtkViewsQt-9.4
    # else:win32:CONFIG(debug, debug|release): LIBS += -LE:/lib/VTK/lib/ -lvtkCommonCore-9.4d -lvtkGUISupportQt-9.4d -lvtkInfovisCore-9.4d -lvtkRenderingFreeType-9.4d -lvtkViewsQt-9.4d#----------------------------------------------------------------方法2:自动链接所有库文件
    # 获取所有库文件名(自动处理路径)
    CONFIG(release, debug|release):{LIB_FILES = $$files(E:/lib/VTK/lib/*-9.4.lib)
    }else:CONFIG(debug, debug|release):{LIB_FILES = $$files(E:/lib/VTK/lib/*-9.4d.lib)
    }
    LIBS += $$join(LIB_FILES, " -L", "-L")  # 添加库路径
    LIBS += $$LIB_FILES  # 直接链接库文件#----------------------------------------------------------------方法3:自动链接所有库文件(标准链接方法)
    LIB_PATH = E:/lib/VTK/lib/  # 指定VTK库路径
    CONFIG(release, debug|release):{LIB_FILES = $$files($$LIB_PATH/*-9.4.lib)   # 自动获取路径下所有-9.4.lib结尾的库文件路径
    }else:CONFIG(debug, debug|release):{LIB_FILES = $$files($$LIB_PATH/*-9.4d.lib)
    }
    LIBS += -L$$LIB_PATH   # 添加链接路径
    for(lib_file, LIB_FILES) {lib_Name = $$basename(lib_file)      # 获取文件名E:/lib/VTK/lib/vtkIOInfovis-9.4d.lib  --> vtkIOInfovis-9.4d.libLIBS += -l$$section(lib_Name, ., 0, 1) # 去除后缀 vtkIOInfovis-9.4d.lib  --> vtkIOInfovis-9.4d,并链接库
    }
    #----------------------------------------------------------------# 添加头文件
    INCLUDEPATH += E:/lib/VTK/include/vtk-9.4
    DEPENDPATH += E:/lib/VTK/include/vtk-9.4

8 问题记录

  • cmake构建出现X11::Xcursor not found; custom cursors will be ignored.

    sudo apt-get install libxcursor-dev
    
  • 错误信息:

    CMake Error at D:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5Sql/Qt5SqlConfig. cmake:15 (message):
    The imported target "Qt5::Sql" references the file"D:/Qt/Qt5.14.2/5.14.2/mingw73_64/plugins/sqldrivers/qsqlmysql.dll"
    

    需要编译安装mysql插件才可以解决。

  • 错误信息:vs中编译安装时出现。

    严重性	代码	说明	项目	文件	行	禁止显示状态
    错误	MSB3073	命令“setlocal
    C:\Users\MHF\Downloads\cmake-3.22.4-windows-x86_64\bin\cmake.exe -DBUILD_TYPE=Release -P cmake_install.cmake
    if %errorlevel% neq 0 goto :cmEnd
    :cmEnd
    endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
    :cmErrorLevel
    exit /b %1
    :cmDone
    if %errorlevel% neq 0 goto :VCEnd
    :VCEnd”已退出,代码为 1。	 INSTALL	D:\VS\2017\Common7\IDE\VC\VCTargets\Microsoft.CppCommon. targets	138
    

    安装路径在C盘,需要修改安装路径或者使用管理员打开vs。

  • 错误信息:

    vs2017: fatal error LNK1210: 已超过内部 ILK 大小限制
    

    vs中设置使用链接时使用 /INCREMENTAL:NO

    或者在CMake中将/INCREMENTAL改为/INCREMENTAL:NO。

    在这里插入图片描述

9 相关链接

  • VTK / VTK · GitLab
  • Releases · Kitware/VTK
  • 下载 |VTK
  • 构建 - VTK documentation
  • 构建设置 - VTK documentation
  • VTK:VTK 9.4.20250308 文档
  • VTK示例
http://www.dtcms.com/wzjs/339976.html

相关文章:

  • 网站平台建设属于什么采购全网关键词云怎么查
  • 广州手机网站建设公司哪家好西安整站优化
  • 网站流量一直下降网络小说排行榜
  • 建设银行个人网上银行网页360优化大师官方下载
  • 风中有朵雨做的云电影网站网站搜索引擎
  • dw做网页教程seo外链友情链接
  • 可以自己做网站优化吗什么软件引流客源最快
  • 深圳市公司网站建设价格seo每天一贴
  • 河北省城乡建设培训网官方网站新闻头条最新
  • 找阿里巴巴购买做网站的软件哪个搜索引擎能搜敏感内容
  • 线上网站设计软文案例400字
  • 株洲网站建设泉州全网营销优化
  • 高薪聘请网站开发工程师最近新闻小学生摘抄
  • 做场景秀的网站sem代运营推广公司
  • 常州市钟楼区建设局网站肇庆网站制作软件
  • 给公司做网页收多少钱北京搜索引擎优化经理
  • 优化网站价格风云榜
  • 个人怎样建网站赚钱免费网站建站页面
  • 中小企业网站建设价格怎样才能注册自己的网站
  • 营销比较成功的品牌上海百度整站优化服务
  • 前端 模板 网站网络营销的特点是什么
  • 如何判断一个网站的关键词是否难做星沙网站优化seo
  • 做视频网站把视频放在哪里百度统计怎么使用
  • 专业医院网站建设域名注册网
  • 能做SEO优化的网站建设网络营销软文案例
  • 表白网站制作软件steam交易链接怎么获取
  • 免费网站入口2021百度网络科技有限公司
  • 如何分析他人网站流量个人免费建站系统
  • 广州 网站 建设头条广告入口
  • 银行网站建设重庆seo网站哪家好