Начертательная геометрия широко использовалась во всех сферах инженерной деятельности человека, однако с развитием вычислительной техники, в основном, потеряла свое практическое применение. Большую часть её двумерного геометрического аппарата можно заменить вычислениями, что активно используется в современных системах черчения и проектирования. Однако, являясь незаменимой частью инженерного образования, остается одной из важных дисциплин.
В данной статье предложена концепция для разработки алгоритмов решения задач по начертательной геометрии, их реализация в программе Epure Solution, описаны проблемы выбранного подхода и перспективы дальнейшего развития.
Начертательная геометрия использует двумерный геометрический аппарат и алгоритмы для исследования геометрических свойств, а также методы проецирования. В качестве основы для разработки алгоритмов решения задач будем представлять действия на эпюре в виде списка некоторых операций. В соответствие каждой такой операции будем ставить нахождение какой-либо величины: длины, расстояния, координат и т.п. или, например, положения какого-либо объекта. Тогда мы сможем описать в виде некоторого списка таких записей любую задачу.
Перед дальнейшей разработкой алгоритмов условимся, что изначально будут известны координаты всех данных объектов, прямая будет задаваться принадлежащим ей отрезком, который будет задан по двум точкам. Тогда определим список базовых операций над эпюром для их будущей программной реализации. Будут необходимы функции для построения: точки, прямой, плоскости, перпендикуляра, параллельной линии. Также понадобятся функции для определения: длины, расстояния, проекции, пересечения и многие другие.
В качестве примера разберем наиболее важную функцию построения перпендикуляра. Для построения перпендикуляра от прямой необходимо знать координаты двух принадлежащих ей точек, расстояние, на которое провести перпендикуляр, а также выбрать точку, от которой будет проведен перпендикуляр и некоторое направление. Будем считать, что положительное направление будет принимать тот объект, точка которого находится выше исходной. Определение направления перпендикуляра и параметров других объектов происходит в специальном блоке алгоритмов, отвечающем за анализ данных.
Тогда, основываясь на сказанном выше, получаем следующую концепцию разработки алгоритмов: записываем шаги решения задачи в формальном виде с помощью принятых геометрических или каких-либо дополнительных обозначений; переводим эти алгоритмы в программный код; затем, основываясь на вычисленных и данных значениях, строим эпюр. Получается, что в отличие от реальных построений и решений привычными методами, большая часть эпюра находится с помощью вычислений, с последующей передачей полученных данных в программу, которая визуализирует их.
Была написана программа Epure Solution, предназначенная для работы с эпюрами и для решения задач по начертательной геометрии. Программную реализацию получили 15 алгоритмов, которые суммарно решают 21 задачу. Разберём некоторые из этих алгори
Возьмем самую простую и базовую задачу начертательной геометрии – нахождение натуральной величины, далее НВ, отрезка. Алгоритм решения задачи, для нахождения НВ отрезка в проекции П1, в формальном виде будет иметь следующие шаги (Рисунок 1):
Рисунок 1. Алгоритм нахождения натуральной величины
Пример результата работы реализованного в программе алгоритма на рисунке 2.
Рисунок 2. Нахождение натуральной величины с помощью алгоритма
Разберем более сложную и комплексную задачу: нахождение расстояния от точки до прямой. В качестве вводных данных будем использовать прямую и точку. Алгоритм решения задачи в формальном виде состоит из следующих шагов (Рисунок 3):
Рисунок 3. Алгоритм нахождения расстояния от точки до прямой
Алгоритм решения данной задачи, включая анализ, решение и вывод, занимает 111 строк кода. Пример результата работы представлен на рисунке 4.
Рисунок 4. Пример решения задачи с помощью алгоритма
Рассмотрим задачу на построение деления отрезка в заданном отношении n : m. В качестве вводных данных будем использовать прямую и величины n и m. Алгоритм решения задачи в формальном виде состоит из следующих шагов (Рисунок 5)
Рисунок 5. Алгоритм решения задачи по делению отрезка
Алгоритм решения данной задачи, включая анализ, решение и вывод, занимает 56 строчек кода. Пример результата работы алгоритма представлен на рисунке 6.
Рисунок 6. Пример деления отрезка в заданном отношении с помощью алгоритма
Основная проблема при переводе формальной записи алгоритма решения в программный код заключается в необходимости определения параметров операции или объектов, например, направления перпендикуляра, положения прямой и т.п. Для этого приходится писать отдельные блоки кода, отвечающие за анализ положения объектов. Если описать частные случаи расположения прямой достаточно просто, то описать плоскость, состоящую из трех прямых или задачу с большим количеством данных, сложнее.
Проблемы описанной концепции в перспективе могут быть решены созданием новой системы, напрямую обрабатывающей формальные записи алгоритмов, с автоматическим переводом их в программный код. На данный момент этот процесс реализован ручным (или ограниченно автоматическим) переводом алгоритмов, определением частных и граничных случаев и написанием программного кода со всеми вычислениями.
В перспективе нужно создать систему автоматического перевода формальных записей алгоритмов в программный код. Такая система сможет значительно ускорить программную реализацию алгоритмов и может найти применение в других смежных областях. Разработанную программу можно преобразовать для работы с многомерным пространством, что может помочь в работе с визуализацией многомерного пространства и решения задач в нем.
Список литературы
Глоговский, В В. Начертательная геометрия на алгоритмической основе / В. В. Гло-говский, Б. М. Гринева, М. О. Гнатюк. – Львов: "Вища школа", издательство при Львовском университете, 1978. – 148 с.
Желоние, Е И. Алгоритмы решения метрических задач: Учебное пособие / Е. И. Же-лоние, Г. С. Иванов, Л. И. Мальцева, А. А. Маркова; под ред. Г.С. Иванова. – Йошкар-Ола: МарПИ, 1989. – 88 с.