Моделирование поверхностей в системе

компьютерной математики MathCAD

Дубанов А. А.

 

Введение

 

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

 

1. Вращение параметрической кривой вокруг

прямой, произвольно расположенной в пространстве.

 

Рассмотрим простую задачу: получить уравнение поверхности вращения произвольной параметрической кривой вокруг прямой, произвольно расположенной в пространстве. Вращаемая параметрическая кривая задана в виде: . Ось вращения задана двумя точками  и  (Рис. 1). Основанием перпендикуляра, опущенным из точки  на прямую , будет точка . Определим локальный базис для каждой отдельной точки . Это будет тройка векторов  с центром координат в точке , где: , , . Если мы захотим вращать точку  вокруг точки  в системе координат , то это будет плоская окружность .

 

 

Рис. 1

 

Перенос окружности в систему координат  и вращение непосредственно вокруг точки  осуществляется следующим образом: . Базис  рассчитывается по формулам: , , , так векторы  будут выглядеть из системы координат . Базисные векторы  системы координат (Рис.1) имеют значения , , . Более подробно вопросы преобразования базиса рассмотрены на Интернет-ресурсе http://dubanov.exponenta.ru/russian/book_rus.htm во вкладке «Преобразование базиса». Ниже приведен листинг программы, выполненной в системе MathCAD 11.

 

  

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

Рассчитывается основание перпендикуляра  из точки  на прямую

    

Локальный базис  для каждой отдельной точки

  

Базисные векторы  системы координат

  

Базис  в системе координат

Вращаемая точка  описывает окружность вокруг прямой . Ее представление в системе координат

Та же окружность, представленная в системе координат

Прямая

Результат построения поверхности вращения кривой  вокруг прямой , представлена в системе координат

 

 

2. Вращение одной параметрической кривой вокруг другой.

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

 

Пусть  является вращаемой кривой (Рис. 2). Рассмотрим кривую . Из точек кривой  опустим перпендикуляр на кривую .

Рис. 2

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

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

 

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

Расчет вектора 

Формирование уравнения

Нахождение начальных условий для задачи Коши

Задание дифференциального уравнения 1 порядка для решения задачи Коши

Решение задачи Коши

График зависимости параметра  от параметра  

Тестовая проверка

Локальный базис  для каждой отдельной точки

Базисные векторы  системы координат

Базис  в системе координат

Вращаемая точка  описывает окружность вокруг  в плоскости векторов , . Ее представление в системе координат

Та же окружность, представленная в системе координат

Перпендикуляр, опущенный из точки  на кривую

Визуализация поверхности

Результаты работы программы, разные виды одной и той же поверхности


 

3. Вращение параметрической поверхности вокруг прямой

 

Рис. 3

 

Рассмотрим параметрическую поверхность в некотором локальном базисе, в данном случае это поверхность вращения: . Пусть центр координат локального базиса движется по некоторой траектории  (рис. 3). Локальный базис ,  и  в приведенном ниже примере передвигается по траектории  следующим образом. Параметрическая кривая  в нашем случае является окружностью . Единичный вектор  направлен по касательной к кривой : . Единичный вектор  совпадает по направлению с вектором : . Из условий постановки задачи очевидно, векторы  и  ортогональны. Соответственно вектор  будет . Далее, поступаем способом, описанным в § 1. Произведем преобразование базис   системы координат  в базис . Так он будет выглядеть из системы координат базиса . В итого имеем, что передвигаемая поверхность  в зависимости от значения параметра  выглядит так: . Приведенный ниже листинг программы иллюстрирует данные вычисления.

  

 

Задание параметров передвигаемой поверхности   (в нашем случае это поверхность )

 

 

Визуализация

Задание и визуализация единичных векторов системы координат

  

Задание траектории перемещения  ()

Задание локального базиса

 

Перерасчет локального базиса

 

Передвигаемая поверхность  по траектории  в момент времени

Визуализация поверхности  от значений параметра

Поверхность  в локальном базисе

Результат передвижения поверхности  при различных значениях параметра

Среда MathCAD предполагает создание анимированных изображений.

 

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

 

 

 

 

 

Данный результат достигается в листинге программы следующим образом:

 

Анимированное изображение можно посмотреть здесь

 

               

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

Анимированное изображение можно посмотреть здесь

 

         Также можно совершать одновременное вращение вокруг оси ординат и вокруг оси абсцисс локального базиса : . Анимированное изображение создано при следующих параметрах вращений:  и . Желание получить данный результат возникло после дискуссии на форуме пользователей системы MathCAD портала математиков Exponenta.ru в топике под названием ”Эффект Джанибекова”.

 

Заключение

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

 

 

Список использованной литературы

 

1. Е. А. Никулин. Компьютерная геометрия и алгоритмы машинной графики. –   СПб.: БХВ - Петербург, 2003. - 560 с.: ил. ISBN 5-94157-264-6

2. Д. В. Кирьянов. Самоучитель MathCAD 11. СПб.: БХВ – Петербург, 2003. - 560 с.: ил. ISBN 5-94157-348.0

3. Википедия. Матрицы поворота

4. Форум пользователей системы MathCAD. http://forum.exponenta.ru

5. Сайт: Applied geometry and MATLAB. http://dubanov.exponenta.ru

6. Сайт: Geometrical modeling in MathCAD. http://blagovest2002.narod.ru