【问题标题】:I want to find the Centroidal Voronoi Tessallation我想找到 Centroidal Voronoi Tessellation
【发布时间】:2015-06-24 05:52:09
【问题描述】:

我想找到 Centroidal Voronoi 但我一​​直很困惑。例如,假设我有两个向量

X=[1 2 1.1 1.3 1.4 1.5 1.3 1.2 1.8 2.1 2.2]; and 
Y=[1.5 1.3 1.5 1.8 1.4 1.6 2.5 2.3 2.4 1.1 1.8]; 

我使用命令 voronoi(X,Y) 来获得图表(见附件)。我怎样才能根据劳埃德算法进行质心 Voronoi 镶嵌?我在网上找到了劳埃德算法:

while generating points xi not converged to centroids do
  Compute the Voronoi diagram of xi
  Compute the centroids Ci using equation (1)
  Move each generating point xi to its centroid Ci
end while

但我不明白我必须做什么才能编写代码并在 matlab 中获取 Centroidal Voronoi。请问有什么想法或替代方案吗?

【问题讨论】:

  • “见附件”?

标签: matlab voronoi


【解决方案1】:

为什么不试试CVT Centroidal Voronoi Tessellations

你可以找到源代码和几个例子,它有matlab,fortranc++源代码

本文来自原文

CVT 是一个创建 Centroidal Voronoi Tessellation 的 MATLAB 库 (CVT) 数据集。

CVT 数据集的生成必然比 为一个拟随机序列。涉及迭代,所以必须有 生成器的初始分配,然后是一些 迭代。此外,在每次迭代中,必须对 Voronoi 细胞的体积和位置。这通常由 蒙特卡罗抽样。生成的 CVT 的精度取决于 部分关于采样点数和迭代次数 采取了。

该库主要用于生成统一的点数据集 分布在单位超正方形中。但是,用户可能感兴趣 在与其他几何形状或点密度的计算中。去做这个, 用户需要替换 CVT 库中的 USER 例程,并且 然后指定适当的值 init=3 和 sample=3。

USER 例程从区域返回一组样本点 兴趣。默认的 USER 例程从 单位圆。但其他几何形状很容易设置。改变 点密度只需要对区域中的采样进行加权。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-31
    • 2013-10-01
    • 2014-06-30
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多