2012-09-08 38 views
14

¡Hecho! Mira en la parte inferior de la publicación!Desafío de programación: ¿La forma más fácil de codificar esta cuadrícula?

Las personas inteligentes del mundo ...

estoy tratando de llegar a esta cuadrícula utilizando Procesamiento (Java), pero estoy teniendo problemas para averiguar la forma más inteligente de evitar esto. Básicamente, podría trazar cada punto en la sección de repetición, pero estoy seguro de que hay una mejor manera de evitarlo.

grid

Cualquier algoritmo y el lenguaje van a hacer. Solo necesito ver el concepto.

EDITAR

actualiza con una imagen del logotipo. Esto básicamente muestra cómo necesito capacidad de "saber" qué áreas son vecinos, con el fin de crear una forma generativa de la red:

logo

EDIT 2

La rejilla se llama "cuadrícula ocho veces cuasi periódica" del diseñador.

EDITAR 3

Bueno, eso era más difícil de lo que pensaba. He progresado mucho, y aquí puede encontrar el código: https://gist.github.com/3682600

Tengo la subdivisión funcionando perfectamente para ambas formas, sin embargo, cuando comienzo la recursión, ocurre algo raro. Este es mi salida en este momento:

test

Cualquier ayuda se agradece!

Editar 4

Vale, esto se está convirtiendo en una tarea épica. Descubrí que el problema surge cuando la recursividad se vuelve demasiado profunda. O es un problema con la rotación de los elementos, o es otra cosa que no puedo entender. De todos modos, aquí está el boceto de trabajo que tengo ahora:

working

Editar 5

lo hice! Había estropeado las rotaciones de los cubos, lo cual lo estropeó todo. Lo cambié y está funcionando: https://gist.github.com/3682600. Puede haber demasiadas cosas allí, pero está funcionando. Prueba:

leve1 level2 level3

+1

¿Y cuál es el nombre particular de esta cuadrícula? ¿Cómo se define? ¿Cuáles son sus características? – orlp

+0

¿No está procesando para JS, no para Java? – Blender

+0

@nightcracker: esa sería una respuesta a la pregunta :) – valdo

Respuesta

3

Si este es de hecho el Ammann-Beenker tiling @ n.m. mencionado en his comment, entonces sería más fácil codificar esto usando las reglas de sustitución provistas. Comience con un mosaico arbitrario y reemplácelo con fichas más pequeñas hasta que tenga un número suficiente de fichas para su propósito. Tenga en cuenta que las reglas de sustitución aparentemente tratan con medias plazas orientadas.

+0

Tengo problemas para leer estas reglas de sustitución. ¿Cuáles son exactamente las primeras formas que estoy dibujando? Tener problemas para encontrar literatura sobre esto. – Ronze

+0

@Ronze: comienzas con * cualquier * mosaico o combinación de mosaicos. Si desea la simetría de 8 pliegues, puede comenzar con 8 rombos dispuestos alrededor de un punto. Si lo quieres simple, toma solo uno. Luego subdividimos cada tesela de acuerdo con las reglas. Encontrarás mucha literatura sobre [pendientes de Penrose] (https://en.wikipedia.org/wiki/Penrose_tiling), estoy seguro. Esos pueden construirse usando sustituciones también, por lo que el concepto es más o menos el mismo. – MvG

+0

¡Ah, eso tiene sentido! Increíble. Publicaré los resultados aquí en unas pocas horas. – Ronze

4

No estoy seguro de que habrá una manera fácil, empecé a buscar una sección repetida pero es cuasi-periódica, o casi repetitivo.

enter image description here

Es obvio que es simétrica a través de las líneas de color verde, pero los patrones marcados en azul no parecen realmente para mostrar el patrón de lo que la red se vería ampliado más lejos del centro. Sin embargo, podría estar equivocado.

Cuestiones relacionadas