Mi chiedevo se qualcuno conosce una buona libreria per la tassellazione di un piano iperbolico con poligoni (il mio interesse principale è la tassellazione {8,3}). Ho trovato alcune applet qua e là ma la separazione della logica dalla vista è orrenda in tutte. Sarebbe perfetto se ci fosse una libreria che non si occupasse affatto di grafica (dal momento che NON sto pensando di usare Swing o creare la mia applet personale), basta prendere i parametri: {p, q} e il conteggio dei livelli, quindi restituisce una serie di linee o punti (o oggetti poligonali). Se il peggio dovesse peggiorare, dovrò implementare la mia libreria personale, quindi potrebbe anche essere utile se qualcuno sa di un documento che descrive in dettaglio l'algoritmo per la tassellatura.Libreria di tessere iperboliche Libreria Java
EDIT
A proposito, avrei dovuto detto che ho trovato un fresco-looking hyperbolic tessellations applet da Don Hatch, ma ho eccitato in un primo momento. Poi ho guardato quello che afferma di essere il source code. All'interno del JAR ho scoperto file con estensione .prejava
e non avevo assolutamente idea di cosa stavo guardando - sembrava essere un pessimo ibrido tra codice Java e C. Nel tentativo di un'ispezione più ravvicinata, fui immediatamente ricompensato con un mal di testa. Apparentemente stava cercando di ottimizzare il compilatore Java ... o almeno questo è quello che ho raccolto dal guardare il contenuto di javacpp
. Inutile dire che sono estremamente titubante a passare il mio tempo a seguire le sue istruzioni per generare i file sorgente Java usando il compilatore C, wow ...
In primo luogo, grazie per questa domanda - Ho una necessità simile. Inoltre, so che questo post è vecchio, ma volevo segnalare ai futuri lettori che ottenere il codice sorgente di Don Hatch per compilare non è così difficile. 'javacpp' è solo uno script perl che esegue il preprocessore C sui file .prejava per produrre normali file .java. Tutto quello che sta facendo è abilitare l'uso di C#defines, #ifdefs, ecc., Che sono delle belle funzionalità. (Niente a che fare con l'ottimizzazione.) Se hai 'make',' perl' e 'cpp', esegui semplicemente' make' e tutto viene compilato senza problemi. – LarsH
Tuttavia, aggiungerò che la separazione tra logica e vista potrebbe non corrispondere a ciò che ti serve. Hatch fa tutto in termini di segmenti di linea, che sono metà-lati dei poligoni piastrellati. Questi segmenti di linea non sono raggruppati in poligoni o anche in bordi di poligoni interi. Quindi, se hai bisogno di fare cose in termini di poligoni, o di "motivi" replicati (ad esempio il pesce di Escher), potresti trovare difficile ottenere dal codice di Hatch quello che ti serve. Tuttavia il suo codice sembra il più efficiente. – LarsH