所以我有一个非常困难的问题。
我有点想要这样的方法:
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)
如果你们中的一个能告诉我正确的实现方式和/或向我解释如何提出一个解决方案,那将是非常好的。
问候!
最佳答案
如果这是某种家庭作业,则此答案将不令人满意,但是,如果这是一个实际问题,则可以采用以下解决方法:
创建一个BufferedImage
使用Java2D API在其上绘制一个圆圈。让它努力工作。您也可以使用这种方式进行抗锯齿。
读取图像的像素值,并相应地构建数组。
关于java - 如何渲染半径为x的圆?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19757204/