V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
jianxichuang
V2EX  ›  问与答

求高效率的画球体的算法或论文链接

  •  
  •   jianxichuang · 30 天前 · 715 次点击

    学了一点点计算机图形学,知道画 2D 平面的圆圈用中点圆算法,效率高。

    那么如何画个 3D 的球体呢?要求球体实心的,如果有球壳算法也可以。

    主要为了解决:在笛卡尔坐标系(三维的)划分很多个小的立方体小网格,需要知道在这个坐标系下的 3D 球体,和哪些立方体网格重叠?

    所以想到找到这些重叠网格,和图形学填充颜色很像。

    想知道有哪些高效率的算法,或者论文链接,谢谢各位大佬不吝赐教。

    6 条回复
    rabbbit
        1
    rabbbit  
       30 天前   ❤️ 1
    近似的,求立方体包围盒 max 、min 和圆心坐标的点积
    麻烦一点的 https://developer.mozilla.org/zh-CN/docs/Games/Techniques/3D_collision_detection
    jianxichuang
        2
    jianxichuang  
    OP
       30 天前
    @rabbbit 谢谢大佬,只是算法效率低了,因为我是要填充圆球内所有小方格,小方格是密集铺开成一张网状的。而类似于链接中直接用欧式距离来算,算法复杂度比中点圆算法复杂。我在想 2d 可以用中点圆算法,那么推广到 3d 用什么算法呢。
    txstc5555
        3
    txstc5555  
       30 天前 via iPhone
    这难道不是知道圆心和半径就行的事吗
    lambdaq
        4
    lambdaq  
       30 天前
    @txstc5555 捉。
    txstc5555
        5
    txstc5555  
       30 天前 via iPhone
    @lambdaq
    jianxichuang
        6
    jianxichuang  
    OP
       28 天前
    @txstc5555 是的,但是算法效率有所不同,你可以搜一下在 2D 情况下进行画圆的算法“中点圆算法”。网上没找到 3D 方案,目前我将其推广到了 3D ,应用在论文中的一部分。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2690 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 296ms · UTC 11:37 · PVG 19:37 · LAX 04:37 · JFK 07:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.