Численно-аналитическое построение линий

пересечения  поверхностей методом Драгилева

Дубанов А.А. Московский Государственный Индустриальный Университет,

Кафедра «Графика», докторант

 

1.     Описание метода Драгилева для решения

систем нелинейных уравнений

 

Рассмотрим систему из  уравнений, в которой количество переменных равно :

    (1.1).

Будем считать, что все переменные определены и действуют в вещественной области и все действия, выполняемые над ними, допустимы. Система уравнений (1.2) описывает некоторую кривую в пространстве размерности :

                   (1.2).

Систему дифференциальных уравнений (1.2) получаем дифференцированием (1.1) по формальному параметру t  и, выбрав начальную точку, заведомо принадлежащую кривой (1.2).

Система уравнений (1.2) является однородной с числом переменных  и числом уравнений  относительно вектора неизвестных . В качестве одного из нетривиальных решений можно предложить (1.3):

, где

        (1.3).

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

Если мы хотим ввести естественную параметризацию от длины дуги , то получаем систему уравнений (1.4):

             (1.4).

В этом случае система уравнений (1.4) имеет единственное решение (1.5):

(1.5)

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

 

2.     Построение линии пересечения двух поверхностей,

заданных в неявном виде.

 

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

Пусть  - есть параметр длины дуги линии пересечения поверхностей. Тогда мы можем продифференцировать уравнения поверхностей:

, .

И условие того параметризация происходит от длины дуги: . Введем обозначения ,  и . Таким образом мы имеем следующую систему уравнений:    (2.1).

Решением системы уравнений (1) является: . Действительно, в системе координат  первые два уравнения системы (2.1) определяют плоскости, проходящие через начало координат, а третье уравнение – это сфера единичного радиуса в той же системе координат.

Таким образом, можно сказать следующее, что данная задача сведена к задаче Коши.

Рис. 1. Метод Драгилева применительно к построению линии пересечения поверхностей

      Если векторы  и  (рис. 1) трактовать как нормали к поверхностям в точках их пересечения, а вектор  - как единичный касательный вектор к линии пересечения, то в этом можно видеть инструмент для построения линии пересечения поверхностей, заданных в параметрическом виде. Ниже приведен листинг программы, строящей линию пересечения тора сферы двойного касания (окружности Вилларсо).

 

3.     Построение линии пересечения поверхностей, заданных в параметрическом виде

 

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

Рассмотрим внимательно  уравнение . Распишем его в следующем виде: . Мы можем привести его к системе уравнений, умножив последовательно на  и : . Это система линейных уравнений, относительно переменных и . Ее решением является:       (3.1).

Также мы можем поступить и с уравнением : . Откуда следует: . Это линейная система уравнений относительно переменных  и . Ее решением является:

         (3.2).

Объединяя системы уравнений (3.1) и (3.2), получаем постановку задачу Коши:

     (3.3).

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

 

4.     Построение линии пересечения поверхности, заданной в параметрическом виде, и поверхности, заданной неявно

 

Рассмотрим поверхность, заданную неявно,  и поверхность, заданную в параметрическом виде, . Здесь мы имеем следующее, продифференцируем уравнение   по параметру , где  - длина дуги линии пересечения:

      (4.1).

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

        (4.2).

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

          (4.3).

Из уравнения (4.2) можно выразить, допустим . Подставив в (4.3) получим в итоге:

   (4.4).

В итоге можно считать, что мы добились сведения данной задачи к задаче Коши.

 

5.     Построение линии пересечения поверхностей

без сведения к задаче Коши

 

Рис. 2. Построение линии пересечения без сведения к задаче Коши

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

 

6.     Заключение

 

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

Автор выражает глубокую благодарность Казакову Ю.В. (г. Красноярск), Мезенцеву В.Н. (г. Екатеринбург), Иванову А.Б. (г. Ростов-на-Дону) за ценные замечания время написания этой статьи, за глубокую и долгую дискуссию на форуме сайта www.exponenta.ru в период подготовки к публикации. Отдельную благодарность хочется выразить Иванову А.Б. за то, что известил о существовании метода Драгилева Анатолия Владимировича (1923-1997 гг.)

 

 

Хостинг от uCoz