|
Программирование
On-line приложения
Почитать
Web-сервер Apache
Печать и форматирование
MySQL
Разные рецепты
Сборка/установка
Справки
Философия
Мой опыт
Скачать
Программы на Tcl/Tk (GUI)
Программы на Python/Tk (GUI)
Программы (CLI)
Help
Хобби
Фракталы
on-line
Язык для рисования фракталов
Гиперкуб
Теория относительности
Ампуллярии
Преподавание
Студенту/абитуриенту
Мой опыт
Автора!
|
Описание FactЗдесь приведено полное и исчерпывающее описание всех встроенных возможностей Fact. Оно немного суховато. Вы можете сперва прочитать неформальное введение с примерами и рисунками. Общее описаниеЯзык Fact предназначен для визуализации итерационных фракталов и L-систем. Скачать интерпретатор вы можете здесь. СинтаксисКомментарииКомментарии начинаются с символа Токены (слова)Программа состоит из слов, разделённых любыми пробельными символами. Слово может быть названием операции, именем переменной или числовым значением. Регистр букв в токенах важен. Токены В качестве аргументов процедур могут использоваться константы или переменные. Простые командыКоманды (далее я так же использую слова директивы, инструкции, процедуры) это последовательности токенов. Первый токен — имя операции — всегда однозначно определяет количество токенов в команде (поэтому в разделителях команд нет необходимости). Имена операций всегда записывают маленькими буквами. БлокиБлоки команд начинаются с соответствующих инструкций (см. ниже)
и заканчиваются словом local repeat 5 ... end end ИменаПространства имён переменных и подпрограмм разделены. То есть вы можете создать переменную и подпрограмму с одинаковыми именами. Это не приведёт к конфликтам. Так же в качестве имён могу использоваться имена операций и даже числа. Управление параметрами визуализацииcolorcolor <r> <g> <b> Команда устанавливает цвет, которым будут отрисовываться линии. Команда принимает три параметра, задающих насыщенность красного, зелёного и синего цветов, соответственно. Насыщенность изменяется от нуля до единицы. Если указана насыщенность больше единицы или меньше нуля, то она принимается равной единице или нулю, соответственно. bgcolorbgcolor <r> <g> <b> Аналогична инструкции widthwidth <w> Устанавливает толщину линии в единицах текущей системы координат (см. ниже). updateupdate Инструкция не принимает никаких параметров. Она вызывает отображение промежуточного результата. По умолчанию программа сперва выполняет все построения, а потом
отображает результат. Если вы хотите видеть процесс
построения, используйте команду Преобразования системы координатВсе измерения длин, расстояний и толщин выполняются относительно текущей системы координат. Изначально система координат расположена так: ось x направлена вдоль нижней грани области отображения, ось y направлена вдоль левой грани. Начало координат находится в левом-нижнем углу. Единица измерения равна стороне области отображения. Таким образом координаты углов области отображения имеют следующие значения:
drawdraw <dx> <dy> Перемещает систему координат на При перемещении вычерчивается линия. Толщина линии
задаётся директивой jumpjump <dx> <dy> Аналогична scalescale <k> Масштабирует систему координат. Единица измерения
текущей системы координат умножается на rightright <a> Поворачивает систему координат на leftleft <a> Аналогична Переменныеsetset <name> <val> Присваивает переменной с именем Имена переменных могут быть любыми. В качестве имён
можно использовать названия операций (например Теоретически, имя переменной может быть даже числом, но трудно представить веские основания для такого именования переменных. Просмотреть текущие значения переменных позволяет
команда Операции с числамиaddadd <name> <val> Прибавляет к значению переменной mulmul <name> <val> Умножает значение переменной Циклыrepeatrepeat <n> ... end Повторяет Подпрограммыdefdef <name> ... end Объявляет подпрограмму (макрос) с именем Подпрограмма должна быть определена до первого вызова. Рекурсивный вызов допускается. callcall <name> Вызывает подпрограмму с именем Условные переходыif, elseif <v1> <op> <v2> ... end if <v1> <op> <v2> ... else ... end Оператор проверяет условие и выполняет соответствующий блок.
Операнды Если выражение Локализация контекстаlocallocal ... end Все изменения переменных и преобразования системы
координат, произведённые внутри блока Обратите внимание, что изменения цвета и толщины линий остаются в силе за пределами блока. Если вам необходимо локализовать и эти параметры, то используйте для их настройки переменные. savesave ... end Эта инструкция аналогична transformtransform ... end Противоположность Отладкаstopstop Оператор Его удобно использовать для отладки. Слово |
|
|
|