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

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

  •  
  •   jianxichuang · 31 天前 · 716 次点击

    腾讯云最新优惠活动来了:云产品限时1折,云服务器低至88元/年 ,点击这里立即抢购:9i0i.cn/qcloud,更有2860元代金券免费领取,付款直接抵现金用,点击这里立即领取:9i0i.cn/qcloudquan

    (福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

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

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

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

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

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

    6 条回复
    rabbbit
        1
    rabbbit  
       31 天前   ?? 1
    近似的,求立方体包围盒 max 、min 和圆心坐标的点积
    麻烦一点的 https://developer.mozilla.org/zh-CN/docs/Games/Techniques/3D_collision_detection
    jianxichuang
        2
    jianxichuang  
    OP
       31 天前
    @rabbbit 谢谢大佬,只是算法效率低了,因为我是要填充圆球内所有小方格,小方格是密集铺开成一张网状的。而类似于链接中直接用欧式距离来算,算法复杂度比中点圆算法复杂。我在想 2d 可以用中点圆算法,那么推广到 3d 用什么算法呢。
    txstc5555
        3
    txstc5555  
       31 天前 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   ·   我们的愿景   ·   实用小工具   ·   5842 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 02:00 · PVG 10:00 · LAX 19:00 · JFK 22:00
    Developed with CodeLauncher
    ? Do have faith in what you're doing.


    http://www.vxiaotou.com