Sethian (1996) 引入的 Fast Marching 算法是一种数值算法,能够捕捉 Eikonal 方程 |grad(D)|=P 的粘度解。 水平集 {x \ F(x)=t} 可以看作是一个以速度 P(x) 前进的前沿。 得到的函数 D 是一个距离函数,如果速度 P 是常数,它可以看作是到一组起点的距离函数。 Fast Marching 与 Dijkstra 算法非常相似,它在图上找到最短路径。 使用距离函数 D 的梯度下降,可以在各种设置(P 常数的欧几里德,以及 P 变化的加权黎曼流形)中提取最短路径(测地线)的良好近似。 关于 Fast Marching 算法的主要参考书是计算几何、流体力学、计算机视觉和材料科学中不断发展的接口的水平集方法和快速行进方法JA Sethian,剑桥大学出版社,1999 剑桥应用和计算数学专着可以在 3D 中快速行进以及一些应用程序的良好评
2024-03-13 10:36:18 5.4MB matlab
1
等值面提取 使用Marching Cubes算法提取等值面。 仅使用纯WebGL。 需要和 。 (C)2014大卫·莱蒂埃
2023-02-04 20:36:23 426KB javascript gamedev webgl opengl
1
Marching_Cubes算法原理。根据体数据提取等值面~
2022-11-05 22:26:42 69KB MC
1
IOS应用源码之cdave1-marching-fd223df.zip
2022-06-22 13:07:02 51KB IOS应用源码
前n条最短路算法matlab源代码资料来源 这是Mitchell,Mount和Papadimitriou于1987年首次描述的用于三角形网格(三角表面)的测地线(最短路径)算法的实现,[1]进行了一些小的改进,扩展和简化。 该算法具有O(n ^ 2 log n)最坏情况下的时间复杂度,但实际上可以在合理的时间内处理百万个节点的网格。 有关快速概述,请参见[2]。 该算法的基本思想与Dijkstra的用于在加权图上找到最短路径的算法非常相似。 它包括两个步骤: 来自源的距离场在网格表面上的传播(缓慢) 追溯从目标点到最近源的最短路径(快速) 为了进行调试和比较,我还实现了两种近似算法 Dijkstra在图上由网格的顶点和边缘创建的最短路径 细分(在网格的每个边缘上放置N个附加顶点,直接连接属于同一面的所有顶点,在结果图上运行Dijkstra)细分算法的一个不错的特性是,当N = 0时,它变为Dijkstra并计算出精确的距离当N->无穷大时。 输入网格表示为两个数组:顶点(每个顶点具有树坐标)和面(每个面表示为其顶点的索引)。 与算法的大多数通信是通过SurfacePoints(网格表面
2022-05-05 20:19:27 292KB 系统开源
1
MCExample MCExample marching cubes marching cubes marching cubes
2022-03-28 10:26:34 403KB MCExample marching cubes
1
快速行进法 最简单形式的快速行进方法(FMM)可用于计算单调扩展接口在网格单元处的到达时间。 此方法的一种应用是将接口的速度设置为能够计算距离场的速度,其中将距离接口最近的距离分配给网格中的每个像元。 该存储库包含任意尺寸(实际上是两个或多个)的FMM实现,尽管典型用法很可能是2D或3D。 该代码被设计为易于合并到现有项目中,并且其健壮性已被优先于速度优化。 该存储库中的所有代码均根据。 如果您有任何意见或建议,请随时提出请求。 本说明分为两个主要部分。 首先,我们提供了有关如何使用代码以及其他实际细节(例如运行附带的测试)的示例。 此后,我们将参考相关文献描述实施过程中做出的技术选择。 用法 本节介绍如何使用此存储库中提供的FMM实现。 首先,我们提供一些有关如何调用这些方法的示例,以及一些与有效输入有关的讨论。 此后,我们给出了有关如何运行附带测试的说明。 请注意,测试代码本身内还有
2022-03-14 20:21:31 2.68MB C++
1
简单易懂讲解Marching Cubes算法,基于OpenGL,可以显示三维的标量场,动画讲解,可以直接复制到VS直接运行。
2022-02-13 13:53:55 33KB Marching cubes
1
该代码可以完美的对基于某一阈值的二维切片进行三维重建,代码已经对Marching cubes算法的歧义性进行了处理,代码经过测试,并且已经用于公司产品。
2021-10-25 14:12:15 1.39MB marching cubes 三维重建
1
PyTorch中的行进多维数据集 用于PyTorch环境的行进多维数据集。 后端是使用C ++和CUDA实现的。 当前,CUDA代码仅适用于具有2的幂的大小的网格单元(例如32、64、128,...)。 如果您希望使用非2的幂的代码,请在使用零之前用零填充以使尺寸成为2的幂。 有关详情,请参见 。 建造 $ python setup.py build_ext -i 用法 有关详细信息,请参见 。 import numpy as np import open3d as o3d import torch from mcubes import marching_cubes , grid_interp # Grid data N = 128 x , y , z = np . mgrid [: N , : N , : N ] x = ( x / N ). astype ( 'float32'
2021-10-14 09:36:02 218KB C++
1