由于我的mandelbrot生成器,我有一个双精度值列表,范围从0
到1
。这些是使用平滑算法平滑值的结果值。
我正在将它们绘制到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+不起作用。
我的问题是,从0
到1.0
我的双打,我可以做些什么来将它们转换为setRGB
可以接受的合格对象?
谢谢。
尝试2:
myPixel[ myY * width + myX ] = (int)(nsmooth / maxIterations * 500);
看起来我只投了nsmooth
,这导致每个值都有0
。我现在已经整行了整行,并将其乘以500倍。看起来好一点,但也许我的价值需要更大:
答案 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。