【问题标题】:Distribute points evenly on a unit hemisphere在单位半球上均匀分布点
【发布时间】:2015-12-16 13:21:52
【问题描述】:

为了在单位球面上均匀分布点,answer 使用了保持恒定表面积的斐波那契螺旋线。

现在是否可以使用类似的方法在单位半球上均匀分布点而不拒绝点?取绝对值如

cos_theta = abs(((i * offset) - 1) + (offset / 2))

不起作用,因为它似乎成对聚集点。

【问题讨论】:

  • 参见sphere triangulation 只需用它的一半初始化网格。链接的问答还提供了解决此问题的其他方法...
  • @Spektre 球体三角测量也是我考虑过的一个选项,它更容易推理,但对球体进行细分的开销似乎更大
  • 还有 2 个链接 (stackoverflow.com/a/25031737/2521214) 与您的方法不同,但没有螺旋利用球坐标和圆圆周...

标签: algorithm geometry sampling


【解决方案1】:

y 值通过for 循环从-1+1/samples 循环到1-1/samples

for i in range(samples):
    y = ((i * offset) - 1) + (offset / 2)

您想从0+1/samples 循环到1-1/samples。只需跳过第一个 sample/2 迭代:

for i in range(samples / 2, samples):
    y = ((i * offset) - 1) + (offset / 2)

当然,现在稍微重写一下表达式会更简洁,这样您就可以再次从0 循环到samples',但这应该是进行更多重构的良好起点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-24
    • 2010-10-19
    • 1970-01-01
    • 1970-01-01
    • 2013-03-30
    • 2021-07-20
    • 2019-06-13
    • 2021-09-12
    相关资源
    最近更新 更多