У меня есть список двойных значений в диапазоне от 0
до 1
в результате моего генератора Мандельброта. Это результирующие значения, полученные в результате использования алгоритма сглаживания для сглаживания значений.
Я сейчас рисую их на BufferedImage,
, однако BufferedImage
вызывает bi.setRGB()
, что для моего примера выглядит так: bi.setRGB(0, 0, width, height, myPixel, 0, width);
Как вы можете сказать, myPixel
— это массив int[]
.
Это мой фрагмент сглаживания Мандельброта:
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[]
— это массив целых чисел, мне нужно каким-то образом преобразовать их в целое число. Умножить их на коэффициент 10000+ не получилось.
Мой вопрос: что я могу сделать с моими двойниками от 0
до 1.0
, чтобы преобразовать их в совместимый объект, который может принять setRGB
?
Спасибо.
Попытка 2:
myPixel[ myY * width + myX ] = (int)(nsmooth / maxIterations * 500);
Похоже, я использовал только nsmooth
, что привело к 0
в каждом отдельном значении. Теперь я привел всю строку и умножил ее на коэффициент 500. Выглядит немного лучше, но, возможно, мое значение должно быть больше: