Bresenham的三维圆算法?

时间:2012-03-20 15:47:20

标签: algorithm math

所以我试图用离散的“块”绘制一个球体。我需要用整数来完成。因此,我试图回避三角函数。 Bresenham的圆形算法是目前唯一对我来说合理的东西,但我想不出一种方法可以让它在三个维度上工作。

我也希望这也适用于椭圆体。

另外,出于好奇,我想知道,这个算法怎么能在N维中工作?显然没有任何实际用途(至少我可以想到),但无论如何我很好奇。

1 个答案:

答案 0 :(得分:1)

您可能需要在图层中绘制球体。对于半径为R的球体,以CX,CY,CZ为中心,最底部的块将位于CX,CY,(CZ-R)。当您向上一步时,测试[PX + 1,PX,PX-1],[PY + 1,PY,PY-1],PZ + 1(此处,“P”表示“Plotted”以查看哪一个最接近CX,CY,CZ的距离R.

对于每个单独的图层,我可能会使用CX,CY,CZ的(3D)距离,因为它稍微简单一些。还可以利用相当多的对称性来减少所需的计算次数。