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

(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


http://www.xdnf.cn/news/893.html

相关文章:

  • C++ vector 核心功能解析与实现
  • Spring-AOP分析
  • Uniapp:view容器(容器布局)
  • IDEA内存配置失效(已解决)
  • unity3d实现物体闪烁
  • unity之协程
  • [Python] 入门核心笔记
  • 超大文件处理——大文件断点续传源码-下载大文件卡死服务器—星辰大文化术——未来之窗超算中心
  • 徐州服务器租用:虚拟主机的应用场景
  • UML 状态图:陪伴机器人系统示例
  • 【图问答】DeepSeek-VL 论文阅读笔记
  • 可编辑23页PPT | 数据中台建设四步方法论:“采、存、通、用”
  • AI之pdf解析:Tesseract、PaddleOCR、RapidPaddle(可能为 RapidOCR)和 plumberpdf 的对比分析及使用建议
  • WPF的发展历程
  • Go语言中的Context
  • Java中如何创建操作线程
  • Cad c# 射线法判断点在多边形内外
  • JVM内存模型与垃圾回收
  • 蚂蚁全媒体总编刘鑫炜再添新职,出任共工新闻社新媒体研究院院长
  • 《FDTD Solutions仿真全面教程:超构表面与光束操控的前沿探索》
  • vue项目通过GetCapabilities获取wms服务元数据信息并在openlayers进行叠加显示
  • prometheus-operator部署服务监控其他节点mysql服务
  • 重构・协同・共生:传统代理渠道数字化融合全链路解决方案
  • 如何远程访问家中服务器-FRP内网穿透详细
  • 获取电脑信息(登录电脑的进程、C盘文件信息、浏览器信息、IP)
  • Windows网络及服务:制作系统盘
  • idea30天使用无限使用
  • uni-app 状态管理深度解析:Vuex 与全局方案实战指南
  • Android audio_policy_configuration.xml加载流程
  • 云原生--基础篇-2--云计算概述(云计算是云原生的基础,IaaS、PaaS和SaaS服务模型)