Me preguntaba si alguien conoce una buena biblioteca para teselar un plano hiperbólico con polígonos (mi principal interés radica en {8,3} teselación). Encontré algunos applets aquí y allá, pero la separación de la lógica de la vista es horrenda en todos ellos. Sería perfecto si hay una biblioteca que no trata los gráficos (ya que NO estoy planeando usar Swing ni crear mi propio applet), simplemente toma los parámetros: {p, q} y el conteo de capas, luego regresa una matriz de líneas o puntos (u objetos de polígono). En el peor de los casos, tendré que implementar mi propia biblioteca, por lo que también podría ser útil si alguien conoce algún documento que describa en detalle el algoritmo para el teselado.Biblioteca de Java de teselado hiperbólico
EDITAR
Por cierto, que debería haber mencionado que me encontré con un aspecto atractivo hyperbolic tessellations applet por Don Hatch y se emocionó al principio. Luego miré lo que dice ser el source code. Dentro del JAR descubrí archivos con una extensión .prejava
y no tenía absolutamente ninguna idea de lo que estaba viendo, parecía ser un horrible híbrido entre el código Java y el código C. En un intento de una inspección más cercana fui recompensado inmediatamente con un dolor de cabeza. Aparentemente estaba tratando de optimizar el compilador de Java ... o al menos eso es lo que pude deducir al mirar los contenidos de javacpp
. Huelga decir que estoy muy indeciso para pasar el tiempo siguiendo sus instrucciones para generar los archivos fuente de Java utilizando el compilador de C, wow ...
En primer lugar, gracias por esta pregunta: tengo una necesidad similar. Además, sé que esta publicación es antigua, pero quería señalar a los futuros lectores que compilar el código fuente de Don Hatch no es tan difícil. 'javacpp' es solo un script de Perl que ejecuta el preprocesador C en los archivos .prejava para producir archivos .java normales. Todo lo que hace es habilitar el uso de C#defines, #ifdefs, etc., que son buenas características para tener. (Nada que ver con la optimización.) Si tiene 'make',' perl' y 'cpp', simplemente ejecuta' make' y todo se compila a la perfección. – LarsH
Sin embargo, agregaré que la separación entre la lógica y la vista puede no corresponderse con lo que necesita. Hatch hace todo en términos de segmentos de línea, que son medios bordes de los polígonos en mosaico. Estos segmentos de línea no están agrupados en polígonos, o incluso en bordes de polígono completos. Por lo tanto, si necesita hacer cosas en términos de polígonos o "motivos" replicados (por ejemplo, el pez de Escher), puede que le resulte difícil obtener del código de Hatch lo que necesita. Sin embargo, su código parece ser el más eficiente. – LarsH