将平滑值从Mandelbrot转换为setRGB()方法中的int []数组

时间:2014-05-11 20:28:21

标签: mandelbrot

由于我的mandelbrot生成器,我有一个双精度值列表,范围从01。这些是使用平滑算法平滑值的结果值。

我正在将它们绘制到BufferedImage,上,BufferedImage调用bi.setRGB(),我的例子看起来像这样:bi.setRGB(0, 0, width, height, myPixel, 0, width); < / p>

正如您所知,myPixel是一个int[]数组。

这是我在Mandelbrot平滑中的片段:

double nsmooth = iter + 1 - Math.log(Math.log(Math.abs(_Z.getMag()))/Math.log(2))/Math.log(2);
myPixel[ myY * width + myX ] = (nsmooth / maxIterations);

上面的第二行是从0.0到1.0(nsmooth / maxIterations)的值,但由于myPixel[]是一个int数组,我需要一些方法将它们转换为整数。将它们乘以10000+不起作用。

我的问题是,从01.0我的双打,我可以做些什么来将它们转换为setRGB可以接受的合格对象?

谢谢。

尝试2:

myPixel[ myY * width + myX ] = (int)(nsmooth / maxIterations * 500);

看起来我只投了nsmooth,这导致每个值都有0。我现在已经整行了整行,并将其乘以500倍。看起来好一点,但也许我的价值需要更大:

enter image description here

1 个答案:

答案 0 :(得分:0)

double nsmooth = iter + 1 - Math.log(Math.log(Math.abs(_Z.getMag()))/Math.log(2))/Math.log(2);

myPixel[ myY * width + myX ] = (int)(nsmooth / maxIterations * 500);

看来我遇到的问题是我将nsmooth(0到1.0小数)转换为int,这总是导致0。