2008-08-07 35 views
14

¿Existe alguna forma trivial, o al menos moderada, de generar mapas territoriales (por ejemplo, Riesgo)?Territory Map Generation

Miré en el pasado y lo mejor que pude encontrar fueron vagas referencias a los diagramas de Voronoi. Un ejemplo de un diagrama de Voronoi es este:

here http://www.dma.fi.upm.es/mabellanas/tfcs/fvd/images/voronoi.gif.

Estos son prometedores, pero supongo que no he visto ninguna manera directa de renderizar estos, y mucho menos mantenerlos en alguna forma de estructura de datos para tratar cada territorio como un objeto.

Otro enfoque que es prometedor es el llenado de inundaciones, pero de nuevo no estoy seguro de la mejor manera de comenzar con este enfoque.

Cualquier consejo sería muy apreciado.

Respuesta

7

La mejor referencia que he visto en ellos es Computational Geometry: Algorithms and Applications, que cubre los diagramas de Voronoi, triangulaciones de Delaunay (similares a los diagramas de Voronoi y cada uno se puede transformar en el otro), y otras estructuras de datos similares.

Hablan de todas las estructuras de datos que necesita pero no le dan el código necesario para implementarlo (lo cual puede ser un buen ejercicio). En términos de código, una búsqueda de Amazon muestra el libro Computational Geometry in C, que presumiblemente viene con el código (aunque ya que estás atrapado en C, te molestaría obtener el otro e implementarlo en el idioma que quieras). Tampoco tengo ninguna experiencia con este libro, solo el primero.

¡Disculpa por tener solo libros para recomendar! El único recurso en línea decente que he visto en ellos son los dos Wikipedia , que en realidad no indican los detalles de la implementación. This link puede ser útil sin embargo.

3

¿Por qué no utilizar un mapa de primitivas (triángulos, cuadrados), distribuir los puntos de partida de los países (las "mayúsculas") y luego expandir aleatoriamente los países agregando una primitiva aleatoria adyacente al país.

2

CGAL es una biblioteca de C++ que tiene estructuras de datos y algoritmos utilizados en Computational Geometry.

2

En realidad, estoy tratando exactamente con este tipo de cosas para los videojuegos de mi empresa. La información más útil que he encontrado se encuentra en estos dos enlaces:

Paul Bourke en UWA, con su documento de 1989 sobre Delaunay y una serie de enlaces de implementación.

A great explanation of the psudocode and a visual de hacer Delaunay en codeGuru.com.

En términos de representación de estos: la mayoría de las implementaciones que he encontrado necesitarán un masaje para obtener lo que desea, pero dado que usar esto para un mapa del juego daría lugar a una cantidad de puntos más líneas entre ellos, podría ser una cuestión muy simple de hacer resaltar esto en la pantalla.