2012-03-03 20 views
10

La función de ruido Mi Perlin (que suma 6 octavas de 3D simple a 0.75 persistencia) genera una matriz de matriz 2D de double s.Distribución uniforme a partir de una función fractal de ruido Perlin en C#

Estos números salen normalizados a [-1, 1], con una media de 0. Los cierro para evitar excepciones, que creo que se deben a problemas de precisión de coma flotante, pero estoy bastante seguro de que mi factor de escala es lo suficientemente bueno para restringir la salida de ruido exactamente a este vecindario en el caso ideal.

De todos modos, eso es todo detalles. El punto es, que aquí hay una matriz de 256 por 256 de ruido:

enter image description here

El histograma con un ajuste normal, tiene el siguiente aspecto:

enter image description here

de Matlab lillietest es una función que aplica la prueba de Lilliefors para determinar si un conjunto de números proviene de una distribución normal. Mi resultado fue, repetidamente, 1, lo que significa que estos números no se distribuyen normalmente.

Me gustaría tener una función f(x) de modo que, cuando se aplica a la lista de valores de mi función de ruido, los resultados aparezcan uniformemente distribuidos.

Me gustaría que esta función sea implementable en C# y no tome minutos en ejecutarse.

Una vez más, no debería importar de dónde vienen los números (la pregunta es sobre la transformación de una distribución en otra, específicamente una normal a uniforme). Sin embargo, mi implementación de la función de ruido se basa en this y this. Puede encontrar la matriz de valores anterior here.

+0

Ese histograma se ve bastante normal, pero estás usando uniforme y normal indistintamente (no lo son). Dado el funcionamiento del ruido perlin, especialmente la continuidad, una distribución algo normal es mucho más probable que uniforme. – ssube

+0

Entonces, ¿desea distribución normal o distribución uniforme? Esos dos son completamente diferentes. – svick

+0

Quiero una distribución uniforme, por supuesto. Como pueden ver, ya estoy recibiendo uno normal. @peachykeen ¿Dónde hice eso? Además, como se dijo, la distribución no es normal según la prueba de Lilliefors. – Superbest

Respuesta

Cuestiones relacionadas