0

所以我遇到了一个相当困难的问题。

我有点想要这样的方法:

public Color[][] createCircle(Color c, int d)
{
    Color[][] Data = new Color[d][d];
    //fillColorArrayForCircle(Data); 
    return Data;
}

在理论上,此方法将直径 d 的圆(未填充)渲染为 2D 颜色数组,然后将其返回。(圆圈的所有部分都是颜色 C,其余部分为空。圆圈的中心位于 [d-(d-1)/2]²)但是我不知道,如何确定“像素”需要。

我还查了http://en.wikipedia.org/wiki/Midpoint_circle_algorithm但是我不明白。(非常复杂的imo)

如果你们中的一个可以向我展示正确的实现和/或向我解释我如何想出一个,那将是非常好的。问候!

4

1 回答 1

1

如果这是某种家庭作业,那么这个答案将不能令人满意,但如果这是一个真正的问题,那么解决方法如下:

  1. 创建一个缓冲图像
  2. 使用 Java2D API 在其上渲染一个圆圈。让它做艰苦的工作。您也可以采用这种方式进行抗锯齿。
  3. 读取图像的像素值,并相应地构建您的数组。
于 2013-11-03T22:15:54.470 回答