Равномерное распределение из фрактальной функции шума Перлина в C #

Моя функция шума Перлина (которая складывает 6 октав трехмерного симплекса с постоянством 0,75) генерирует массив двумерных массивов двойной s.

Каждое из этих чисел нормализовано до [-1, 1] со средним значением 0. Я ограничиваю их, чтобы избежать исключений, которые, как мне кажется, связаны с проблемами точности с плавающей запятой, но я почти уверен, что мой коэффициент масштабирования равен в идеальном случае достаточно хорошо, чтобы ограничить выход шума именно этой окрестностью.

В общем, это все подробности.Дело в том, что вот массив шума 256 на 256:

enter image description here

Гистограмма с нормальным соответствием выглядит следующим образом:

enter image description here

Matlab's lillietest - это функция, которая применяет тест Лиллиеорса для определения если набор чисел происходит из нормального распределения. Мой результат неоднократно был равен 1, что означает, что эти числа не распределяются нормально.

Мне нужна функция f (x) , чтобы при применении к списку значений из моей функции шума результаты казались равномерно распределенными.

Я бы хотел, чтобы эта функция была реализована на C # и не занимала минуты на выполнение.

Опять же, не должно иметь значения, откуда берутся числа (речь идет о преобразовании одного распределения в другое, в частности, нормального в однородное). Тем не менее, моя реализация функции шума основана на this и this . Вы можете найти приведенный выше массив значений здесь .

10
задан Superbest 3 March 2012 в 21:03
поделиться