VTK - vtkPolyData数据的Remesh

news2024/11/19 13:32:06

欢迎加入我的VTK社区 雪易VTK社区-CSDN社区云

前言:在研究3-matic软件中smooth Edge和Local Smoothing功能时,先对数据的网格进行了重新的划分,即3-matic软件中的Remesh功能。本博文主要针对Remesh进行展开。

目录

网格质量

vtkMeshQuality

vtkCellQuality


网格质量

网格质量是影响模型好坏的重要因素,vtk中提供了两种质量相关接口vtkCellQuality/vtkMeshQuality。

vtkMeshQuality

描述:

vtkMeshQuality为网格的每个2-D和3-D单元(三角形、四边形、四面体或六面体)计算一个或多个(几何)质量函数。然后在整个网格上平均这些质量函数。每种类型单元格的最小值、平均值、最大值和无偏方差都存储在输出网格的FieldData中。FieldData数组被命名为“网格三角形质量”、“网格四边形质量”、“网格四面体质量”和“网格六面体质量”。每个数组都有一个包含5个组件的元组。前4个组成部分是上面提到的质量统计;最后的值是给定类型的单元格数。最后一个组件使分布式网格数据的统计信息聚合成为可能。

默认情况下,每个单元格的质量被添加到网格的单元格数据中,在一个名为“quality”的数组中。此筛选器不支持的单元格类型的条目为0。使用SaveCellQualityOff()只存储最终的统计数据。

示例

  vtkSmartPointer<vtkSphereSource> sphereSource =
    vtkSmartPointer<vtkSphereSource>::New();
  sphereSource->Update();

  vtkSmartPointer<vtkTriangleFilter> triangleFilter =
    vtkSmartPointer<vtkTriangleFilter>::New();
  triangleFilter->SetInputConnection(sphereSource->GetOutputPort());
  triangleFilter->Update();

  vtkPolyData* mesh = triangleFilter->GetOutput();
  std::cout << "There are " << mesh->GetNumberOfCells() << " cells." << std::endl;

  vtkSmartPointer<vtkMeshQuality> qualityFilter =
    vtkSmartPointer<vtkMeshQuality>::New();
  qualityFilter->SetInputData(mesh);
  qualityFilter->SetTriangleQualityMeasureToArea();
  qualityFilter->Update();

  vtkSmartPointer<vtkDoubleArray> qualityArray =
    dynamic_cast<vtkDoubleArray*>(qualityFilter->GetOutput()->GetCellData()->GetArray("Quality"));

  std::cout << "There are " << qualityArray->GetNumberOfTuples() << " values." << std::endl;

  for(vtkIdType i = 0; i < qualityArray->GetNumberOfTuples(); i++)
  {
    double val = qualityArray->GetValue(i);
    std::cout << "value " << i << " : " << val << std::endl;
  }

  vtkSmartPointer<vtkPolyData> polydata =
    vtkSmartPointer<vtkPolyData>::New();
  polydata->ShallowCopy(qualityFilter->GetOutput());

vtkCellQuality

描述:

vtkCellQuality为网格的每个单元计算一个或多个(几何)质量函数。每个单元格的质量被添加到网格的单元格数据中,在一个名为“CellQuality”的数组中。此过滤器不支持的单元格类型或支持的单元格类型的未定义质量将具有-1的条目。

Remesh

介绍3-matic中的集中Remesh的方法:Adaptive Remesh,

Adaptive Remesh

     

    

  Adaptive Remesh允许在保留实体几何形状的同时对其进行Remesh。与Uniform Remesh相比,该工具对生成的网格提供了更精细的控制,甚至可以将网格限制在一个感兴趣的小区域;然而,根据参数的不同,结果可能并不一致。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/69820.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【JavaScript】ESLint 深入浅出

▒ 目录 ▒&#x1f6eb; 导读需求开发环境1️⃣ 初体验安装lint配置.eslintrc.js忽略文件package.json中添加eslint脚本2️⃣ vscode中使用插件安装作用3️⃣ 规避报错问题行添加注释问题文件开头添加注释修改配置文件.eslintrc.js4️⃣ 常见错误汇总Cannot read property nam…

站在巨人的肩膀上,用Node+ChatGPT模块实现一个接口

目录 前言 准备工作 起步 写在最后 前言 蹭一下最近比较火的人工智能ChatGPT的热度&#xff0c;最近看到许多小伙伴都在调戏ChatGPT&#xff0c;看到这我就坐不住了&#xff0c;这种事怎么能少了我&#xff0c;于是闲&#xff08;划&#xff09;暇&#xff08;水&#xff0…

什么事Jupyter Notebook?

Jupyter Notebook是基于网页的用于交互计算的应用程序。其可被应用于全过程计算&#xff1a;开发、文档编写、运行代码和展示结果。 简而言之&#xff0c;Jupyter Notebook是以网页的形式打开&#xff0c;可以在网页页面中直接编写代码和运行代码&#xff0c;代码的运行结果也…

【javascript】 初见浏览器端日志系统 log4js、bunyan

▒ 目录 ▒&#x1f6eb; 导读需求开发环境1️⃣ log4js配置实现2️⃣ bunyan自定义MyRawStream实现&#x1f6ec; 文章小结&#x1f4d6; 参考资料&#x1f6eb; 导读 需求 用习惯了python、java的日志系统&#xff0c;现在使用console.log等览器端js接口打印日志&#xff0c…

m基于FPGA的多级抽取滤波器组verilog设计,包括CIC滤波,HB半带滤波以及DA分布式FIR滤波

目录 1.算法描述 2.仿真效果预览 3.verilog核心程序 4.完整FPGA 1.算法描述 数字下变频中的低通滤波器是由多级抽取滤波器组实现的。信号的同相分量和正交分量再分别经由积分梳状滤波器(CIC)、半带滤波器(HB)和有限长单位脉冲响应(FIR)滤波器构成的多级抽取滤波器组进行滤波…

vcenter开机报错activating swap-devices in /etc/fstab

问题&#xff1a;昨天IDC机房一台存储断电了&#xff0c;恰巧vcenter在这台存储上&#xff0c;重启存储后再重启vcenter报了以下错误&#xff1a; 参考文档&#xff1a; https://www.virtualizestuff.com/2015/10/29/vcsa_fstab_failed/ https://kb.vmware.com/s/article/2069…

政企数智办公潮水里的融云「答卷」

在这张集合了党政机关、金融保险、交通、能源电力等中大型组织复杂办公需求的高难度答卷上&#xff0c;融云在扎实耐打的通信底层之上&#xff0c;保持灵活的身段和强大的进化能力&#xff0c;稳定而轻盈&#xff0c;在不断变化的环境中正在成为确定性本身。 作者|皮爷 出品…

手把手教你打造一款个人专属Android桌面

实现方式两种 1.从头到尾写一个apk然后把系统的属性加上去&#xff0c;然后启动的时候默认就指定到这个apk的包名&#xff0c;他就启动&#xff0c; 2.我们基于Androidlauncher3的源码去做一个定制化的修改 分析一下这两种的区别&#xff0c; 自定义&#xff0c;要有丰富的…

使用SuperMap iDesktopX如何去掉“耗子尾巴”

在项目中&#xff0c;通过会遇到一些错误的矢量数据&#xff0c;比如“耗子尾巴”。什么是“耗子尾巴呢”&#xff0c;我们所说的“耗子尾巴图斑”&#xff0c;是不规则图斑的一种形态。规则的图斑&#xff0c;应该形态接近圆、矩形、菱形或凸多边形的图斑。自然界中多数图斑应…

[附源码]计算机毕业设计JAVA政府项目管理平台

[附源码]计算机毕业设计JAVA政府项目管理平台 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybati…

ASEMI整流桥MB10F、MB6S、ABS10参数对比

编辑-Z 封装和参数是工程师在选型整流桥时的两大重要依据&#xff0c;下面我们就把比较常见的ASEMI整流桥MB10F、MB6S、ABS10参数做个对比&#xff0c;方便大家选型。 整流桥MB10F参数&#xff1a; 型号&#xff1a;MB10F 封装&#xff1a;MBF-4 最大重复峰值反向电压&…

Redis - Linux下载与安装

1.通过apt方式安装Redis 在终端中输入&#xff0c;如下命令进行安装&#xff1a; # 更新软件源 sudo apt update # 安装redis-server sudo apt install redis-serverredis服务安装完成后&#xff0c;服务将自动启动。通过如下命令查看服务进程是否启动&#xff1a; ps aux |…

快速上手Django(八) -Django之 统一异常、Response处理

文章目录快速上手Django(八) -Django之 统一异常、Response处理一、统一Response处理二、统一异常处理1. 需求背景2. Django、drf统一异常处理3. Django、drf异常处理基础4. 纯django场景下5. 【重要】使用drf场景下&#xff0c;实现思路编写自定义异常处理方法在settings/dev.…

高端前端彻底搞定this指向(详解)

这篇文章只告诉你三件事情&#xff0c;this,this,还TM的是this。 1&#xff0c;this在javascript中是可有可无的 大家在学习javascript的时候&#xff0c;肯定或多或少看到过了很多代码。其中肯定会发现this的身影。我们知道他是代表的指向&#xff0c;可是让人迷惑的是this的…

Scheduled定时任务异步执行

1.使用配置 我在使用SpringBoot配置定时任务的过程中,使用Scheduled配置了多个定时任务,但是在项目启动的时候每次只会启动一个定时任务,只好搜索一波,直到看到了 ThreadPoolTaskScheduler的源码,才发现默认开启的线程数是 1 Configuration public class ScheduledPoolConfi…

如何用代码实现决策树来决策要不要相亲?

前言 上一篇我们了解了什么是决策树&#xff0c;知道了决策树构建的过程&#xff0c;同时聊了构建决策树的两种算法&#xff0c;那么我们今天来看下如何使用代码实现决策树的构建。 数据分析整体流程 数据分析一般是以下的分析流程 1、加载数据集 首先我们构建数据,提供训…

windows10配置openvino

一、前言 gpu的常用部署我们是选择trt,那么cpu的部署呢?当然是英特尔的ov 这里要注意:我们一般是现在一台机器上利用exe(后续会说)安装完ov,那么以后在配好第一台软件配置后,以后部署到其他机器上只需要直接把dll和lib直接复制到另一台就可以运行了! 也就是说,只有…

Matplotlib学习笔记(第二章 2.11使用指南 一些简单的例子)

第二章 学习指南 本页包含更多使用Matplotlib的深入指南。它分为初级、中级和高级部分&#xff0c;以及涵盖特定主题的部分。 有关较短的示例&#xff0c;请参阅我们的示例页面。您还可以在我们的用户指南中找到外部资源和FAQ。 2.1介绍 这些教程涵盖了使用Matplotlib创建可…

P4设计实现链路监控

实验要求 在本次实验中&#xff0c;目的是编写一个P4程序&#xff0c;使主机能够监控网络中所有链路的使用情况本练习基于基本的IPv4转发练习&#xff0c;因此请确保在尝试此练习之前完成此练习&#xff08;basic.p4&#xff09;具体来说&#xff0c;我们将修改基本P4程序以处…

使用ChatGPT完成分类、检测、分割等计算机视觉任务(Pytorch)

前言 ChatGPT是一个由OpenAI训练的大型语言模型&#xff0c;其知识涵盖了很多领域。 虽然ChatGPT表示它不能用于写代码&#xff0c;但是万一是它太谦虚了呢&#xff1f; 下面的文字均为ChatGPT给出的回答。 使用ChatGPT解决图像分类任务 我们需要一个PyTorch模型&#xff0…