VTK 测量类Widget的应用 与 vtkDistanceWidget 3D测试 问题

2023-11-02

  • vtkDistanceWidget:用于在二维平面上测量两点之间的距离。
  • vtkAngleWidget:用于在平面的角度测量。

AngleWidget

感觉这都是 2D控件

 

#include <vtkActor.h>
#include <vtkAngleWidget.h>
#include <vtkNamedColors.h>
#include <vtkNew.h>
#include <vtkPolyData.h>
#include <vtkPolyDataMapper.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkRenderer.h>
#include <vtkSphereSource.h>

int main(int, char*[])
{
  vtkNew<vtkNamedColors> colors;

  // A renderer and render window
  vtkNew<vtkRenderer> renderer;
  vtkNew<vtkRenderWindow> renderWindow;
  renderWindow->AddRenderer(renderer);
  renderWindow->SetWindowName("AngleWidget");

  // An interactor
  vtkNew<vtkRenderWindowInteractor> renderWindowInteractor;
  renderWindowInteractor->SetRenderWindow(renderWindow);

  vtkNew<vtkAngleWidget> angleWidget;
  angleWidget->SetInteractor(renderWindowInteractor);
  angleWidget->CreateDefaultRepresentation();

  // Render
  renderer->SetBackground(colors->GetColor3d("MidnightBlue").GetData());
  renderWindow->Render();
  renderWindowInteractor->Initialize();
  renderWindow->Render();
  angleWidget->On();
  renderWindowInteractor->Start();

  return EXIT_SUCCESS;
}

 vtkDistanceWidget

vtkDistanceWidget 3D测试 不能真正的落在 3D模型上,这个问题挺意外;感觉可以修改源码,但时间有限,暂时没有空看;

这个是vtkDistanceWidget

vDistanceWidget

明显可以看到它的点不能落到 模型上;理论上这个修改源码可以实现;

Code:

vtkDistanceWidget* distanceWidget = vtkDistanceWidget::New();
distanceWidget->SetInteractor(m_renderWindows[i]->GetInteractor());
vtkDistanceRepresentation3D* representation = vtkDistanceRepresentation3D::New();
distanceWidget->SetRepresentation(representation);
distanceWidget->SetPriority(0.9);
static_cast<vtkDistanceRepresentation*> (distanceWidget->GetRepresentation())->SetLabelFormat("%-#6.3g px");
distanceWidget->ManagesCursorOn();
distanceWidget->On();

使用 vtkLineWidget 实现

vtkDistanceWidget vtkLineWidge

这个自己判断 了一下,点击的点能不能落到模型上,如果没有落到不处理;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VTK 测量类Widget的应用 与 vtkDistanceWidget 3D测试 问题 的相关文章

随机推荐

  • 使用 Python 将若干个 PDF 文件合并到一个中

    from pathlib import Path from PyPDF2 import PdfFileMerger read path r C Users liujieru Documents 需要合并的 pdf所在文件夹 write pa
  • Pinia

    store 是一个用reactive 包裹的对象 这意味着不需要在getter 之后写 value 但是 就像setup 中的props 一样 我们不能对其进行解构 大多数时候 getter 只会依赖状态 但是 他们可能需要使用其他 get
  • 使用webstorm操作git

    前言 对于git的使用 大家的使用方式均有不同 最王道的方式非命令行莫属 基于git的GUI软件还是很多的 大家可自行研究使用 之前使用eclipse svn插件去操作版本管理 还是很便捷的一件事情 而今用惯了webstorm 当然里面也集
  • 其中的文件夹或文件已在另一个程序中打开怎么解决

    不小心下载流氓软件 卸载时候总出现文件夹或文件正在被占用 出现这种方法 我在网上查都是这种解决方法 如下 方法一 win R 快捷键打开运行窗口 并输入taskmgr 打开任务管理器 点击 性能 点击 打开资源监视器 点击 CPU 然后在关
  • vite.config.js-element-plus

    打包工具 webpack 一 根据element plus官网给的方法配置自动导入 1 首先你需要安装unplugin vue components 和 unplugin auto import这两款插件 npm install D unp
  • 应用场景是什么?怎样判断、描述一个产品的应用场景?

    注 论文发表于 包装工程 杂志2017年第6期 工业设计 栏目 虽然是17年才发表 但这篇论文其实是很早之前写的 所以用的案例比较老 作者 胡伟峰 王玉梅 汤进 李世国 江南大学 无锡 214122 摘 要 目的 研究产品交互设计中场景理论
  • Springboot 集成logback 日志框架简介

    Spring Boot 作为微服务应用 默认集成 logback 日志框架 logback 是log4j框架的作者开发的新一代日志框架 它效率更高 能够适应诸多的运行环境 同时天然支持SLF4J 笔者刚好接触SpringBoot不久 之前用
  • AndroidStudio解决Gradle文件占用的问题

    在使用AndroidStudio开发时 经常在修改代码之后编译出现文件占用的问题 具体的提示一般是 xxx jar classes jar等出现文件占用 无法编译 传统的办法一般是 重启AndroidStudio 或者通过任务管理器搜索占用
  • QT DAY2

    华清远见上海中心22071班
  • NV21、NV12、YV12、RGB565、YUV等颜色编码格式区别和接口设计探讨

    NV21 NV12 YV12 RGB565 YUV扫盲 NV21 NV12 YV12 RGB565 YUV分别是不同的颜色编码格式 这些颜色编码格式各有特点 适用于不同的应用场景 选择合适的颜色编码格式取决于具体的需求和环境 NV21 NV
  • FastDFS安装步骤以及SpringBoot集成fastdfs-client-java

    一 环境准备 1 前期准备 名称 说明 centos 7 x libfastcommon FastDFS分离出的一些公用函数包 FastDFS FastDFS本体 fastdfs nginx module FastDFS和nginx的关联模
  • Ubuntu18.04下安装配置SSH服务

    安装ssh工具 1 打开终端键入如下命令 apt get update apt get install openssh server 2 选择Y继续执行 启动SSH服务 1 键入如下命令 etc init d ssh start 注 重启命
  • 机器学习面试题汇总(1~50题)

    机器学习面试题汇总 1 50题 1 深度神经网络预防过拟合的方法 2 SMOTE算法 过采样算法 3 为什么LR 逻辑回归 用sigmoid函数 4 LR损失函数 5 几种神经网络梯度下降方法 6 克莱姆法则 7 各种排序的时间复杂度 8
  • 【JDK】:Java容器框架——同步容器与并发容器

    前面的文章中详细介绍了Java的容器框架 在此基础上 本文对Java中的同步容器与并发容器做一些介绍 fail fast机制 快速报错机制 fail fast 能够防止多个进程同时修改同一个容器的内容 如果在你迭代遍历某个容器的过程中 另一
  • 云服务器维护工作,服务器日常维护工作

    服务器日常维护工作 内容精选 换一换 以昇腾 AI 处理器的PCIe的工作模式进行区分 如果PCIe工作在主模式 可以扩展外设 则称为RC模式 如果PCIe工作在从模式 则称为EP模式 昇腾 AI 处理器的工作模式如下 昇腾310 AI处理
  • Vuex学习总结

    Vuex学习总结 1 概述 说说我的理解 不一定对 由于前端的组件化开发常常难免涉及到组件之间的通信 对于一个小型项目来说 通过父子组件通信就够用了 但是 可能随着项目扩大 存在兄弟组件或者祖孙组件通信的通信 其解决方法通常有两种 中央bu
  • QML VideoOutput填充模式引发的问题

    QML Camera显示不全问题 BUG记录 QML使用Camera组件获取摄像头中的视频 使用VideoOutput显示 显示没有问题 但在Capture时 生成的图片明显比显示的东西多 真实生成的图片 在VideoOutput显示的部分
  • JMJS系统总结系列----JMJS中接口使用的技术(六)

    三同时接口 调用外部的webService A 添加WebService引用 using JMJS BusinessLogic IsSupervisionsServiceReference B 具体调用 public class IsSup
  • MySQL表操作:提高数据处理效率的秘诀(进阶)(1)

    生命不在于相信奇迹 而在于创造奇迹 朱学恒 作者 不能再留遗憾了 专栏 MySQL学习 本文章主要内容 MySQL对表操作进阶 数据库约束 表的设计 新增 后续会更新进阶表的查询 文章目录 前言 1 数据库约束 NULL约束 UNIQUE
  • VTK 测量类Widget的应用 与 vtkDistanceWidget 3D测试 问题

    vtkDistanceWidget 用于在二维平面上测量两点之间的距离 vtkAngleWidget 用于在平面的角度测量 AngleWidget 感觉这都是 2D控件 include