【问题标题】:Circular grid of uniform density密度均匀的圆形网格
【发布时间】:2016-07-11 18:47:03
【问题描述】:

如何生成圆形网格,由具有均匀面积/顶点均匀分布的瓷砖组成?

我需要在程序的每一帧将拉普拉斯算子应用于网格。

使用由矩形块组成的矩形网格很容易应用拉普拉斯算子,矩形块的位置以笛卡尔坐标指定,因为对于 (i,j) 处的块,我知道其相邻块的位置为 (i-1, j)、(i,j-1)、(i+1,j) 和 (i,j+1)。

虽然我想使用极坐标,但我不确定查询图块的邻域是否会那么容易。

我正在使用 OpenGL,可以渲染三角形或点。三角形似乎更有效(并且具有填充顶点之间区域的良好效果),但似乎更适合笛卡尔坐标。也许我可以渲染点然后极坐标就可以正常工作?

另一个问题是瓷砖的密度。我希望在此网格表面上传播的波无论是否位于中心都具有相同的分辨率。

因此,两个主要问题是:生成网格的方式便于查询图块的邻域,以及保持图块的均匀密度分布。

【问题讨论】:

  • 什么是“圆形网格”?

标签: c++ opengl


【解决方案1】:

我认为你要求的是不可能的事情。

但是,this 是一种将规则的方形二维网格重新映射为圆形的技术,其变形量相对较低。它可能足以解决您的问题。

【讨论】:

    【解决方案2】:

    您可能想看看this paper,它是为示例球体编写的,但您可能可以将其调整为圆形。

    【讨论】:

      【解决方案3】:

      一个选项可以是使用具有恒定角度步长但径向步长不同的极坐标网格,以便所有单元格具有相同的面积,即 (R+dR)²-R²=Cst,将 dR 作为 R 的函数.

      您可能希望通过不时更改单元的数量(例如通过加倍)来减少各向异性(一些单元变得非常细长)。这将在网格中引入奇点,即具有五个顶点而不是四个顶点的单元格。

      查看https://mathematica.stackexchange.com/questions/78806/ndsolve-and-fem-support-for-non-conformal-meshes-of-a-disk-with-kernel-crash中的数字

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-19
        • 2012-05-13
        • 1970-01-01
        • 1970-01-01
        • 2013-06-21
        • 1970-01-01
        相关资源
        最近更新 更多