realista "al azar" distribución se hace a menudo usando Perlin Noise, que puede ser solía dar una distribución con "grumos" como usted menciona. Funciona al sumar/combinar varias capas de valores linealmente interpolados de puntos de datos aleatorios. Cada capa (u "octava") tiene el doble de puntos de datos que la anterior, y se limita a un rango más estrecho de valores. El resultado es una textura aleatoria de aspecto "realista".
Aquí hay una hermosa demostración de the theory behind Perlin Noise de Hugo Elias.
Aquí está lo primero que encontré en Perlin Noise in C#.
Lo que puede hacer es generar una imagen Perlin Noise y establecer un "umbral", donde todo lo que está por encima de un valor está "encendido" y todo lo que está debajo está "apagado". Con lo que terminarás son grupos donde las cosas están por encima del umbral, que se ven irregulares e impresionantes. Simplemente asigne los que están por encima del umbral al lugar donde desea que esté su característica de terreno.
Here is a demonstration si un programa genera un mapa de bits Perlin Noise y luego ajusta el umbral de corte a lo largo del tiempo. Un claro "agrupamiento" es visible. Podría ser justo lo que querías.
Observe que, con un umbral alto, muy pocos puntos están por encima de él, y es escaso. Pero a medida que desciende el umbral, esos puntos "crecen" en grupos (por la naturaleza del ruido perlin), y algunos de estos grupos se unirán entre sí, y básicamente crearán algo muy natural y parecido al terreno.
Tenga en cuenta que también puede establecer el "factor de agrupamiento" o la tendencia de las características a agruparse, configurando la "turbulencia" de su función Perlin Noise, que básicamente causa que los picos y valles de su función PN se acentúen y más juntos.
Ahora, ¿dónde establecer el umbral? Cuanto mayor sea el umbral, menor será el porcentaje de la función en el mapa final. Cuanto menor sea el umbral, mayor será el porcentaje. Puedes jugar con ellos.Probablemente puedas obtener porcentajes exactos jugando con un poco de matemática (parece que la distribución de valores sigue un Normal Distribution; podría estar equivocado). Tweak hasta que esté apenas a la derecha :)
EDITAR Como se señaló en los comentarios, se encuentra el porcentaje exacto mediante la creación de un histograma acumulativo (índice de lo que% del mapa está bajo un umbral) y recoger el umbral eso te da el porcentaje que necesitas.
Lo más genial aquí es que puede crear características que se agrupen en ciertas otras características (como las características de su pantano) trivialmente aquí - simplemente use el mismo mapa Perlin Noise dos veces - la segunda vez, bajando el umbral. El primero será grumoso, y el segundo será agrupado alrededor de las mismas áreas, pero con los grupos agrandados (refiérase a la animación flash publicada anteriormente).
En cuanto a otras características como los setos vivos, podría tratar de modelar líneas simples random walk que tienen una mayor tendencia a ir en línea recta, y colocarlas en cualquier lugar al azar en su mapa basado en perlin.
muestras
Aquí está una baldosa de 50x50 sample Mapa Forestal. La maleza es de color marrón y los árboles son de color azul (lo siento) para dejar en claro cuál es cuál.
Sparse Forest http://img688.imageshack.us/img688/7005/forestmap.png
Para este mapa no hice umbrales exactos para que coincida con el 50%; Solo configuro el umbral al 50% del máximo. Estadísticamente, esto promediará exactamente el 50% cada vez. Pero puede no ser lo suficientemente exacto para tus propósitos; ver la nota anterior de cómo hacer esto.
Aquí es una demostración de sus características Marsh (sin incluir la maleza, para mayor claridad), con poco profundo pantano en pantano gris y profunda en la parte trasera:
Marshes http://img202.imageshack.us/img202/5092/marshdemo.png
esto es sólo 50x50, por lo hay algunos artefactos de eso, pero se puede ver con qué facilidad se puede hacer que el pantano poco profundo "crezca" desde el pantano profundo, simplemente ajustando el umbral en el mismo mapa de Perlin. Para este, miré el nivel de umbral para obtener los resultados más agradables a la vista, pero para sus propios fines, podría hacer lo que se mencionó anteriormente.
Aquí está un mapa Marsh generada desde el mismo mapa de ruido Perlin, pero en extendía a lo largo de 250x250 mapa de baldosas en su lugar:
Marshes 250x250 http://img251.imageshack.us/img251/2867/marshdemo250.png
¿Están estos mapas basados en la cuadrícula? No es claro para mí a partir de su descripción o el enlace. – academicRobot
Sí, basado en la cuadrícula, probablemente no más pequeño que 20x20 (aunque probablemente más grande, alrededor de 50x50ish?) – dlras2