学了一点点计算机图形学,知道画 2D 平面的圆圈用中点圆算法,效率高。
那么如何画个 3D 的球体呢?要求球体实心的,如果有球壳算法也可以。
主要为了解决:在笛卡尔坐标系(三维的)划分很多个小的立方体小网格,需要知道在这个坐标系下的 3D 球体,和哪些立方体网格重叠?
所以想到找到这些重叠网格,和图形学填充颜色很像。
想知道有哪些高效率的算法,或者论文链接,谢谢各位大佬不吝赐教。
1
rabbbit 239 天前 1
近似的,求立方体包围盒 max 、min 和圆心坐标的点积
麻烦一点的 https://developer.mozilla.org/zh-CN/docs/Games/Techniques/3D_collision_detection |
2
jianxichuang OP @rabbbit 谢谢大佬,只是算法效率低了,因为我是要填充圆球内所有小方格,小方格是密集铺开成一张网状的。而类似于链接中直接用欧式距离来算,算法复杂度比中点圆算法复杂。我在想 2d 可以用中点圆算法,那么推广到 3d 用什么算法呢。
|
3
txstc5555 239 天前 via iPhone
这难道不是知道圆心和半径就行的事吗
|
6
jianxichuang OP @txstc5555 是的,但是算法效率有所不同,你可以搜一下在 2D 情况下进行画圆的算法“中点圆算法”。网上没找到 3D 方案,目前我将其推广到了 3D ,应用在论文中的一部分。
|