【问题标题】:Topology, scaling拓扑、缩放
【发布时间】:2011-03-29 13:43:26
【问题描述】:

假设有一个 2D 平面(正方形),里面有一些点。

如何移动所有点,使它们尽可能均匀地填充平面,但每个点都保持其邻居?

换句话说,我希望这些点彼此尽可能远,但它们的位置(拓扑)应该被保留并且它们应该位于正方形中。

换句话说,我想放大富点人口的区域并缩小空白区域。

PS:对于高维空间有没有通用的解决方案?有直接解决方案还是只有迭代解决方案?

【问题讨论】:

    标签: 2d scaling topology


    【解决方案1】:

    一个好的建议是Lloyd's algorithm。但是,您要求的“邻居保留”属性不清楚。

    但是,如果您要问的是以下内容:

    给定一个图 (V, E),其中 V 由 [0,1]^2 和 E 的点是 段,没有两个段' 内部相交(即我们有一个 平面图)尽可能均匀地移动点,保留 平面属性

    那么劳埃德算法就可以了。

    除此之外: 概括不是根据空间点所在的位置,而是根据您对点的要求的密度(例如,您可能需要对 R^n 进行高斯测量)。

    【讨论】:

      【解决方案2】:

      这是一个可能的策略的草图。

      在您的原始点集 P 中,从正方形的边界添加一些点(至少是正方形的顶点)。点应该从边界均匀采样,如果原来有n个点,应该至少有√n个额外的点从边界采样。称此增广集为 Q。

      然后做一个 Q 的Delaunay Triangulation。我们将在下一步中使用这个三角剖分的边。

      现在执行least squares minimization 来找到 P 中的点的位置(保持 Q-P 中的点固定),使边长的平方和最小化。

      你可以通过求解一个矩阵表达式来解决这个最小化问题,所以这是一个“直接解决方案”。

      最小二乘问题的解决方案倾向于使边的长度相等。所以小边会变大,大边会变小。这将产生更均匀分布点的效果,同时保留它们的拓扑。

      这很容易推广到更高的维度。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-10-11
        • 2011-08-19
        • 2023-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多