【发布时间】:2015-06-03 01:24:59
【问题描述】:
简化代码:
public static void main(String[]args) throws Exception {
BufferedImage img = new BufferedImage(512, 512, BufferedImage.TYPE_INT_ARGB);
for (int i = 0; i < 512; i++) {
for (int j = 0; j < 512; j++) {
if (complex.getInfinite()) {
Color newcol = new Color(100, 0, 0);
img.setRGB(i, j, newcol.getRGB());
}
if (complex.getInfinite() == false) {
Color newcol = new Color(0, 0, 100);
img.setRGB(i, j, newcol.getRGB());
}
}
}
saveImage(img, new File("Julia.jpg"));
}
我的问题是,当我运行程序时,Julia.jpg 是一个全黑的图像。
我玩过我着色的像素数量,只有我着色的像素变黑。
我想知道问题是否在于我在生成图像时输入了错误的类型。
【问题讨论】:
-
你为什么要检查
if (complex.getInfinite()),然后是if (complex.getInfinite() == false)? -
complex是什么? -
complex 是复数类 Complex 的一个实例。这个想法是为 julia 分形创建一个图像,其中 x 维是实数值,y 维是虚数元素。如果输入的坐标旋转到无穷大(当插入 f(z) = z^2 + c 进行 255 次迭代时),则 getInfinity() 返回 True。
-
你能展示一些相关的“复杂”代码吗?您包含的代码应该是最少的,但仍然是完整的。给定当前代码,很难看出为什么所有像素都是黑色的。
-
我“怀疑”你的
if条件都不满足