Вызов:
Нарисуй Шри Янтра .
Как:
Есть разные способы нарисовать это. Все включают много шагов. Если вы думаете, что можете нарисовать его, не следуя связанным шагам, прокрутите ниже список элементов, которые вы должны иметь на своем чертеже .
Полные шаги можно найти здесь:
http://www.saralhindi.com/Shri_Yantra/makingsky14steps_eng.htm
( Я не копировал их здесь, потому что это стало бы очень длинным вопросом , вот зеркало archieve.org на случай, если первая ссылка когда-либо выйдет из строя )
Окончательная картинка должна выглядеть как на картинке ниже:
Должен иметь:
В принципе, любой метод рисования по вашему выбору будет правильным ответом, если вы сохраните самые важные элементы.
Количество треугольников должно быть таким же, как на рисунке выше (43 меньших треугольника возникли в результате чередования 9 больших треугольников)
Это тройные пересечения соблюдаются:
Концы восходящих треугольников касаются оснований 4 нисходящих треугольников, а кончики нижних треугольников должны касаться оснований 3 верхних треугольников, как показано на рисунке ниже.
Внутренний круг (бинду) является концентрическим с внешним кругом.
Концы (вершины) больших треугольников должны касаться внешнего круга:
Конечное изображение должно иметь все элементы и в целом должно выглядеть так:
Цвет должен быть примерно таким же, как на изображении выше для каждого элемента (включая лепестки).
Форма лепестков предпочтительно должна выглядеть примерно так, как показано на рисунке ниже, но также может быть просто полукругом или простой дугой сечения круга:
Не существует строгих ограничений на пропорции окружностей или размеров ворот, но самый наружный круг должен иметь диаметр не менее 90% от стороны внешнего квадрата, остальные элементы будут соответственно расположены относительно этих пропорций.
Языки программирования и результаты
Нет ограничений ни по языку программирования, ни по формату результата (это может быть как векторное изображение, растровое изображение, холст и т. Д.), При условии, что результат является относительно четким и различимым (по крайней мере, 800px X 800px)
Последнее редактирование: не существует идеального метода рисования, так как этот блог так хорошо исследует их: http://fotthewuk.livejournal.com/ Принимая это во внимание, небольшие ошибки будут допущены.
На этом этапе очень интересно узнать, что весьма вероятно, что не существует идеального решения, такого как возведение в квадрат круга.
источник
Ответы:
Mathematica -
28362536 символовБыло немного головокружительно выяснять комбинации областей, которые делают маленькие треугольники доступными для окраски.
Рама
Каркасные объекты - это неравенства, которые описываются как регионы. Например, красный и желтый гребешки - две области кругов.
Тогда есть диск, чтобы скрыть некоторые круги, которые использовались, чтобы сделать гребешок.
Иннардс
Некоторые определения вершин и треугольников. Каждый треугольник t1, t2, ... является отдельной областью. Логические операции (
RegionUnion
.RegionIntersection
, ИRegionDifference
) с большими треугольниками используются для определения меньших треугольных ячеек как производных областей, которые могут быть окрашены в индивидуальный цвет.Соединение частей
Golfed
источник
Delphi [Работа в процессе]
Это действительно сложно.
Пока все, что у меня есть, это внутренний круг с треугольниками, и мой код огромен.
Еще не посчитали персонажей, я знаю, что могу сэкономить на пробелах и т. Д.
Начать с
Я сделал класс TD T префиксом класса по умолчанию, не обязательным, но он позволяет легко увидеть его класс, D обозначает Draw.
Я также сделал
TP
шрифт, нет, не потому, что это мои инициалы, но он короче,TPoint
и я решил, что буду использовать много точек.свойство
C
является центральной точкой холста.процедуры:
StartDrawing
(пока не переименован) запускает все функции рисования для меня.tr
делает все треугольники в круге (включая сам круг)ft
будет окрашивать все треугольники.Я также сделал несколько констант для истинного и ложного, смещения и размера круга.
Функции и процедуры
Q
вернет точку, где 2 линии пересекаются / пересекаются.Есть много вложенных функций / процедур. Я не хочу объяснять их все, но если вам интересно, что же вы делаете, вы всегда можете спросить.
Завершить урок
Результат до сих пор: (Да, я знаю, что линии не везде идеальны. Не могу найти проблему :()
Не знаю почему, но треугольники не показывают свои очертания. Они отображаются на моем сохраненном bmp.
источник