Défi:
Dessinez Sri Yantra .
Comment:
Il existe différentes façons de le dessiner. Tous comprennent de nombreuses étapes. Si vous pensez pouvoir le dessiner sans suivre les étapes liées, faites défiler ci-dessous les éléments que vous devez avoir dans votre dessin .
Les étapes complètes peuvent être trouvées ici:
http://www.saralhindi.com/Shri_Yantra/manciesky14steps_eng.htm
( Je ne les ai pas copiés ici car cela deviendrait une très longue question , voici le miroir archieve.org au cas où le premier lien tomberait )
L'image finale devrait ressembler à l'image ci-dessous:
Doit avoir:
Fondamentalement, toute méthode de dessin de votre choix serait une réponse valable à condition de conserver les éléments les plus importants
Le nombre de triangles doit être le même que dans l'image ci-dessus (43 triangles plus petits résultent de l'entrelacement des 9 plus grands triangles)
Ces triples intersections sont respectées:
Les pointes des triangles vers le haut touchent les bases des 4 triangles vers le bas et les pointes des triangles vers le bas doivent toucher les bases des 3 triangles vers le haut comme indiqué sur la figure ci-dessous.
Le cercle intérieur (bindu) est concentrique avec le cercle extérieur.
Les pointes (sommets) des plus grands triangles doivent toucher le cercle extérieur:
L'image finale devrait avoir tous les éléments et devrait généralement ressembler à:
La couleur doit être à peu près la même que l'image ci-dessus pour chaque élément (y compris les pétales).
La forme des pétales devrait de préférence ressembler à peu près à l'image ci-dessous, mais peut également être uniquement des demi-cercles ou une simple section d'arc de cercle:
Il n'y a pas de restrictions strictes de proportion aux cercles ou à la taille des portes, mais le cercle le plus extérieur devrait avoir le diamètre d'au moins 90% du côté du carré extérieur, les autres éléments seraient disposés respectivement par rapport à ces proportions.
Langages de programmation et résultats
Il n'y a aucune restriction au langage de programmation ni au format du résultat (il peut s'agir d'une image vectorielle, d'une image bitmap, d'un canevas, etc.) à condition que le résultat soit relativement clair et perceptible (au moins 800px X 800px)
Dernier montage: Il n'y a pas de méthode parfaite de dessin car ce blog les explore si bien: http://fotthewuk.livejournal.com/ En tenant compte de cela, les défauts mineurs seront tolérés.
À ce stade, c'est un exercice intéressant d'apprendre qu'il est très probable qu'il n'y a pas de solution parfaite, tout comme la quadrature du cercle.
la source
Réponses:
Mathematica -
28362536 caractèresC'était un peu vertigineux de comprendre les combinaisons de régions qui permettent de colorier de petits triangles.
Le cadre
Les objets de cadre sont des inégalités qui se décrivent comme des régions. Par exemple, les festons rouge et jaune sont deux régions de cercles.
Ensuite, il y a un disque pour cacher certains cercles qui ont été utilisés pour faire le festonnage.
Les entrailles
Quelques définitions des sommets et triangles. Chaque triangle, t1, t2, ... est une région distincte. Les opérations logiques (
RegionUnion
.RegionIntersection
EtRegionDifference
) sur les grands triangles sont utilisées pour définir des cellules triangulaires plus petites en tant que régions dérivées pouvant être colorées individuellement.Assembler les pièces
Golfé
la source
Delphi [Travail en cours]
Celui-ci est vraiment difficile ..
Jusqu'à présent, je n'ai que le cercle intérieur avec les triangles et mon code est énorme.
Je n'ai pas encore compté les personnages, je sais que je peux économiser beaucoup sur les espaces blancs, etc.
Pour commencer
J'ai fait une classe TD T est un préfixe de classe par défaut non obligatoire mais il est facile de voir sa classe, D signifie Draw.
J'ai aussi fait un
TP
type, non, pas parce que ce sont mes initiales mais c'est plus court queTPoint
et j'ai pensé que j'utiliserais beaucoup de points.La propriété
C
est le point central du canevas.procédures:
StartDrawing
(encore à renommer) déclenche toutes les fonctions de dessin pour moi.tr
fait que tous les triangles du cercle (y compris le cercle lui-même)ft
colorieront tous les triangles.J'ai également fait quelques constantes pour vrai et faux, offset et la taille du cercle.
Fonctions et procédures
Q
retournera le point où 2 lignes se croisent / se croisent.Il existe de nombreuses fonctions / procédures imbriquées. Je n'ai pas envie de tous les expliquer mais si vous vous demandez ce que vous faites, vous pouvez toujours demander.
Classe complète
Résultat jusqu'à présent: (Oui je sais que les lignes ne sont pas parfaites partout. Je ne trouve pas le problème :()
Je ne sais pas pourquoi mais les triangles ne montrent pas leurs contours. Ils le font sur mon bmp enregistré cependant.
la source