如何渲染半径为x的圆?

时间:2013-11-03 19:42:21

标签: java graphics rendering geometry

所以我遇到了一个非常困难的问题。

我想要一个像这样的方法:

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)

如果你们中的一个人能够向我展示正确的实施方式和/或向我解释我如何能够提出一个方案,那将是非常好的。 问候!

1 个答案:

答案 0 :(得分:1)

如果这是某种功课,那么这个答案就不会令人满意,但如果这是一个真正的问题,那么解决方法如下:

  1. 创建BufferedImage
  2. 使用Java2D API在其上渲染一个圆圈。让它做起来很辛苦。你也可以这样使用抗锯齿。
  3. 读取图像的像素值,并相应地构建阵列。