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

Learning vtkjs之Calculator

过滤器 公式计算器 Calculator

介绍

The Calculator filter is a fast way to add derived data arrays to a
dataset. These arrays can be defined over points, cells, or just field
data that is “uniform” across the dataset (i.e., constant over all of
space). Values in the array(s) you create are specified in terms of
existing arrays via a function you provide.

The Calculator filter is similar in spirit to VTK’s array calculator,
so it should be familiar to VTK users but the syntax takes advantage
of JavaScript’s flexibility.

chatGLM 翻译一下

计算器过滤器是一种快速向数据集中添加派生数据数组的方法。 这些数组可以定义为点、单元格,或只是数据集中的“统一”场数据(即,在整个空间中是常数)。 您创建的数组中的值是通过您提供的函数以现有数组为条件来指定的。

计算器过滤器在精神上类似于 VTK 的数组计算器,因此对 VTK 用户来说应该很熟悉,但其语法利用了 JavaScript 的灵活性。

用法

其实官方给的例子真的坑好多啊,比如interpolateScalarsBeforeMapping: false,才可以插值,useLookupTableScalarRange: false,才可以表示使用lookuptable,用起来很疑惑,你不看源码就不知道什么情况,它自己的例子也报错,运行不起来,最后需要自己debug一下
官方例子给的是setFormulaSimple方式,比较方便

核心代码

// 创建一个计算器的过滤器
const simpleFilter = vtkCalculator.newInstance();simpleFilter.setFormulaSimple(FieldDataTypes.POINT, // Generate an output array defined over points.[], // We don't request any point-data arrays because point coordinates are made available by default."z", // Name the output array "z"(x) => (x[0] - 0.5) * (x[0] - 0.5) + (x[1] - 0.5) * (x[1] - 0.5) + 0.125); // Our formula for z
// 利用的是scalar来修改变形const warpScalar = vtkWarpScalar.newInstance();const warpMapper = vtkMapper.newInstance({interpolateScalarsBeforeMapping: false,useLookupTableScalarRange: false,lookupTable,});const warpActor = vtkActor.newInstance();// warpActor.getProperty().setEdgeVisibility(true);// The generated 'z' array will become the default scalars, so the plane mapper will color by 'z':// 数据源是来自这个平面planesimpleFilter.setInputConnection(planeSource.getOutputPort());// We will also generate a surface whose points are displaced from the plane by 'z':warpScalar.setInputConnection(simpleFilter.getOutputPort());// 设置需要对应处理的数组的keywarpScalar.setInputArrayToProcess(0, "z", "PointData", "Scalars");warpMapper.setInputConnection(warpScalar.getOutputPort());warpActor.setMapper(warpMapper);

代码效果

一个公式效果
在这里插入图片描述
另外一个公式效果
在这里插入图片描述
这个还是挺好用的,用来按照一定规则过滤数组,这部分核心逻辑可以抽离出来

全部代码都放到github上了
新坑_Learning vtkjs_git地址
关注我,我持续更新vtkjs的example学习案例

也欢迎各位给我提意见,技术交流~

大鸿

WeChat : HugeYen
WeChat Public Account : BIM树洞

做一个静谧的树洞君

用建筑的语言描述IT事物;

用IT的思维解决建筑问题;

共建BIM桥梁,聚合团队。

本学习分享资料不得用于商业用途,仅做学习交流!!如有侵权立即删除!!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 我菜单为什么跟着滑动了?!!—— 固定定位为什么会失效?
  • ubuntu下Xsens_MTi_300传感器的python驱动安装
  • 数据科学 - 数据预处理 (数据清洗,结构化数据)
  • window安装elasticsearch和可视化界面kibana
  • 企业级-实现Nginx的静态文件服务器映射
  • JVM(Java虚拟机) - JVM内存分配与内存管理
  • 发送邮箱调用接口时需要注意哪些安全事项?
  • [CP_AUTOSAR]_系统服务_DEM模块(一)功能及模块间依赖关系介绍
  • 数据结构初阶之排序(上)
  • 前端的学习-CSS(弹性布局-flex)
  • go语言day21 goland使用gin框架、gorm框架操作mysql数据库redis数据库 使用宝塔创建redis数据库
  • NIO专题学习(一)
  • 计算右侧小于当前元素的个数
  • 【C++】—— 类与对象(二)
  • [Git][认识Git]详细讲解
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 【刷算法】从上往下打印二叉树
  • Debian下无root权限使用Python访问Oracle
  • dva中组件的懒加载
  • eclipse(luna)创建web工程
  • If…else
  • KMP算法及优化
  • laravel5.5 视图共享数据
  • MaxCompute访问TableStore(OTS) 数据
  • React as a UI Runtime(五、列表)
  • uva 10370 Above Average
  • 半理解系列--Promise的进化史
  • 初识 webpack
  • 从PHP迁移至Golang - 基础篇
  • 给新手的新浪微博 SDK 集成教程【一】
  • 简单实现一个textarea自适应高度
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 使用 QuickBI 搭建酷炫可视化分析
  • 思维导图—你不知道的JavaScript中卷
  • 一个完整Java Web项目背后的密码
  • 在weex里面使用chart图表
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • #android不同版本废弃api,新api。
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • (11)MSP430F5529 定时器B
  • (12)Hive调优——count distinct去重优化
  • (13)DroneCAN 适配器节点(一)
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (贪心) LeetCode 45. 跳跃游戏 II
  • (五)网络优化与超参数选择--九五小庞
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .bat批处理出现中文乱码的情况
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .net core 6 集成和使用 mongodb
  • .pop ----remove 删除