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

Learning vtkjs之ImageMarchingCubes

体积 等值面处理

介绍

vtkImageMarchingCubes - 对体积进行等值面处理

给定一个指定的等值,使用Marching Cubes算法生成一个等值面。

效果

在这里插入图片描述
新建了一个球,对比一下原始的(透明的)和ISO的效果

核心代码

参数部分

const updateParam = (type, obj) => {const { sample, sphere, sphereSource, mCubes, renderWindow } =context.current;let value;switch (type) {case "volumeResolution":value = obj.volumeResolution;sample.setSampleDimensions(value, value, value);renderWindow.render();setState({ ...state, ...obj });break;case "isoValue":value = obj.isoValue;mCubes.setContourValue(value);console.log(value);renderWindow.render();setState({ ...state, ...obj });break;case "sphereRadius":value = obj.sphereRadius;sphere.setRadius(value);  renderWindow.render();setState({ ...state, ...obj });break;case "computeNormals":value = obj.computeNormals;mCubes.setComputeNormals(!!value);renderWindow.render();setState({ ...state, ...obj });break;case "mergePoints":value = obj.mergePoints;mCubes.setMergePoints(!!value);renderWindow.render();setState({ ...state, ...obj });break;default:break;}};

主体流程

const fullScreenRenderer = vtkFullScreenRenderWindow.newInstance({background: [0, 0, 0],rootContainer: vtkContainerRef.current,});const renderer = fullScreenRenderer.getRenderer();const renderWindow = fullScreenRenderer.getRenderWindow();const actor = vtkActor.newInstance();renderer.addActor(actor);const mapper = vtkMapper.newInstance();actor.setMapper(mapper);// Build pipelineconst radius = 1;const sampleDimension = 50;const sphere = vtkSphere.newInstance({center: [0.0, 0.0, 0.0],radius: radius,});// value of implicit function // x = x1 - center// x*x + y*y + z*z - R*R = valueconst sample = vtkSampleFunction.newInstance({implicitFunction: sphere,sampleDimensions: [sampleDimension, sampleDimension, sampleDimension],modelBounds: [-radius, radius, -radius, radius, -radius, radius],});// Create the isosurface by contourValueconst mCubes = vtkImageMarchingCubes.newInstance({ contourValue: 0.0 });// Connect the pipeline propermCubes.setInputConnection(sample.getOutputPort());mapper.setInputConnection(mCubes.getOutputPort());context.current = {sample,mCubes,sphere,renderer,renderWindow,};// 同步sphereconst sphereActor = createSphere();renderer.addActor(sphereActor);renderer.resetCamera();renderWindow.render();

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

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

大鸿

WeChat : HugeYen
WeChat Public Account : BIM树洞

做一个静谧的树洞君

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

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

共建BIM桥梁,聚合团队。

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

相关文章:

Learning vtkjs之ImageMarchingCubes

体积 等值面处理 介绍 vtkImageMarchingCubes - 对体积进行等值面处理 给定一个指定的等值,使用Marching Cubes算法生成一个等值面。 效果 新建了一个球,对比一下原始的(透明的)和ISO的效果 核心代码 参数部分 const updat…...

【“星睿O6”AI PC开发套件评测】+ tensorflow 初探

因为本次我的项目计划使用 tensorflow,所以这篇文章主要想做一个引子,介绍如何在“星睿O6”上搭建 tensorflow 的开发环境和验证测试。本文主要分为几个部分: 在“星睿O6”上编译安装 tensorflow基于 MNIST 数据集的模型训练和评估 tensorf…...

通义灵码全面接入Qwen3:AI编程进入智能体时代,PAI云上部署实战解析

引言:AI编程的范式革命 2025年4月30日,阿里云通义灵码宣布全面支持新一代大模型Qwen3,并同步推出编程智能体功能,标志着AI辅助开发从“工具助手”向“自主决策智能体”的跃迁。与此同时,阿里云PAI平台上线Qwen3全系列…...

如何禁止AutoCAD这类软件联网

推荐二、三方法,对其他软件影响最小 一、修改Hosts文件 Hosts文件是一个存储域名与IP地址映射关系的文本文件,通过修改Hosts文件可以将AutoCAD的域名指向本地回环地址(127.0.0.1),从而实现禁止联网的目的。具体步骤如…...

音视频项目在微服务领域的趋势场景题深度解析

音视频项目在微服务领域的趋势场景题深度解析 在互联网大厂Java求职者的面试中,经常会被问到关于音视频项目在微服务领域的应用场景的相关问题。本文通过一个故事场景来展示这些问题的实际解决方案。 第一轮提问 面试官:马架构,欢迎来到我…...

100 个 NumPy 练习

本文翻译整理自:https://github.com/rougier/numpy-100 文章目录 关于 100 个 NumPy 练习相关链接资源关键功能特性 100 个 NumPy 练习题1、导入 NumPy 包并命名为 np (★☆☆)2、打印 NumPy 版本和配置信息 (★☆☆)3、创建一个大小为 10 的空向量 (★☆☆)4、如何…...

在Carla中构建自动驾驶:使用PID控制和ROS2进行路径跟踪

机器人软件开发什么是 P、PI 和 PID 控制器?比例 (P) 控制器比例积分 (PI) 控制器比例-积分-微分 (PID) 控制器横向控制简介CARLA ROS2 集成纵向控制横向控制关键要点结论引用 机器人软件开发 …...

Windows和 macOS 上安装 `nvm` 和 Node.js 16.16.0 的详细教程。

Windows和 macOS 上安装 nvm 和 Node.js 16.16.0 的详细教程。 --- ### 1. 安装 nvm(Node Version Manager) nvm 是一个 Node.js 版本管理工具,可以轻松安装和切换不同版本的 Node.js。 #### Windows 安装 nvm 1. **下载 nvm 安装包**&#x…...

day11 python超参数调整

模型组成:模型 算法 实例化设置的外参(超参数) 训练得到的内参调参评估:调参通常需要进行两次评估。若不使用交叉验证,需手动划分验证集和测试集;但许多调参方法自带交叉验证功能,实际中可省略…...

Linux C++ xercesc xml 怎么判断路径下有没有对应的节点

在Linux环境下使用Xerces-C库处理XML文件时&#xff0c;判断路径下是否存在对应的节点可以通过以下几个步骤实现&#xff1a; 加载XML文档 首先&#xff0c;你需要加载XML文档。这可以通过创建一个xercesc::DOMParser对象并使用它的parse方法来实现。 #include <xercesc/…...

罗技K580蓝牙键盘连接mac pro

罗技K580蓝牙键盘&#xff0c;满足了我们的使用需求。最棒的是&#xff0c;它能够同时连接两个设备&#xff0c;通过按F11和F12键进行切换&#xff0c;简直不要太方便&#xff01; 连接电脑 &#x1f4bb; USB连接 1、打开键盘&#xff1a;双手按住凹槽两边向前推&#xff0…...

Socket-UDP

Socket&#xff08;套接字 &#xff09;是计算机网络中用于实现进程间通信的重要编程接口&#xff0c;是对 TCP/IP 协议的封装 &#xff0c;可看作是不同主机上应用进程之间双向通信端点的抽象。以下是详细介绍&#xff1a; 作用与地位 作为应用层与传输层、网络层协议间的中…...

【游戏ai】从强化学习开始自学游戏ai-2 使用IPPO自博弈对抗pongv3环境

文章目录 前言一、环境设计二、动作设计三、状态设计四、神经网路设计五、效果展示其他问题总结 前言 本学期的大作业&#xff0c;要求完成多智能体PPO的乒乓球对抗环境&#xff0c;这里我使用IPPO的方法来实现。 正好之前做过这个单个PPO与pong环境内置的ai对抗的训练&#…...

LeRobot 项目部署运行逻辑(三)——机器人及舵机配置

Lerobot 目前的机器人硬件以舵机类型为主&#xff0c;并未配置机器人正逆运动学及运动学&#xff0c;遥操作映射以舵机关节角度为主 因此&#xff0c;需要在使用前需要对舵机各项参数及初始位置进行配置 目录 1 Mobile ALOHA 配置 2 Dynamixel 配置 2.1 配置软件 2.2 SDK …...

Ubuntu20.04安装NVIDIA Warp

Ubuntu20.04安装NVIDIA Warp 安装测试 Warp的gitee网址 Warp的github网址 写在前面&#xff1a;建议安装前先参考readme文件自检系统驱动和cuda是否支持&#xff0c;个人实测建议是python3.9&#xff0c;但python3.8.20也可以使用。 写在前面&#xff1a;后续本人可能会使用这…...

电子病历高质量语料库构建方法与架构项目(临床情景理解模块篇)

引言 随着人工智能技术在医疗健康领域的广泛应用,电子病历(Electronic Medical Records,EMR)作为临床医疗数据的重要载体,已成为医学研究和临床决策支持的关键资源。电子病历高质量语料库的构建为医疗人工智能模型的训练和应用提供了基础支撑,其中临床情境理解模块是连接…...

WPF性能优化举例

WPF性能优化集锦 一、UI渲染性能优化 1. 虚拟化技术 ​​ListView/GridView虚拟化​​: <ListView VirtualizingStackPanel.IsVirtualizing="True"VirtualizingStackPanel.VirtualizationMode="Recycling"ScrollViewer.IsDeferredScrollingEnabled=…...

【CUDA pytorch】

ev win10 3050ti 联想笔记本 nvcc --version 得到 PS C:\Users\25515> nvcc --version nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2022 NVIDIA Corporation Built on Tue_May__3_19:00:59_Pacific_Daylight_Time_2022 Cuda compilation tools, release …...

mac下载homebrew 安装和使用git

mac下载homebrew 安装和使用git 本人最近从windows换成mac&#xff0c;记录一下用homebrew安装git的过程 打开终端 command 空格&#xff0c;搜索终端 安装homebrew 在终端中输入下面命令&#xff0c;来安装homebrew /bin/bash -c "$(curl -fsSL https://raw.githu…...

Elasticsearch入门速通01:核心概念与选型指南

一、Elasticsearch 是什么&#xff1f; 一句话定义&#xff1a; 开源分布式搜索引擎&#xff0c;擅长处理海量数据的实时存储、搜索与分析&#xff0c;是ELK技术栈&#xff08;ElasticsearchKibanaBeatsLogstash&#xff09;的核心组件。 核心能力&#xff1a; 近实时搜索&…...

应对过度处方挑战:为药物推荐任务微调大语言模型(Xiangnan He)

Abstract 药物推荐系统因其有潜力根据患者的临床数据提供个性化且有效的药物组合&#xff0c;在医疗保健领域备受关注。然而&#xff0c;现有方法在适应不同的电子健康记录&#xff08;EHR&#xff09;系统以及有效利用非结构化数据方面面临挑战&#xff0c;导致其泛化能力有限…...

41 python http之requests 库

Python 的requests库就像你的 "接口助手",用几行代码就能发送 HTTP 请求,自动处理复杂的网络交互,让你告别手动拼接 URL 和解析响应的痛苦! 一、快速入门:3 步搞定基本请求 1.1 安装库:一键开启助手功能 pip install requests 1.2 发送 GET 请求 import r…...

百度网盘golang实习面经

goroutine内存泄漏的情况&#xff1f;如何避免&#xff1f; goroutine内存泄漏基本上是因为异常导致阻塞, 可以导致阻塞的情况 1 死锁, goroutine 等待的锁发生了死锁情况 2 chan没有正常被关闭,导致读取读chan的goroutine阻塞 如何避免 1 避免死锁 2 正常关闭 3 使用context管…...

super_small_toy_tpu

super_small_toy_tpu 小狼http://blog.csdn.net/xiaolangyangyang 1、基础框图 2、源码下载&#xff1a; GitHub - dldldlfma/super_small_toy_tpu 3、安装iverilog、vvp、gtkwave windows安装&#xff1a;https://bleyer.org/icarus/ ubuntu安装&#xff1a;sudo ap…...

Redis缓存穿透、缓存击穿与缓存雪崩:如何在.NET Core中解决

在高并发的互联网系统中&#xff0c;缓存技术作为优化系统性能的重要手段&#xff0c;已被广泛应用。然而&#xff0c;缓存系统本身也存在一些常见的问题&#xff0c;尤其是 缓存穿透、缓存击穿 和 缓存雪崩。这些问题如果处理不当&#xff0c;可能导致系统性能严重下降&#x…...

驱动车辆诊断测试创新 | 支持诊断测试的模拟器及数据文件转换生成

一 背景和挑战 | 背景&#xff1a; 随着汽车功能的日益丰富&#xff0c;ECU和域控制器的复杂性大大增加&#xff0c;导致测试需求大幅上升&#xff0c;尤其是在ECU的故障诊断和性能验证方面。然而&#xff0c;传统的实车测试方法难以满足高频率迭代和验证需求&#xff0c;不仅…...

VS Code技巧2:识别FreeCAD对象

在使用VS Code阅读FreeCAD代码或者FreeCAD的工作台代码时&#xff0c;VS Code无法识别FreeCAD对象&#xff0c;会提示Import “FreeCAD” could not be resolved&#xff1a; 问题解决如下几步即可。 第一步&#xff1a;确认 FreeCAD 的 Python 环境路径 在FreeCAD的Python控制…...

泰迪杯特等奖案例学习资料:基于多模态融合与边缘计算的智能温室环境调控系统

(第十二届泰迪杯数据挖掘挑战赛特等奖案例解析) 一、案例背景与核心挑战 1.1 应用场景与行业痛点 在现代设施农业中,温室环境调控直接影响作物产量与品质。传统温室管理存在以下问题: 环境参数耦合性高:温度、湿度、光照、CO₂浓度等参数相互影响,人工调控易顾此失彼。…...

猿人学web端爬虫攻防大赛赛题第13题——入门级cookie

1. F12开发者模式 刷新第一页&#xff0c;仔细研究发现里面有三次请求名为13的请求&#xff0c;根据题目提示cookie关键字&#xff0c;所以主要留意请求和响应的cookie值。 三次请求都带了sessionid&#xff0c;说明存在session&#xff08;后面写代码要用session来写&#x…...

机器指标监控技术方案

文章目录 机器指标监控技术方案架构图组件简介Prometheus 简介核心特性适用场景 Grafana 简介核心特性适用场景 Alertmanager 简介核心特性适用场景 数据采集机器Node ExporterMySQL ExporterRedis ExporterES ExporterRocketMQ ExporterSpringcloud ExporterNacos 数据存储短期…...

数据库设计理论:从需求分析到实现的全流程解析

引言 在当今信息爆炸的时代&#xff0c;数据已成为企业和组织最宝贵的资产之一。如何有效地组织、存储和管理这些数据&#xff0c;是数据库设计需要解决的核心问题。一个优秀的数据库设计能够提高系统性能&#xff0c;确保数据一致性&#xff0c;降低维护成本&#xff0c;而糟…...

一文详解 Linux下的开源打印系统CUPS(Common UNIX Printing System)

文章目录 前言一、CUPS 简介二、CUPS 常用指令解析2.1 安装 CUPS2.2 启动/重启服务2.3 添加打印机&#xff08;核心操作&#xff09;2.4 设置默认打印机2.5 打印文件2.6 查看打印任务2.7 取消打印任务2.8 查看、移除已添加的打印机 三、调试与常见问题3.1 日志查看3.2 驱动问题…...

uniapp打包apk详细教程

目录 1.打apk包前提条件 2.获取uni-app标识 3.进入dcloud开发者后台 4.开始打包 1.打apk包前提条件 1.在HBuilderX.exe软化中&#xff0c;登录自己的账号 2.在dcloud官网&#xff0c;同样登录自己的账号。没有可以免费注册。 2.获取uni-app标识 获取方法&#xff1a;点…...

C++初阶-string类2

目录 1.迭代器 1.1普通迭代器的使用 1.2string::begin 1.3string::end 1.4const迭代器的使用 1.5泛型迭代器和const反向迭代器 1.6string::rbegin 1.6string::rend 1.7string::cbegin、string::cend、string::crbegin、string::crend 与begin/end、rbegin/rend的区别 …...

Qt QComboBox 下拉复选多选(multicombobox)

Qt QComboBox 下拉复选多选&#xff08;multicombobox&#xff09;&#xff0c;备忘&#xff0c;待更多测试 【免费】QtQComboBox下拉复选多选&#xff08;multicombobox&#xff09;资源-CSDN文库...

逻辑回归之参数选择:从理论到实践

在机器学习的广阔领域中&#xff0c;逻辑回归作为一种经典的有监督学习算法&#xff0c;常用于解决分类问题。它以其简单易懂的原理和高效的计算性能&#xff0c;在实际应用中备受青睐。然而&#xff0c;要充分发挥逻辑回归的优势&#xff0c;参数选择是关键环节。本文将结合信…...

10、属性和数据处理---c++17

一、[[fallthrought]] 用途&#xff1a;在 switch 语句中标记某个分支 (case) 故意不写 break&#xff0c;明确告知编译器“执行穿透”是有意为之。 仅在需要向下穿透时使用&#xff0c;且应添加注释说明原因 #include<cstdio> #include<iostream> using namesp…...

conda管理python环境

安装conda 使用anaconda官网安装地址&#xff1a;https://www.anaconda.com/download/success 配置镜像环境 conda config --add channels Index of /anaconda/pkgs/main/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror conda config --add channels Index of /an…...

【Python学习路线】零基础到项目实战系统

目录 &#x1f31f; 前言技术背景与价值当前技术痛点解决方案概述目标读者说明 &#x1f9e0; 一、技术原理剖析核心概念图解核心作用讲解关键技术模块说明技术选型对比 &#x1f4bb; 二、实战演示环境配置要求核心代码实现运行结果验证 ⚡ 三、性能对比测试方法论量化数据对比…...

C/C++核心机制深度解析:指针、结构体与动态内存管理(面试精要)

C/C核心机制深度解析&#xff1a;指针、结构体与动态内存管理&#xff08;面试精要&#xff09; 引言 在系统级编程领域&#xff0c;C/C语言凭借对硬件的直接操作能力和高效的内存管理机制&#xff0c;长期占据主导地位。面试中&#xff0c;指针、结构体和动态内存管理作为三…...

宇树科技举办“人型机器人格斗大赛”

2025 年 5 月至 6 月&#xff0c;一场全球瞩目的科技盛宴 —— 全球首场 “人形机器人格斗大赛”&#xff0c;将由杭州宇树科技盛大举办。届时&#xff0c;观众将迎来机器人格斗领域前所未有的视觉震撼。 为打造最强参赛阵容&#xff0c;宇树科技技术团队在过去数周里&#xf…...

getattr 的作用

getattr 是 Python 内置的一个函数&#xff0c;用于“动态地”获取对象的属性。**它允许你在运行时通过属性名称&#xff08;字符串形式&#xff09;来访问对象的属性&#xff0c;而不用在代码中直接硬编码属性名。**下面详细介绍该方法的用法和注意事项&#xff1a; ────…...

腾讯云服务器性能提升全栈指南(2025版)

腾讯云服务器性能提升全栈指南&#xff08;2025版&#xff09; 一、硬件选型与资源优化 1. 实例规格精准匹配 腾讯云服务器提供计算型CVM、内存型MEM、大数据型Hadoop等12种实例类型。根据业务特性选择&#xff1a; • 高并发Web应用&#xff1a;推荐SA3实例&#xff0…...

Kotlin与Jetpack Compose的详细使用指南

Kotlin与Jetpack Compose的详细使用指南&#xff0c;综合最新技术实践和官方文档整理&#xff1a; 一、环境配置与基础架构 ‌项目创建‌ 在Android Studio中选择Empty Compose Activity模板&#xff0c;默认生成包含Composable预览的MainActivity2要求Kotlin版本≥1.8.0&…...

潇洒郎: 100% 成功搭建Docker私有镜像仓库并管理、删除镜像

1、Registry Web管理界面 2、拉取Registry-Web镜像 创建配置文件 tee /opt/zwx-registry/web-config.yml <<-EOF registry:url: http://172.28.73.90:8010/v2name: registryreadonly: falseauth:enabled: false EOF 拉取docker-registry-web镜像并绑定Registry仓库 …...

【Spring Boot 注解】@ConfigurationProperties

文章目录 ConfigurationProperties注解一、简介二、依赖引入三、基本用法四、主要特性五、激活方式六&#xff0c;优点七、与 Value 对比 ConfigurationProperties注解 一、简介 ConfigurationProperties 是 Spring Boot 提供的一个强大注解&#xff0c;用于将外部配置&#…...

阿里云服务迁移实战: 06-切换DNS

概述 按前面的步骤&#xff0c;所有服务迁移完毕之后&#xff0c;最后就剩下 DNS 解析修改了。 修改解析 在域名解析处&#xff0c;修改域名的解析地址即可。 如果 IP 已经过户到了新账号&#xff0c;则不需要修改解析。 何确保业务稳定 域名解析更换时&#xff0c;由于 D…...

Java实现归并排序算法

1. 归并排序原理图解 归并排序是一种分治算法&#xff0c;其核心思想是将数组分成两半&#xff0c;分别对这两半进行排序&#xff0c;然后将排序后的两半合并。以下是归并排序的步骤&#xff1a; 1. 分治&#xff1a; - 将数组分成两半。 - 递归地对每半部分进行归并排序。 2. …...

Vue 项目中运行 `npm run dev` 时发生的过程

步骤1&#xff1a;找到「任务说明书」(package.json) 当你输入 npm run dev&#xff0c;系统首先会去查项目的 「任务说明书」&#xff08;即 package.json 文件&#xff09;&#xff0c;看看 dev 这个任务具体要做什么。 示例代码&#xff08;package.json 片段&#xff09;…...

Python3(19)数据结构

在 Python 编程中&#xff0c;数据结构是组织和存储数据的重要方式&#xff0c;合理选择和使用数据结构能显著提升程序的效率和可读性。这篇博客通过丰富的代码示例深入学习 Python3 的数据结构知识&#xff0c;方便日后复习回顾。 一、列表&#xff08;List&#xff09; 1.1…...