Desafío:
Dibuja a Sri Yantra .
Cómo:
Hay diferentes formas de dibujarlo. Todos incluyen muchos pasos. Si cree que puede dibujarlo sin seguir los pasos vinculados, desplácese a continuación para ver los elementos que debe tener en su dibujo .
Los pasos completos se pueden encontrar aquí:
http://www.saralhindi.com/Shri_Yantra/makingsky14steps_eng.htm
( No los copié aquí porque sería una pregunta muy larga , aquí está archieve.org mirror en caso de que el primer enlace se caiga )
La imagen final debe verse como la imagen a continuación:
Debe tener:
Básicamente, cualquier método de dibujo de su elección sería una respuesta válida siempre que mantenga los elementos más importantes.
El número de triángulos debe ser el mismo que en la imagen de arriba (43 triángulos más pequeños resultaron del entrelazado de los 9 triángulos más grandes)
Estas triples intersecciones se respetan:
Las puntas de los triángulos hacia arriba tocan las bases de los 4 triángulos hacia abajo y las puntas de los triángulos hacia abajo deben tocar las bases de los 3 triángulos hacia arriba como se muestra en la figura a continuación.
El círculo interno (bindu) es concéntrico con el círculo externo.
Las puntas (vértices) de los triángulos más grandes deben tocar el círculo exterior:
La imagen final debe tener todos los elementos y generalmente debe verse así:
El color debe ser aproximadamente el mismo que la imagen de arriba para cada elemento (incluidos los pétalos).
La forma de los pétalos preferiblemente debe verse más o menos como en la imagen de abajo, pero también puede ser solo semicírculos o una sección de círculo simple:
No hay restricciones de proporción estrictas para los círculos o el tamaño de las puertas, pero el círculo más externo debe tener un diámetro no menor al 90% del lado del cuadrado externo, los otros elementos se organizarían respectivamente en relación con estas proporciones.
Lenguajes de programación y resultados
No hay restricciones en el lenguaje de programación ni en el formato del resultado (puede ser una imagen vectorial, una imagen de mapa de bits, un lienzo, etc.) siempre que el resultado sea relativamente claro y discernible (al menos 800px X 800px)
Última edición: no existe un método perfecto para dibujar, ya que este blog los explora tan bien: http://fotthewuk.livejournal.com/ Teniendo eso en cuenta, se tolerarán fallas menores.
En este punto, es un ejercicio interesante aprender que es muy probable que no haya una solución perfecta, como la cuadratura del círculo.
fuente
Respuestas:
Mathematica -
28362536 caracteresFue un poco vertiginoso descubrir los combos de regiones que hacen pequeños triángulos disponibles para colorear.
El marco
Los objetos de marco son desigualdades que se describen como regiones. Por ejemplo, las vieiras rojas y amarillas son dos regiones de círculos.
Luego hay un disco para ocultar algunos círculos que se usaron para hacer el festoneado.
Las tripas
Algunas definiciones de vértices y triángulos. Cada triángulo, t1, t2, ... es una región distinta. Las operaciones lógicas (
RegionUnion
.RegionIntersection
YRegionDifference
) en triángulos grandes se utilizan para definir celdas triangulares más pequeñas como regiones derivadas que pueden colorearse individualmente.Poniendo las partes juntas
Golfed
fuente
Delphi [Trabajo en progreso]
Este es realmente difícil ...
Hasta ahora todo lo que tengo es el círculo interno con los triángulos y mi código es enorme.
Todavía no he contado los caracteres, sé que puedo ahorrar mucho en espacios en blanco, etc.
Para empezar
Hice una clase TD T es un prefijo de clase predeterminado no obligatorio pero hace que sea fácil ver que es una clase, D significa Draw.
También hice un
TP
tipo, no, ya que son mis iniciales pero son más cortasTPoint
y pensé que usaría muchos puntos.La propiedad
C
es el punto central del lienzo.procedimientos:
StartDrawing
(aún no se ha cambiado el nombre) activa todas las funciones de dibujo para mí.tr
hace que todos los triángulos del círculo (incluido el círculo mismo)ft
coloreen todos los triángulos.También hice algunas constantes para verdadero y falso, desplazamiento y el tamaño del círculo.
Funciones y procedimientos.
Q
devolverá el punto donde 2 líneas se cruzan / intersectan.Hay muchas funciones / procedimientos anidados. No tengo ganas de explicarlos a todos, pero si te preguntas qué hace, siempre puedes preguntar.
Clase completa
Resultado hasta ahora: (Sí, sé que las líneas no son perfectas en todas partes. No puedo encontrar el problema :()
No sé por qué, pero los triángulos no muestran sus contornos. Sin embargo, lo hacen en mi bmp guardado.
fuente