【问题标题】:uniform generation of points on 3D box在 3D 盒子上统一生成点
【发布时间】:2010-04-19 22:46:16
【问题描述】:

我想在由 (minx, miny, minz) 和 (maxx, maxy, maxz) 角定义的 3D 框上生成随机点。我正在考虑在盒子内生成一个随机点,然后以某种方式将其投影到盒子的一侧。但是,我没有盒子侧面的明确平面信息,这似乎不会产生点的均匀分布,因为如果盒子的某些侧面比其他侧面大,那么这些侧面应该会产生更多的点。

欢迎提出任何建议。

谢谢。

【问题讨论】:

    标签: opengl 3d geometry trigonometry particles


    【解决方案1】:
    1. 随机选择一侧weighted by it's areaspare linkthis one ...)
    2. 在该侧放置一个从均匀分布中随机选择的点
    3. 起泡、冲洗、重复。

    或交替

    1. 决定点的密度
    2. 用一组具有该密度的随机点依次填充每一侧

    它更均匀(即不那么随机),但只要密度足够高,每边都有多个点,看起来就会很好

    【讨论】:

    • 感谢您的帮助。这似乎在盒子的面上生成点,忽略边缘和顶点。关于如何合并边和顶点的任何提示?
    • @Myx:“在”边和顶点只占可用区域的很小一部分(在实点的限制中是无穷小,但对于“点”来说是有限的),所以随机散射不会打击他们很多。确保您生成的数据超出了图的 inclusive 限制。即确保如果长度为l,则0l 都被允许在PRNG 中。如果您真的想要勾勒出图形的轮廓,请分别放置“边缘”点。为此,您需要不同的密度。
    • 由于某种原因,当我实施该方案时,点在 4 个边上随机生成,但在其中 2 个边上(它们也是相对的边,即顶部和底部),点仅从面部中心沿法线向上生成。知道可能出了什么问题吗?
    • 如果是我的代码,我会怀疑 键盘和椅子之间的错误。仔细查看您为这些面设置随机限制所使用的逻辑。 (鉴于您有一个长方体,我假设您对两者都使用相同的代码,对吗?)如果必须(调试器或手动)跟踪执行。
    猜你喜欢
    • 2011-02-10
    • 2017-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-27
    相关资源
    最近更新 更多