Я ищу язык или пакет на существующем языке, который хорош для указания и рисования геометрических диаграмм.
Например, я хотел бы нарисовать гексагональную сетку, наложенную на нее двойную треугольную сетку. Теперь, я мог бы сесть, положить немного жира в локоть, чтобы выработать триггер вручную и придумать некоторые Postscript или SVG, которые будут отображать такую сетку. Но мне интересно, есть ли какие-либо языки или пакеты, которые помогут мне в этом; что позволяет легко определить гексагональную сетку, найти центры и нарисовать треугольную сетку над ней.
Какой самый простой способ сделать это?
Приводятся примеры кода, показывающие, как легко создавать такие геометрически определенные диаграммы. В частности, пожалуйста, продемонстрируйте, насколько легко нарисовать гексагональную сетку; в то время как я мог бы сделать это на любом языке, рисуя все строки вручную, меня интересуют языки или пакеты, которые делают эту геометрическую диаграмму простой и понятной.
Bounty
Поскольку на этот вопрос был дан ответ, но ответ более сложный, чем я бы предпочел, я предлагаю награду человеку, который может создать самый короткий и простейший код на любом уже существующем языке и использовать любые ранее существовавшие пакет, для рисования шестиугольной сетки с двойной треугольной сеткой, наложенной поверх нее; двойная треугольная сетка - это треугольная сетка, которую вы получаете, если вы соединяете центр каждого шестиугольника с центром каждого из соседних шестиугольников. См. ответ Анталя S-Z; его пример выполняет эту работу, но я искал язык, который облегчил бы эту проблему. Вы можете либо создать сетку, которая имеет прямоугольную форму, как в его примере (нечетные строки выровнены, так и четные строки выровнены) или один в стиле Hex (каждая строка сдвигается вправо на половину гекса, образуя ромб); оба приемлемы.
Программа может принимать входные данные либо в виде функции, либо подпрограммы на языке, который занимает несколько строк и количество столбцов, или принимать входные данные в командной строке, указывающие строки и столбцы. Он должен производить вывод в любом стандартном и общем графическом формате, таком как Postscript, PDF, SVG, PNG или PNM; выход должен содержать шестнадцатеричную сетку и треугольную сетку, в каком-то контрастирующем цвете, линейном весе или стиле линии, чтобы сделать диаграмму прозрачной.
Я ищу кратчайший и самый простой ответ, как способ найти язык или пакет, который лучше всего подходит для описания этих типов диаграмм; щедрость перейдет к кратчайшей программе, которая решает проблему. Это не кодекс гольфа, поэтому я не буду рассчитывать по количеству символов или строкам кода. Если нет очевидного кратчайшего ответа, я буду измерять на основе количества токенов; сколько же токенов на вашем языке требуется, чтобы выразить эту проблему? Таким образом, читаемые константы и имена переменных, использующие функции библиотеки, комментарии, пробелы и т.п., Все в порядке, поскольку они не увеличивают количество токенов. Это еще не идеальный показатель (у Lisps будет еще несколько токенов, так как вам нужно больше скобок, чтобы разграничить ваши арифметические выражения, и я уверен, что если вы переопределяете этот показатель, вы все равно можете создать нечитаемый код), но он приблизительное руководство к тому, насколько сложным является ваш код.
Итак, задача для щедрот - создать кратчайшую программу, которая рисует шестнадцатеричную сетку с наложенной треугольной сеткой. Пожалуйста, разместите свой код, ссылки на язык и все использованные вами пакеты, приблизительный подсчет маркера, а также примерное выходное изображение. Существующий ответ - это бар, который вам нужно будет обыграть; он выполняет эту работу, но мне хотелось бы сделать что-то более короткое и простое.
Чтобы дать мне достаточно времени, чтобы посмотреть ответы и присудить награду, все ответы должны быть представлены не позднее, чем за 24 часа до крайнего срока награждения. Я могу или не могу рассматривать любые ответы, представленные менее чем за 24 часа до истечения срока.