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

(14)VTK C++开发示例 --- 将点投影到平面上

文章目录

    • 1. 概述
    • 2. CMake链接VTK
    • 3. main.cpp文件
    • 4. 演示效果


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

1. 概述

计算一个点在一个平面上的投影。

vtkPlane 是 VTK(Visualization Toolkit)库中的一个类,用于表示和操作三维空间中的平面。它继承自 vtkImplicitFunction 抽象类,提供了各种平面计算方法。这些包括将点投影到平面上、计算平面方程式和返回平面法线。

模块:CommonDataModel

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

2. CMake链接VTK

cmake_minimum_required(VERSION 3.20 FATAL_ERROR) # 设置CMake最低版本
project(vtk2) # 设置项目名称
# 查找VTK库
find_package(VTK COMPONENTS
CommonCore
CommonDataModel
) 
if(NOT VTK_FOUND)
message("VTK not found")
return()
endif()add_executable(vtk2 main.cpp) # 添加可执行文件target_link_libraries(vtk2 PRIVATE ${VTK_LIBRARIES}) # 链接VTK库
vtk_module_autoinit(TARGETS vtk2 MODULES ${VTK_LIBRARIES}) # 初始化VTK模块

3. main.cpp文件

/********************************************************************************
* 文件名:   main.cpp
* 创建时间: 2025-03-13 20:56:32
* 开发者:   MHF
* 邮箱:     1603291350@qq.com
* 功能:     
*********************************************************************************/
#include<iostream>
#include<vtkPlane.h>
#include<vtkNew.h>
using namespace std;int main()
{vtkNew<vtkPlane> plane; //创建一个平面plane->SetOrigin(0, 0, 0); //设置平面的原点plane->SetNormal(0, 0, 1); //设置平面的法向量double p[3] = {23.1, 54.6, 9.2}; //定义一个点double origin[3] = {0, 0, 0}; //定义原点double normal[3] = {0, 0, 1}; //定义法向量double projected[3]; // 定义投影点plane->ProjectPoint(p, origin, normal, projected); //计算点p在平面上的投影点cout << "投影点坐标为:" << projected[0] << ", " << projected[1] << ", " << projected[2] << endl; //输出投影点的坐标return 0;
}

4. 演示效果

PS E:\Code\C++\vtk1\build\Debug> ."E:/Code/C++/vtk1/build/Debug/vtk2.exe"
投影点坐标为:23.1, 54.6, 0


相关文章:

  • 中通 Redis 集群从 VM 迁移至 PVE:技术差异、PVE 优劣势及应用场景深度解析
  • 【GIT】为什么要变基下拉,变基下拉失败,提示没有暂存如何解决?
  • 使用QEMU(8.2.10)调试ARM64 Linux内核6.6.30
  • 【STM32单片机】#10.5 串口数据包
  • 50道SQL经典练习题
  • 如何通过API获取淘宝评论?实战讲解
  • JVM面试题学习
  • JumpServer多用户VNC桌面配置指南:实现多端口远程访问
  • 互联网大厂Java面试:Spring Cloud与微服务的奇妙之旅
  • Canvas教程002—canvas上下文对象与浏览器支持
  • 字符串拼接问题的最佳解决方案
  • 12.QT-Combo Box|Spin Box|模拟点餐|从文件中加载选项|调整点餐份数(C++)
  • Java学习手册:HTTP 协议基础知识
  • SQL Server基础
  • 240421 leetcode exercises
  • 分数线降低,25西电马克思主义学院(考研录取情况)
  • leetcode day 35 01背包问题 416+1049
  • 智能安全用电系统预防电气线路老化、线路或设备绝缘故障
  • 开箱即用:一款带世界时钟简约好用在线时间戳转换工具源码
  • 【PCB绘制】信号完整性准则
  • 规模再创新高,超百款新车首发!上海车展明日开幕
  • 商务部:服务业扩大开放试点任务多数来源于经营主体实际需要
  • 史蒂夫·麦奎因透露罹患前列腺癌,呼吁同胞莫受困于男性气概
  • 特朗普亲自介入美日关税谈判:以势压人还是给对手“送助攻”
  • 一年一CT,十年进ICU?关于CT检查致癌的真相
  • 视觉周刊|第五届中国国际消费品博览会展现全球合作新格局