Основные сведения о системе Симплекс и ее интерфейс

Система Симплекс является компьютерным инструментальным средством для автоматизации решения задач конструктивного геометрического моделирования. Она предназначается для синтеза геометро-графических конструкций, представляющих собой набор взаимосвязанных геометрических построений. В системе Симплекс такие конструкции могут действовать как преобразователи информации (геометрические машины).

Система позволяет автоматизировать выполнение многих трудоемких чертежно-графических и вычислительных операций, которые при решении геометрических задач на построение обычно реализуются с применением обычных чертежных инструментов. Кроме этого система позволяет реализовывать такие построения, выполнение которые с помощью обычных чертежных инструментов затруднительно, а порой и невозможно. Тем самым перед специалистом в области конструктивной геометрии открываются принципиально новые возможности, достижение которых ранее без соответственной информационной поддержки было практически невозможно. Система Симплекс расширяет и арсенал геометрических инструментов, и области применения геометрических методов к различным сферам научно-практической деятельности человека, позволяет создать условия для быстрого воплощения теоретических разработок в геометрической науке в реальные практические приложения.

В отличие от процедур традиционного черчения, основной целью которого является создание статичного графического документа, геометрическая конструкция, представляемая средствами системы Симплекс, способна проявлять реакцию на изменения позиционных и метрических соотношений составляющих такую конструкцию объектов. В таком контексте чертеж, создаваемый в системе Симплекс, становится визуальным воплощением неявно синтезируемой компьютерной программы. Способность геометрической конструкции изменять свое состояние под воздействием внешних факторов и возвращать результат в визуально-графической форме, позволяет рассматривать такую конструкцию как действующую геометрическую модель - преобразователь информации. Модели подобного рода называют конструктивными моделями или иначе - геометрическими машинами.

Синтез геометрической модели осуществляется путем задания функциональных взаимосвязей (отношений) между всеми составляющими эту модель объектами. Основной способ ввода в систему отношений - диалог пользователя с вычислительной машиной через визуально-графический интерфейс.

Каждое вводимое отношение задает определенное преобразование, устанавливая функциональную связь между входными и выходными параметрами этого отношения. В качестве параметров отношений выступают именованные геометрические объекты различных типов.

В действующей версии системы Симплекс предопределены следующие типы объектов:

Тип объекта Условное обозначение типа Примечание
Величина c Величина может принимать вещественные и комплексные значения.
Точка p

Точка может располагаться на вещественной или комплексной проективной плоскости;

точки могут быть как собственными, так и несобственными (бесконечно-удаленными).

Прямая линия o Прямые могут быть вещественными и мнимыми. Помимо собственных прямых линий на плоскости в системе Симплекс определена единственная несобственная прямая (обозначение - iline).
Вектор v
Окружность d Окружности могут быть вещественными и мнимыми, иметь вещественные или мнимые центр и радиус.
Коника y
Контур w
Кривая Безье z
Сплайн s
Логическая величина g
Размерная линия f выполняет функции, предназначенные для отображения метрических характеристик объектов. Объект является носителем значения объекта-величины и может заменять его в программе
Текст t
Шкала h
Бинарное поле b
Проективное преобразование l Проективное преобразование, определенное в точечных рядах и/или линейных пучках на плоскости
Связь u
Коллинеация k Проективное преобразование плоскости, переводящее точки в точки, прямые линии в прямые линии, коники в коники
NIL-объект $ (объект с неопределенным значением; NIL - объект замещает собой любой объект, который в результате выполнения функции становится неопределенным. Необходимость использования такого объекта обусловлена, в частности, требованием соблюдения порядка решений, получаемых в результате выполнения операций над согласованными друг с другом множествами данных).
Разрыв списка break !
Набор данных &
Квартика q
Объект минус первой размерности 1
Объект минус второй размерности 2
Трехмерное тело j
Производный x В системе Симплекс возможно создание объектов производных типов на основе объектов предопределенных типов, а также других ранее определенных производных типов.
Точка в трехмерном пространстве n

Реализацию геометрического построения в системе Симплекс следует понимать как неявное создание компьютерной программы, способной преобразовывать информацию в соответствии с алгоритмом, установленными этим построением. Такое преобразование определяется взаимодействием объектов, связанных геометрическим построением, и реализуется в результате целенаправленного воздействия на программу путем изменения позиционных, структурных и логических характеристик этих объектов.

В системе Симплекс геометрическая задача оформляется в виде проекта, объединяющего в себе всю информацию, необходимую для достижения решения поставленной задачи. Иными словами, проект - это набор геометрических построений (алгоритмов), имеющих самостоятельное и законченное смысловое содержание. Каждый алгоритм проекта является самостоятельным преобразователем информации.

Проект системы Симплекс создается пользователем, либо формируется автоматически в результате выполнения логических программ. При любом изменении проекта алгоритмы, составляющие его, немедленно исполняются внутренними вычислительным механизмами системы, обеспечивая тем самым функционирование алгоритмов, как преобразователей информации. Для будущего использования или модификации проект сохраняется на носителях информации в файлах с расширением .SPX. Название проекта соответствует имени файла.

За любым алгоритмом в проекте закрепляется индивидуальное имя. Проект не может содержать в себе два или более алгоритмов с одинаковыми в именами.

Алгоритм служит контейнером, объединяющим в себе набор операций (отношений), которые в совокупности обеспечивают получение требуемого результата - преобразования алгоритмом исходных данных в выходные данные (искомые). Алгоритм также содержит перечень геометрических объектов с их значениями, которые рассчитываются в результате исполнения связанных между собой элементарных геометрических операций. Поэтому алгоритм можно понимать как действующую программу или исполняемый код, осуществляющий операции над множеством входных и промежуточных данных.

Алгоритм может быть как отдельным несвязанным ни с чем-либо другим преобразователем, так и находиться во взаимодействии с другими алгоритмами проекта. Если решение сложной геометрической задачи предполагает многократное выполнение серий однотипных взаимосвязанных операций, то такие действия целесообразно реализовать в отдельном алгоритме, который впоследствии можно будет использовать в качестве единой обобщенной операции в других алгоритмах проекта. Такое взаимодействие обеспечивается путем определения в алгоритме входных и выходных параметров, обеспечивающих передачу данных в алгоритм извне и выдачу преобразованной информации из себя в обращающиеся к нему алгоритмы. Поэтому любой алгоритм системы Симплекс предполагает указание перечня тех его внутренних объектов, которые будут осуществлять передачу через себя внешних по отношению к алгоритму данных. Пользователь должен объявить такие объекты входными параметрами алгоритма. По аналогии, определенная часть объектов алгоритма объявляется выходными параметрами, которые обеспечивают передачу данных, полученных в результате расчета, из алгоритма в обращающийся к нему алгоритм. Действие, устанавливающее перечень и порядок следования входных и выходных объектов, носит название объявления входных и выходных параметров алгоритма. Алгоритм, не предполагающий взаимодействия с другими алгоритмами, может быть создан без объявления каких-либо параметров.

Как уже было сказано ранее, алгоритм содержит в себе перечень операций (отношений) над объектами, в результате совместного действия которых алгоритм осуществляет преобразование информации. При наличии каких-либо изменений в составе отношений алгоритма, алгоритм должен совершить вычислительную работу для того, чтобы обеспечить корректность значений составляющих его объектов. Любое однократное внешнее воздействие на алгоритм, вызывающее любое изменение состава его отношений, влечет за собой однократное выполнение его вычислительной работы.

Отношение представляет собой элементарный преобразователь информации входных данных отношения в выходные. Будем называть простым отношением такой преобразователь информации, внутренняя структура которого недоступна для анализа. В силу невозможности определения внутренней структуры простого отношения, будем считать что каждый выходной параметр такого отношения непременно является зависимым от всех его входных параметров. Поэтому получение выходных значений преобразования в таком отношении возможно лишь в том случае, если известны (подготовлены) все входные параметры этого отношения. Только при этих обстоятельствах простое отношение способно совершить вычислительную работу, причем такая работа выполняется за одно обращение к отношению, после чего отношение в алгоритме считается рассчитанным и повторный его расчет не допускается. Если же условие готовности входных данных в простом отношении не обеспечивается, то исполнительная подсистема Симплекса не осуществляет вычислительную работу такого отношения, само отношение при этом считается нерассчитанным, равно как нерассчитанными будут и все его выходные объекты.

Исполнение в алгоритме вычислительной работы хотя бы одного отношения означает, что в результате этого действия образовались объекты с новыми значениями. Это событие может также означать, что отношения, нерассчитанные ранее по причине недостатка состава входных параметров, возможно, теперь могут быть рассчитаны, если состав их входных параметров пополнился и оказался достаточным для того, чтобы совершить вычислительную работу. Поэтому нерассчитанные ранее отношения алгоритма вновь подвергаются проверке на возможность выполнения вычислительной работы. И, если условие возможности совершения расчета удовлетворяется, то такое отношение совершает вычислительную работу и помечается как рассчитанное. Вычислительная работа алгоритма прекращается в том случае, если в ответ на выполнение вычислительной работы каким-либо отношением ни одно из оставшихся в алгоритме нерассчитанных отношений не смогло более выполнить собственную вычислительную работу. В этом случае можно говорить о том, что алгоритм совершил окончательное преобразование информации.

Любой объект, участвующий в геометрическом построении, обладает значением, отличающим его от иных объектов того же или другого типа. Значения объектов хранятся в переменных, являющихся принадлежностью алгоритма, т.е. переменные в алгоритмах системы Симплекс локальны. Каждая переменная в алгоритме именована и уникальна в его пределах, т.е. двух переменных с одинаковыми именами в алгоритме быть не может. Описанный выше вычислительный механизм в совокупности с условием объявления уникального объекта только в одном отношении позволяют формировать программу, порядок следования команд в которой не влияет на результат работы алгоритма. В отличие от типовых методов реализации программ посредством текстовых языков программирования, программа в системе Симплекс может быть сформирована в "бестекстовом" режиме посредством применения интерактивных визуально-графических средств. В этом случае пользователь оказывается освобожденным от размышлений над тем, в каком порядке исполняются команды программы и в каком месте текста этой программы должны быть помещены необходимые команды.

Переменная может рассматриваться как именованный контейнер, в который помещаются значения объекта произвольного типа в результате выполнения вычислительной работы отношением, в котором эта переменная была указана в качестве выходного параметра. Вообще говоря, результат вычислительной работы практически любого отношения может зависеть от ряда факторов, которые будут рассмотрены в дальнейшем. Сейчас только отметим, что в зависимости от результата воздействия этих факторов переменная может получить значение (при этом такое значение может быть определенным или неопределенным), или не получить такого значения вовсе (тогда переменная считается нерассчитанной). Такие разновидности значений переменных определены в системе Симплекс для обеспечения определенных качеств и удобств визуально-графического исполнения геометрического построения на разных этапах его функционирования алгоритмов, их завершенности и целостности. Количество различных переменных в алгоритме принципиально ничем не ограничивается. Алгоритм может существовать и без единой переменной (например, в момент своего создания).

В процессе создания геометрической модели разработчик алгоритма может именовать переменные самостоятельно, т.е. закреплять за геометрическим объектом то или иное имя, обозначающего и отличающего его от иных объектов той же задачи. Однако в ряде случаев, в особенности при составлении больших программ, а также при необходимости создания вспомогательных с точки зрения общих рассуждений дополнительных построений, ручное именование переменных может оказаться фактором, отвлекающим разработчика алгоритма от основного дела - следования логике решения задачи. Поэтому в системе предусмотрено автоматическое именование переменных, не отвлекающее пользователя на несущественные действия, в частности, на ручное именование переменных. Всякий раз при формировании очередного отношения система генерирует новые, несовпадающие с уже ранее введенными в алгоритм, имена переменных. При необходимости в дальнейшем закрепить за какими-либо объектами определенное смысловое содержание, их имена могут быть легко заменены на другие, осмысленные или выразительные. Для облегчения смыслового соотнесения автоматически сгенерированного имени с типом объекта, значение которого будет храниться в переменной, система добавляет в качестве префикса имени, символ или группу символов, характеризующего ожидаемый тип выходного объекта, после чего добавляет к этому префиксу очередной свободный порядковый номер. Так, например, отношения, которые сгенерируют точку, в имени выходных объектов будут получать в качестве прификса символ "p", для линии - "o", для окружности - "d" и т.п.. Поэтому генерируемые имена будут выглядеть, например, так: "p1", "o22", "d15". При необходимости префиксы также можно заменить на другие, воспользовавшись предназначенными для этого средствами настройки системы. Как правило, простые отношения, входящие в функциональный состав системы Симплекс, передают через выходные параметры строго определенный тип данных. Однако при автоматизации процессов геометрического моделирования это правило нельзя делать жестким, ограничивающим возможности системы, поскольку принципы геометрического моделирования непременно допускают замены объектов одного типа объектами другого типа. Здесь же следует обратить внимание на то, что возможны и такие ситуации, при которых тип объекта, возникающего в результате работы алгоритма, определить на этапе создания алгоритма невозможно. Поэтому жестко увязывать принцип именования переменных с типом хранящихся в них объектов, вообще говоря - некорректно.

Синтаксис имен в системе Симплекс подчинен следующим правилам. Первым символом имени должна быть буква или символ подчеркивания (как и в обычных языках программирования). В качестве букв допускаются символы латинского и русского алфавитов. Прописные и строчные символы различаются. Это сделано для расширения пространства кратких имен, которых в больших построениях не хватает, в то время как длинные имена в традиционной геометрии, в отличие от программирования, используются крайне редко. Начиная со второго символа, могут использоваться цифры и знак апострофа для обозначения штриха. Указание в качестве первого символа знака доллара $ переводит систему в режим отображения греческих букв, которые кодируются с клавиатуры соответственными латинскими символами. Греческие и латинские символы в одном имени перемежаться не могут. Также в систему недавно добавлена возможность формирования имен с верхними и нижними индексами. При наличии в имени переменной символа % следующие за ним символы отображаются в надстрочном индексе. Следующий знак % переводит отображение символов имени в подстрочный индекс. Индексы могут быть символьными или цифровыми в любых комбинациях. Допускаются индексы в греческой нотации (без перемежения с другими шрифтами). При необходимости указания только подстрочного индекса, в имени должна следовать комбинация символов %%. Формирование этих нотаций, вообще говоря, осуществляется автоматически через соответственные поля в диалоговых панелях, поэтому пользователю, в основном, нет особой необходимости заботиться о правилах формирования таких нотаций.

Перечень префиксов имен, принятых в системе по умолчанию, представлен следующим списком:

1. Величина - c.
2. Точка - p.
3. Прямая линия - o.
4. Вектор - v.
5. Окружность - d.
6. Коника - y.
7. Контур - w.
8. Кривая Безье - z.
9. Сплайн - s.
10. Логическая величина - g.
11. Размерные линии - f.
12. Текстовый объект - t.
13. Шкала - h.
14. Бинарное поле - b.
15. Коллинеация - ksi.
16. Проективитет - pr.
17. Связь - u.
18. Твердотельная модель - j.
19. Квартика - q.

Для объектов, тип которых заранее неизвестен применяется префикс list.

В производных объектах в качестве префикса имени переменной используется название типа производного объекта.

Некоторые имена в системе Симплекс закреплены за часто используемыми константами и служебными объектами. Использование таких имен для порождения новых объектов не допускается. Таковыми являются следующие имена:

nil – объект с неопределенным значением;
iline – бесконечно-удаленная прямая;
true – значение логической величины «истина»;
false – значение логической величины «ложь»;
break - значение «разрыв последовательности»;
ox - обозначение оси координат ox;
oy - обозначение оси координат oy;
null - символьное обозначение числа 0;
rect - символьное обозначение числа 90;
pi - символьное обозначение числа 3.1415...

Установка и запуск программы

Система Симплекс - компактный геометрический процессор, представленный автономным загрузочным файлом spw.exe. Поэтому для него не требуется какая-либо специальная установка. Программа содержится в файле Spw.exe, который можно разместить в выделенной папке на диске компьютера, например, D:/Simplex/Spw.exe. Для быстрого запуска программы на рабочем столе следует создать ярлык используя для этого стандартные средства системы Windows. Иконка вызова программы имеет следующий вид: .

Рабочее пространство программы

Рабочее поле программы можно условно разделить на семь рабочих областей (рис. 1):

1. Главное меню системы.

В этом меню содержится большинство команд, управляющих процессом формирования проекта системы Симплекс.

2. Панель для вызова операций чтения и записи проекта на носители информации, операций обмена данными, средств управления процессом синтеза внутренней программы.

Панель содержит следующие инструменты:

Кнопка создания нового проекта. Новый проект изначально получает имя Untitled. Впоследствии имя проекта можно изменить, сохранив его командой Сохранить как... в файл с желаемым названием.

Кнопка открытия ранее сохраненного на носителе информации проекта системы Симплекс. Файл выбирается из списка, представленного в соответственном диалоговом окне.

Кнопка сохранения текущего проекта. Сохранение будет выполнено, если в проекте были произведены какие-либо изменения. Сохранение производится в тот файл, имя которого было указано при чтении проекта с носителя информации. В том случае, если проект является новым, то ему по умолчанию присваивается имя Untitled.

Кнопка вызова подсистемы вывода графической информации на печатающее устройство.

Кнопка, активизирующая подсистему переноса информации о части геометрического построения, соотнесенного с выделенными в данный момент геометрическими объектами, в буфер Clipboard. Переносимая информация изымается из текущего проекта.

Кнопка, активизирующая подсистему копирования информации о части геометрического построения, соотнесенного с выделенными в данный момент геометрическими объектами, в буфер Clipboard.

Кнопка, осуществляющая вставку информации о геометрической информации, занесенной ранее в буфер Clipboard, в текущий проект.

Кнопка, активизирующая подсистему импорта информации в проект системы Симплекс.

Кнопка, активизирующая подсистему экспорта информации из проект системы Симплекс через файловые форматы обмена данными между приложениями.

Кнопка возврата к предыдущему состоянию алгоритма по отношению к последнему изменению состоянию алгоритма. Команда эквивалентна команде, вызываемой клавиатурным сокращением Ctrl+Z.

Кнопка возврата к предыдущему отмененному состоянию алгоритма. Команда эквивалентна команде, вызываемой клавиатурным сокращением Ctrl+Y.

Кнопка создания новых окон реализации алгоритма и ассоциации алгоритмов проекта с этими окнами.

Кнопка предназначена для создания нового производного объектного класса. Выполняет вызов подсистемы создания объектов со сложной структурой и реализующих взаимодействие этих объектов с подобными или иными объектами путем создания функций-методов, ассоциированных с данным классом.

Кнопка связывания алгоритмов текущего проекта системы Симплекс с данными, полученными в других ранее сохраненных проектах. Применение данного инструмента целесообразно в случае реализации сложных проектов системы Симплекс, допускающих сегментацию на законченные самостоятельные программные единицы, выходные данные которых могут служить входными данными других проектов.

- Кнопка "быстрого" исполнения целевых утверждений логической подсистемы. Применяется для активации логических программ, выполняющих запрограммированные на языке Prolog алгоритмы и действия, расширяющие функциональные и интерфейсные возможности системы за счет создания в ней пользовательских средств управления.

3. Многостраничная панель вызова диалоговых окон, предназначенных для формирования функциональных зависимостей между объектами геометрических построений (отношений). Любая из страниц содержит набор кнопок, каждая из которых предназначена для формирования отношения конкретного вида, отвечающего за выполнение определенной функции. Распределение отношений по страницам панели выполнено, в основном, исходя из соблюдения принципа общности типов, порождаемых отношением объектов.

4. Панель для изменения визуальных атрибутов объектов (задание цвета объекта, типа, стиля начертания линии и т.п.).

5. Панель вызова наиболее употребительных функций и режимов интерактивного воздействия на объекты через изображение геометрической модели:

Указатель, предназначенный для выбора и выделения объектов.

Шейпер - инструмент, предназначенный для интерактивного воздействия на объекты чертежа с целью изменения их позиционных и метрических характеристик (выполнение динамического редактирования геометрической модели);

Инструмент-линза, предназначенный для увеличения масштаба или задания границ увеличиваемой области посредством растягивания прямоугольной рамки;

Инструмент Линза-Corel, предназначенный для задания границ области отображения чертежа при его передаче в систему CorelDraw!.

Габаритная рамка задается посредством очерчивания курсором области в окне реализации алгоритма, в которую пользователь желает включить фрагмент документируемого чертежа.

При предварительном удержании клавиши Shift перед нажатием на кнопку вызова инструмента выделяется область, соответствующая границам окна реализации алгоритма.

При предварительном удержании клавиши Ctrl перед нажатием на кнопку вызова инструмента выделяется область, соответствующая пределам размещения всех собственных точек чертежа, видимых в активном слое.

При предварительном одновременном удержании клавиши Ctrl и Shift перед нажатием на кнопку вызова инструмента выделяется область, соответствующая габаритным пределам размещения всех объектов чертежа, имеющих фактические габариты и видимых в активном слое.

Растягивание рамки с одновременным удержанием Ctrl и Shift помимо определения области отображения приводит к формированию геометрической конструкции, определяющей габаритный контур, который включается в общий алгоритм построения. Контур может быть настроен курсором-шейпером путем перемещения горизонтальных и вертикальных прямых, задающих его расположение на чертеже. Контур позволяет расширять граничную область произвольным образом за счет учета в габаритах его граничных точек при использовании инструмента Линза-Corel с одновременным удержанием клавиши Ctrl.

При предварительном одновременном удержании клавиши Ctrl и Alt перед нажатием на кнопку вызова инструмента производится изменение типа формируемой габаритной рамки с предварительным расчетам масштаба для вертикальное расположения листа запечатываемой бумаги на горизонтальный и обратно. Область, предназначенная для вертикального расположения окрашивается светло-серым цветом, для горизонтального - светло желтым.

Нажатие на кнопку с одновременным удержанием клавиш Ctrl,Shift и Alt приводит к образованию в алгоритме четырех отрезков, соответствующих границам границ области отображения чертежа, которые размещаются в слое frames. Имена отрезков образуются от ключевого префикса frm. Все четыре отрезка включаются в состав группы, имя которой образуется от ключевого префикса corel.

Инструмент, предназначенный для интерактивного ввода единичных или множественных свободных точек, а также рисования "свободной" кривой линии-сплайна;

При удержании клавиши Shift во время выбора инструмента система переходит в режим добавления точек с выделением. Предшествующее выделение при этом не снимается.

При вводе очередной точки с одновременно нажатой клавишей Ctrl на экране появляется диалоговое окно для ввода текста, который будет располагаться рядом с точкой (несколько выше и правее нее).

Перемещение курсора с нажатой левой кнопкой мыши приводит к заданию сплайна на множестве одноименных точек, образующихся во время передвижения курсора.

Инструмент предназначен для интерактивного размещения точек с одной степенью свободы на линейных объектах (точек, инцидентных с этими объектами); Перекрестие курсора должно быть наведено на предполагаемое место "прикрепления" точки к линейному объекту, после чего следует нажать на левую кнопку мыши. Режим назначения инцидентных точек сопровождается временным отображением линейных объектов как бесконечных. После выхода из этого режима атрибутные ограничения, ранее предписанные объектам, автоматически восстанавливаются.

Если на линейном объекте выделена точка, то применение инструмента в отношении того же линейного объекта, на котором она располагается, приведет к построению новой точки, принадлежащей тому же объекту. При этом генерируется функция, задающая положение новой точки приращением параметра к значению параметра принадлежности той точки, относительно которой она строится. При удержании нажатой клавиши Shift выполняется построение двух точек с положительным и отрицательным значением приращения, определяемым позицией курсора над линейным объектом.

Инструмент предназначен для интерактивного ввода свободных окружностей;

При нажатии клавиши Shift во время выбора инструмента система переходит в режим добавления окружностей с их последующим выделением. Предшествующее выделение при этом не снимается.

Формирование окружности при нажатой клавише Alt приводит к "диаметральному" способу задания окружности. В этом режиме за первую диаметральную точку принимается позиция курсора, соответствующая началу перетаскивания курсора, а за конечную - текущее положение курсора во время отпускания левой кнопки мыши.

Инструмент предназначен для интерактивного ввода свободных прямых линий; При удержании клавиши Shift во время выбора инструмента система переходит в режим добавления линий с их последующим выделением. Предшествующее выделение при этом не снимается.

При удержании клавиши Ctrl во время выбора инструмента при наличии единственного выделенного объекта система переходит в режим ввода свободной прямой, которой будет присвоено имя выделенного объекта. Данный режим позволяет оперативно переопределять положение заранее выделенной прямой линии.

При удержании клавиши Shift во время перемещения курсора с нажатой левой кнопкой мыши происходит задание линии с инцидентными точками. В настоящее время количество точек (3). Команда будет согласована с числовым показателем размерности модели.

При удержании клавиши Ctrl во время перемещения курсора с нажатой левой кнопкой мыши происходит задание горизонтальной или вертикальной прямой линии. Конкретный вид линии зависит от близости текущего положение курсора инструмента к горизонтальному или вертикальному направлению будущей линии, исходящей из начальной позиции перемещаемого курсора.

При удержании клавиши Alt во время перемещения курсора с нажатой левой кнопкой мыши происходит задание прямой линии одновременно с семейством параллельных к ней линий. По умолчанию расстояние между смежными линиями равно 100 единицам. Количество линий соответствует числовому показателю размерности модели.

При раздельных щелчках левой кнопкой мыши без перемещения курсора под курсором образуются точки, а после второго щелчка к текущую точку из предыдущей проводится отрезок прямой линии. При помещении курсора над какой-либо существующей точкой последовательность отрезков замыкается на этой точке, а новая точка не строится. Следующий щелчок этого инструмента начнет новую последовательность точек и отрезков.

инструменты, предназначенные для интерактивного ввода прямых линий, расположенных под углом 45 и -45 градусов по отношению к оси OX;

Инструмент предназначен для интерактивного задания отрезков и дуг окружностей между смежными точками, расположенными на неограниченных (бесконечных) линиях. Команда предназначается для упрощения определения контуров.

6. Окно реализации геометрического алгоритма.

7. Статусная строка, предназначенная для вывода координат курсора и текущего масштаба отображения чертежа в активном окне 6; в режиме ввода функции в статусной строке отображается код функции и экранные координаты курсора в активном окне.

8. Статусная строка, предназначенная для отображения числовых значений объектов, находящихся под курсором.

9. Статусная строка, предназначенная для отображения содержания функции порождения объекта, находящегося под курсором.

10. Числовое значение, определяющее количество точек, находящихся на объекте-носителе. Значение используется рядом функций, вызываемых с помощью клавиатурных сокращений для выполнения типовых групповых операций синтеза чертежа. Значение можно изменять с помощью контекстного всплывающего меню.

11. Статусная строка, предназначенная для отображения текущего количества операций синтеза геометрической модели, выполненных к текущему моменту. Данное число соответствует количеству резервных алгоритмов, сохраняемых системой при синтезе геометрической модели для обеспечения возврата к предыдущим шагам проектирования, выполняемых командой Редакция/Восстановить (Ctrl+Z).

12. Статусная строка, предназначенная для отображения имен выделенных объектов в порядке их выделения.

Рис. 1

Окно реализации алгоритма

Окно реализации алгоритма предназначено для создания геометрической модели и является основным визуальным средством интерактивного взаимодействия пользователя с этой моделью. Каждое окно связывается с одним из существующих в проекте алгоритмов, то есть представляет пользователю его визуальную интерпретацию. Имя связанного с окном алгоритма отображается в заголовке окна.

С одним алгоритмом можно связать несколько окон, каждое из которых может отображать чертеж в отличающемся от других окон представлении, например, в другом масштабе, с иным расположением осей координат и т.п. Такие характеристики отображения объединяются понятием вид, имеющим порядковый номер, который позволяет отличать один вид от возможных других видов. Номер вида выводится в заголовке окна после имени алгоритма. Создать новый вид можно соответственным пунктом всплывающего меню рабочего стола системы Симплекс, при этом будет создано окно с новым видом алгоритма, соответствующего текущему активному окну реализации алгоритма..

Рис. 2

Графический интерфейс окна реализации алгоритма представлен следующими рабочими областями и средствами управления:

1. Рабочая область, в которой выполняется конструирование и отображение чертежа. В этой области посредством использования инструментов системы Симплекс пользователь формирует чертеж геометрической модели, а также осуществляет интерактивные воздействия на эту модель. Рабочая область окна по умолчанию имеет белый фоновый цвет. Геометрическим объектам, отображаемым на чертеже, присваивается признак того или иного цвета, посредством которого они будут отображаться на экране. Цветовая дифференциация объектов, отображаемых на экране, способствует их лучшему различению и смысловому разграничению. Однако многие цвета и их оттенки могут быть плохо различимы на белом фоне. Пользователь может изменить цвет фона с белого на какой-либо другой, в сочетании с которым цвета объектов будут лучше различаться. Цвет фона может быть изменен настройкой параметров отображения окна. Соответственная настройка осуществляется диалоговой панелью, которую можно вызвать на экран пунктом Окно... контекстного меню окна отображения чертежа.

В рабочей области можно размещать фоновые растровые изображения. Такие изображения можно использовать, как ориентиры-подложки, поверх которых выполняется построение чертежа. Растровое изображение загружается на экран с носителя информации с помощью пункта Окно/Растр/Загрузить растр... (Ctrl+Alt+P) главного меню системы. С одним окном можно связать несколько растровых изображений, однако только одно из них будет отображаться в конкретный момент времени. Выбор того или иного изображения из всей совокупности присвоенных окну изображений осуществляется клавишами PageUp и PageDown.

При первичной загрузке с носителя информации центр растрового изображения совмещается с центром окна. Положение изображения можно откорректировать, используя клавиатурные клавиши управления курсором с одновременным удержанием клавиши Ctrl. Восстановление исходного положения растрового изображения в центре окна осуществляется командой Ctrl+0. При необходимости режим отображения растрового изображения можно отключить командой Ctrl+B. Повторное нажатие комбинации клавиш возвращает изображение на экран.

Пунктирными линиями в окне отображаются оси декартовой системы координат Ox и Oy (При активной закладке Евклид (поз. 8)).

По умолчанию масштаб отображения чертежа любого нового создаваемого алгоритма равен единице, а линейная единица измерения соответствует одному пикселу изображения. В процессе работы для обеспечения избирательного доступа к тем или иным объектам чертежа может потребоваться изменение масштаба отображения. Это действие можно выполнить следующими управляющими элементами интерфейса:

2. Кнопка увеличения значения масштаба изображения с шагом 1.42 (квадратный корень из двух) (Shift+F3).

3. Кнопка уменьшения значения масштаба изображения с шагом 1.42 (квадратный корень из двух) (F3);

4. Кнопка установки значения масштаба изображения, равного единице.

5. Кнопка возврата нулевой точки системы координат чертежа в центр рабочей области окна.

Возврат к предыдущему состоянию масштаба отображения и позиции нулевой точки системы координат осуществляется нажатием комбинацией клавиш Alt+Z. Помимо перечисленных средств управления масштабом изображения, пользователь может применять следующие команды:

F4 - изменить масштаб изображения таким образом, чтобы все небесконечные объекты (собственные точки, отрезки прямых, окружности, дуги и т.п.), видимые в текущем активном слое, разместились бы в рабочей области окна, т.е. были бы видны целиком;

Shift+F4 - изменить масштаб изображения таким образом, чтобы все выделенные в данный момент небесконечные объекты (собственные точки, отрезки прямых, окружности, дуги и т.п.), видимые в текущем активном слое, разместились бы в рабочей области окна, т.е. были бы видны целиком;

Ctrl+Alt+F4 - изменить масштаб изображения таким образом, чтобы все собственные точки чертежа, видимые в текущем слое, разместились бы в рабочей области окна, т.е. были бы видны.

6. Панель отображения количества объектов, выделенных в настоящий момент в окне.

Выделение необходимо для выполнения избирательного воздействия на конкретные объекты геометрического построения. Выделенные объекты, как правило, отображаются в окне несколько иначе, нежели невыделенные (например, утолщенной линией, с помощью иного цвета и т.п.). В некоторых случаях позиционные характеристики разных объектов могут быть такими, что их изображения будут накладываться друг на друга. Ввиду этого различение таких объекты и определение их количества по визуальным признакам становится невозможным. Для предупреждения формирования "неправильных" команд может быть использована информация о количестве выделенных объектов, отображаемая в панели 6, поскольку в зависимости от числа и типа выделенных объектов при использовании одних и тех же клавиатурных сокращений в системе могут вызываться разные функции.

Информация о количестве выделенных объектов необходима, для того чтобы пользователь мог оценить, имеется ли возможность применить к выделенным объектам то или иное клавиатурное сокращение, предназначенное для ввода команд формирования геометрического построения, поскольку возможность и конкретный вид такого применения зависят как от состава выделенных объектов, так и от их числа. Ввиду того, что изображения выделенных объектов могут накладываться друг на друга, находиться за пределами рабочей области или даже располагаться в других слоях, и поэтому быть невидимыми, данная панель может оказать помощь в понимании причин поведения системы при получении нежелательного результата от применения клавиатурных сокращений. В случае возникновения подобной ситуации, возврат к состоянию, предшествующему нежелательному, выполняется с помощью комбинации клавиш Ctrl+Z.

7. Панель вывода имен объектов, над которыми в данный момент времени находится курсор выбора и выделения объектов. Панель позволяет оценить, доступны ли для выбора те или иные объекты, над которыми находится курсор.

При щелчке над панелью проект переводится в режим формирования имен объектов со знаками типа "прим". Этот режим действует в таких функциях-преобразованиях, в которых некоторый объект-прообраз переходит в объект-образ (коллинеация, проективитет, симметрия, квадратичная инволюция, инверсия и др.). При использовании "горячих клавиш" в функциях будут создаваться имена новых объектов не с очередным порядковым номером, а использоваться имя объекта-прообраза, которое передается объекту-образу, но с добавлением знаков "prim", "bis", "ter","quater" и т.д., внедряемых между текстовой частью имени и его числовым суффиксом, например A' от A, p'28 от p28 и т.п.. На письме эти знаки обозначаются символом ' (апостроф), вставляемым в имя в необходимом количестве. Такой способ назначения имен более удобен для сопоставления объектов друг с другом при визуальном анализе чертежа, поскольку пользователю становится проще понять, образом какого прообраза (или наоборот) является тот или иной рассматриваемый объект.

Отключение данного режима осуществляется повторным щелчком на панели, обозначенной номером 7.

В режиме назначения имен "прим" фон переключателя закладок слоев (9) изменяет свой цвет на желтый, если никаких объектов в окне не выбрано, и на светло-синий, если в окне есть выделенные объекты. В обычном режиме цвет фона соответствует цвету визуальных кнопок, предустановленному в системе Windows, если выделенных объектов в окне нет. При наличии выделенных объектов цвет фона переключателя закладок (9) - красный.

8. Закладки для выбора режимов отображения чертежа модели:
Евклид - отображение геометрического построения осуществляется в расширенной евклидовой плоскости с применением декартовой системы координат;
Компл. - отображение геометрического построения осуществляется в комплексной плоскости;
3D - режим отображения 3D моделей.

9. Алгоритмы, реализуемые в системе Симплекс, могут представляться достаточно сложными чертежами, состоящими из большого количества геометрических объектов. Достаточно быстро при проектировании алгоритма чертежи становятся насыщенными и запутанными. Несмотря на то, что некоторые объекты являются результатом дополнительных построений, их удаление из алгоритма недопустимо, так как такое действие приведет к потере конструктивной связи объектов геометрического построения. Одним из способов упрощения работы с подобными чертежами является распределение объектов по отдельным визуальным слоям. Несмотря на причисление объекта к тому или иному визуальному слою, он остается составной частью единого алгоритма и выполняет свою конструктивную функцию. В то же время чертеж в результате перераспределения объектов по слоям приобретает более наглядный вид.

Работа с каждым новым алгоритмом начинается в слое основной, поэтому закладка этого слоя является активной по умолчанию. Несущественные для визуализации объекты могут быть перенесены в заранее предопределенный слой корзина. Для выполнения такого переноса следует выделить тот объект, который предполагается перенести в этот слой и, удерживая нажатой клавишу Ctrl, щелкнуть левой кнопкой мыши над закладкой слоя. Результат переноса можно увидеть, активировав закладку соответственного слоя. С помощью комбинации клавиш Ctrl+Z можно вернуться к состоянию до переноса, если такой перенос по какой-то причине был выполнен неправильно. Все выделенные в текущий момент объекты можно быстро перенести в слой корзина, используя клавишу с символом \. При этом в слой корзина будут перенесены все выделенные объекты без запроса у пользователя подтверждения на какую-либо избирательность выполнения этой команды. Если же после выделения нескольких объектов ввести с клавиатуры команду Shift+\, то система будет задавать вопросы о согласии или несогласии пользователя переносить тот или иной объект в слой корзина, что позволяет сделать операцию переноса избирательной и предотвратить перенос в другой слой тех объектов, которые, возможно, были выделены неправильно или непреднамеренно.

Щелчок над закладкой слоя с удержанием клавиши Shift переводит режим отображения этого слоя с дополнением объектов, принадлежащих слою основной. Повторный щелчок удержанием клавиши Shift возвращает действие режима отображения слоя без добавления объектов слоя основной.

Щелчок над закладкой слоя с единовременным удержанием клавиш Alt и Shift переводит режим отображения этого слоя с дополнением объектов, принадлежащих слою входных параметров алгоритма in. Повторный щелчок удержанием клавиши Alt и Shift возвращает действие режима отображения слоя без добавления объектов слоя in.

Щелчок над закладкой слоя с удержанием клавиши Alt удаляет слой из текущего окна (предупреждение об удалении не выводится).

Щелчок над закладкой слоя с единовременным удержанием клавиш Ctrl и Shift приводит к присвоению выделенных объектов признака принадлежности к текущему рабочему слою и к слою, над закладкой которого был осуществлен щелчок. Так, например, выделив какие-либо исходные данные в слое основной, пользователь может добавить признак их принадлежности к слою data, который предназначен для избирательного отображения исходных данных алгоритма.

Щелчок над свободной от закладок слоев области интерфейсного элемента с удержанием клавиш Ctrl приводит к вызову диалоговой панели, предназначенной для добавления и редактирования слоев текущего активного окна. Если при этом в окне были выделены какие-либо объекты, то все они переносятся в новый назначенный слой.

10. Горизонтальная полоса прокрутки изображения. Полоса обеспечивает изменение позиционных характеристик координатной системы по горизонтальному направлению, предоставляя доступ к объектам, находящимся за пределами текущей рабочей области окна.

11. Кнопка, позволяющая переключить средства отображения объектов в такой режим, при котором в рабочей области отображаются только ограниченные объекты (отрезки прямых, дуги окружностей и т.п.). Такой режим позволяет включать в выделение или передавать в параметры команд только те объекты, которые являются ограниченными. В частности, такой режим удобен для формирования состава контуров, в которые могут быть включены только ограниченные объекты.

12. Кнопка, позволяющая переключить средства отображения объектов в такой режим, при котором над изображениями объектов вычерчиваются стрелки, указывающие их ориентацию. Линейные объекты системы Симплекс имеют ориентацию, которая определяется в момент образования таких объектов, а некоторые функции являются чувствительными к ориентации аргументов при своем выполнении. Поэтому в ряде случаев у пользователя может возникать потребность предварительно знать, как ориентирован тот или иной объект. Данный режим предоставляет средства для быстрой оценки ориентации объектов.

13. Кнопка, позволяющая переключить средства отображения объектов в такой режим, при котором неограниченные прямые линии будут вычерчиваться не только в пределах инцидентных с ними точек (ограничивающих начертание), но и в пределах всей рабочей области окна.

Многие геометрические построения предполагают, что линии (в подавляющем большинстве практических случаев прямые) являются бесконечными. Однако отображение на чертеже большого числа линий, простирающихся через всю его рабочую область, приводило бы к избыточному и ненужному усложнению изображения, к перегруженности чертежа избыточной информацией. Поэтому бесконечные линии в системе Симплекс принято отображать по-разному в зависимости от того, сколько они образовали общих точек в пересечении с другими объектами или сколько инцидентных точек они изначально несут на себе. В любом случае такие точки считаются инцидентными с прямой линией. Если таких точек в процессе исполнения алгоритма стало две или более, то имеет смысл вычерчивать бесконечную прямую линию только в пределах этих точек (с небольшим перекрытием этой зоны в виде небольших "хвостов"). Такая линия изображается более компактно, но в то же время в расчетах она принимается за бесконечную. Если же инцидентных точек меньше двух, то тогда не остается иного варианта, как провести линию через всю область чертежа.

В ряде случаев было бы желательно на непродолжительное время показать все "сокращенные" в изображении бесконечные линии действительно, как бесконечные. В частности, в таком режиме пользователю легче формировать некоторые функции, например, нахождение точек пересечения объектов, указывая на визуальное место этого пересечения курсором и единовременно выделяя сразу все объекты, которые должны стать аргументами требуемой команды. В противном случае, такое выделение пришлось бы делать последовательно указывая на объекты, удерживая нажатой клавишу Shift.

14. Кнопка включения режима записи последовательности имен вводимых объектов. Этот режим позволяет запомнить имена тех объектов, которые с момента активации инструмента добавлялись в алгоритм. Такая информация может быть использована впоследствии для группового перенесения совокупности объектов в другой слой, несмотря на то, что изначально они ассоциировались со слоем, в котором их размещение было бы нежелательно.

15. Набор кнопок, предназначенный для избирательного отображения объектов, соотнесенных с полями чертежа, номера которых обозначены на кнопках.

Сложные чертежи, основанные на проекционных алгоритмах, исполняются на основе смыслового и функционального соотнесения геометрических объектов с т.н. плоскими полями, ассоциирующие с собой эти объекты. Работа с такими алгоритмами зачастую требует избирательного взаимодействия с объектами разных полей. Данный инструмент разрабатывается для того, чтобы обеспечить взаимодействие с объектами системы на основе концепции такой избирательности. В том случае, когда ни одна из кнопок не нажата, доступными для взаимодействия являются все без исключения объекты чертеже, если они, конечно, видимы в текущем рабочем слое.

16. Четыре кнопки, предназначены для сохранения параметров вида текущего отображения на чертеже (масштаба и сдвига системы координат относительно центра окна).

В процессе выполнения построения на одном чертеже могут образовываться области, требующие различной степени детализации для обеспечения более удобного взаимодействия с чертежом и улучшающих его визуальное представление. Помимо этого такие области могут находиться в разных и достаточно удаленных местах чертежа. В то же время пользователю может приходиться достаточно часто обращаться к таким областям.

Для упрощения работы с такими областями пользователь может занести в память видовые характеристики окна, обеспечивающие наилучший результат отображения, а впоследствии быстро вызывать эти параметры из памяти и восстанавливать необходимый вид чертежа. Именно для этих реализации целей окно реализации алгоритма снабжено четырьмя кнопками A,B,C и D. Закрепление за той или иной кнопкой параметров текущего вида осуществляется соответственным пунктом контекстного меню, когда курсор будет располагаться над выбранной кнопкой. Применение "хранимых" в кнопке параметров к чертежу осуществляется нажатием на эту кнопку.

17. Горизонтальная полоса прокрутки изображения, обеспечивающая доступ к объектам, находящимся за текущими пределами рабочей области. Полоса используется для целей, аналогичных описанным для горизонтальной полосы (поз. 10) лишь с тем отличием, что все сказанное относится к вертикальному направлению чертежа.

Панель ввода отношений в алгоритм