Алгоритмы 3в-компьютерного геометрического моделирования на примере задачи совмещения коники с квадрикой

УДК 681.327.11

АЛГОРИТМЫ 3D-КОМПЬЮТЕРНОГО ГЕОМЕТРИЧЕСКОГО МОДЕЛИРОВАНИЯ НА ПРИМЕРЕ ЗАДАЧИ СОВМЕЩЕНИЯ КОНИКИ С КВАДРИКОЙ

А.Л. Хейфец

ALGORITHMS FOR 3D-COMPUTER GEOMETRICAL SIMULATION FOR THE PROBLEM OF COMBINATION OF A QUADRIC AND CONIC

A.L. Kheyfets

Приведены алгоритмы 3d-компьютерного геометрического моделирования на примере задачи совмещения заданной параболы и однополостного эллиптического гиперболоида. Рассмотрено геометрически точное решение этой задачи в частном случае. Для общего случая решение получено на основе 3d-алгоритмов и построения модели по типу «черного ящика».

Ключевые слова: компьютерное моделирование, геометрическое моделирование, начертательная геометрия, инженерная графика, 3d-технологии, AutoCAD.

The algorithms of 3d-computer geometric modeling on the example of the problem of combining a given parabola and a sheeted elliptic hyperboloid are given. Geometricallyexact solution of this problem is considered in a special case.For the general casethe solution based on a 3d-modeling of algorithms of a “black box” type is obtained.

Keywords: computer simulation, geometric simulation, descriptive geometry, engineering graphics, 3d-technologies, AutoCAD.

Введение

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

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

1. Цель работы

Рассмотреть алгоритмы и методы инженерного 3d-компьютерного геометрического моделирования на примере задачи о совмещении коники с квадрикой, а также привести решение указанной задачи.

Известны частные случаи решения задачи совмещения [1, 2] для эллипса и конуса. Автор усложнил задачу, рассмотрев совмещение произвольной коники с произвольной квадрикой [3, 4]. Для придания задаче прикладного характера введена точка на поверхности квадрики, через которую должна проходить коника. В данной работе приведено решение для параболы и однополостного эллиптического гиперболоида (ОГ).

2. Задача и методика решения

Даны парабола и ОГ с наперед заданными параметрами. На поверхности ОГ задана точка. Требуется определить положение параболы, при котором она является сечением ОГ и проходит через заданную на нем точку («надеть» параболу на ОГ).

Хейфец Александр Львович - канд. техн. наук, доцент, профессор кафедры графики, Южно-Уральский государственный университет; heifets@yandex.ru

Kheyfets Alexander Livovich is Cand. Sc. (Engineering), a Professor of the Graphics Department, South Ural State University; heifets@yandex.ru

Работа выполнялась в пакете АиІюСАВ как наиболее адаптированном к теоретическим задачам 3ё-геометрического моделирования [5].

ОГ зададим размерами эллипса основания, эллипса горловины, а также высотой (рис. 1).

Рис. 1. Модель и параметры однополостного гиперболоида

Для построения модели ОГ [б] строим его каркас. Применив к каркасу команду Loft, получим твердотельную solid-модель. Реализованы два варианта каркаса. Первый - из двух очерковых гипербол и 10-20 поперечных эллипсов. Гиперболы с асимптотами для этого варианта построим по заданной вершине и точке [З]. Второй вариант каркаса - линейчатый [б].

Параболу зададим величиной фокусного расстояния f. Для ее построения применим известный алгоритм на основе сферы Данделена. В меридиональной плоскости (рис. 2, а) произвольного кругового конуса проводим mf\ \ m и строим окружность с, касающуюся m, m', n. Через точку касания 1 проводим отрезок d, являющийся множеством точек фокуса для семейства парабол. Отложив f вдоль m, из точки 2 проводим n I n. Точка F является точкой фокуса искомой параболы. Задав через эту точку секущую плоскость в II m, в сечении конуса получим искомую параболу как непрерывную плоскую сплайн-кривую с погрешностью не более 10б %.

а) б)

Рис. 2. Построение параболы с заданным фокусным расстоянием

Понадобится обратная задача: для параболы, полученной в ходе решения как сплайн-кривая, определить фокусное расстояние, ось и точку фокуса. Воспользуемся методом хорд [7] и оптическими свойствами параболы. Проводим (рис. 2, б) две параллельные хорды s1, s2 и соединяем их средние точки - получаем отрезок k. Проводим хорду s3 ± k и через ее среднюю точку строим ось параболы i I k. Применяя объектную привязку Tan (Касательная), из произвольной точки проводим отрезок t касательной к параболе. В точке касания стоим падающий луч, параллельный оси, и отраженный луч, который в пересечении с осью определяет искомый фокус - точку F.

З. Частный случай задачи

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

Строим параболу p с требуемым фокусным расстоянием (см. рис. 2, а). Строим solid-модель ОГ с криволинейным каркасом (рис. З, а), содержащую фронтально-очерковую гиперболу h со своими асимптотами. Параболу p устанавливаем в плоскость, перпендикулярную фронтальной плоскости симметрии ОГ. Вершина параболы p должна проходить через какую-либо точку 1 гиперболы h. Ось параболы ill m, где m - асимптота h. Копируем гиперболу h в некоторую точку 2 установленной параболы - гипербола h*. Строим сечение ОГ плоскостью гиперболы h* - получаем гиперболу h . Находим точку 3 = (h*nh') пересечения гиперболы h* с поверхностью ОГ и копируем параболу p так, чтобы точка 2 перешла в точку 3, - получена парабола p*, являющаяся искомой.

а) б)

Рис. 3. Построение парабол для частного случая: а - алгоритм для фронтально-проецирующей параболы; б - восемь проецирующих парабол для і = 3

Для оценки погрешности решения выполним сечение ОГ плоскостью параболы р* и сравним фокусные расстояния заданной параболы р и параболы сечения. Погрешность достигала 5 %, что указывало на необходимость рассматриваемого ниже повышения точности модели ОГ.

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

4. Общее решение задачи

Вернемся к общей постановке задачи с дополнительной точкой на поверхности ОГ. Назначим две характерные точки: точка А, расположенная во фронтальной плоскости симметрии, и точка В общего положения (см. рис. 1). В такой постановке уже не удалось получить явного, как в приведенном выше частном случае, геометрического или аналитического решения. Вероятно, оно отсутствует, как во многих прикладных инженерных задачах.

Применим метод «черного ящика», позволяющий исследовать объекты, внутреннее устройство которых неизвестно. Для этого получим множество возможных парабол, расположенных на поверхности ОГ и проходящих через заданную на нем точку. Из этого множества найдем параболы с требуемым фокусным расстоянием.

Для создания множества введем секущую плоскость у (рис. 4), совершающую вращение вокруг двух осей, проходящих через заданную точку. Первое вращение выполняется вокруг оси /1, параллельной оси ОГ. Второе - вокруг горизонтали /2, принадлежащей плоскости у и вращающейся вместе с ней вокруг /1. Положение плоскости у зададим углом и между /2 и большой осью эллипса основания ОГ, а также углом ^ между плоскостью у и плоскостью основания ОГ.

Рис. 4. Схема формирования множества коник через точку В

Дискретность модели определяется шагом вращения плоскости у вокруг i1, который принимаем 0,5... 1°. Для каждого u по асимптотическому конусу (см. ниже) определяем значение w, при котором возникает парабола. Находим фокусное расстояние f каждой параболы либо по алгоритму (см. рис. 2, б), либо по пяти точкам (см. ниже). Значение f вместе с u^-координатами секущей плоскости заносим в базу данных (БД).

Далее, задав необходимое значение фокусного расстояния f совмещаемой параболы, в БД находим параболу с близким значением f и извлекаем u,v-координаты ее секущей плоскости. Ввиду дискретности модели для повышения точности нахождения u,v применяем интерполяцию. По найденным u^-координатам строим параболу либо как сечение ОГ, либо как конику по пяти точкам.

Все геометрические построения и алгоритмы, а также создание и обработку БД реализуем программно средствами языка AutoLisp [8].

5. Асимптотический конус

Позволяет для u-координаты секущей плоскости определить значения w-координаты, приводящие в сечении ОГ к возникновению парабол. Для построения АК (рис. 5, а) из произвольной точки 1 эллипса e основания ОГ проводим касательную m к эллипсу e* горловины ОГ. Точка касания 2 определяется объектной привязкой Tan (Касательная). Перемещаем m в центр 3 эллипса e*. Из центра 4 через точку 6 проводим отрезок до пересечения с эллипсом e в точке 5. Масштабируем эллипс e так, чтобы он проходил через точку 6 - получаем эллипс e'. АК строим как solid-модель по его основанию e' и вершине 3 (команды Loft или Cone).

а) б)

Рис. 5. Построение асимптотического конуса

Для каждого значения и-координаты проецируем АК (команда Боїргв$ на плоскость, перпендикулярную текущему положению оси І2, и находим углы w1 и w2, задающие две секущие плоскости у/1, у/2, приводящие к получению парабол. В задачах на построение гипербол секущая плоскость должна проходить внутри сектора А, а для эллипса - вне этого сектора.

6. Линейчатая модель

8оШ-модель ОГ, построенная по эллиптическо-гиперболическому каркасу, обладает невысокой точностью. Незначительные погрешности формы ОГ приводили вместо ожидаемой параболы к возникновению в сечении ОГ гиперболы или эллипса либо к значительной, до 5 %, погрешности фокусного расстояния найденной параболы.

Существенного повышения точности расчетной модели удалось добиться при переходе к линейчатому каркасу ОГ и построению коники (параболы) по пяти точкам на основе выхода в пространство [6]. При этом необходимость в построении solid-модель ОГ отпала.

Для построения отрезков каркаса (см. рис. 4) из произвольных точек эллипса основания строим четыре касательные к эллипсу горловины. Найдем точки К, Ь, М, N пересечения этих касательных с секущей плоскостью /. Вместе с заданной точкой А или В получим пять точек, достаточных для точного построения проходящей через них коники.

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

7. О проективном 2d-алгоритме решения

Имея четыре точки параболы (а для однозначности пять точек), можно найти ее фокусное расстояние без построения параболы как непрерывной кривой [10]. Этот подход был нами воспроизведен и дал хорошие результаты. Однако он ненагляден и сложен в восприятии. Кроме того, в качестве решения требуется парабола как непрерывная кривая, что проективные алгоритмы не обеспечивают.

8. 3d-алгоритмы выхода в пространство

Для построения коники (параболы) как непрерывной кривой применим известный алгоритм -«выход в пространство» [9]. Выберем наиболее простую и точную квадрику - круговой конус.

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

Нахождение касательных t1, t2 на основе пяти точек коники можно выполнить по шестиугольнику Паскаля (рис. 6) [7, с. 167].

Более нагляден 3d-алгоритм нахождения касательных (рис. 7). Из точек K и N, в которых требуется найти касательные t1, t2, проводим по две касательные к эллипсу горловины. Касательные к, к' определяют плоскость £, касательную к ОГ в точке K. Касательные n, n' - плоскость %, касательную в точке N. Искомые касательные t1, t2 являются результатом пересечения касательных плоскостей с плоскостью коники у.

Итак, в плоскости у заданы три точки коники K, B, N и две касательные t1, t2 к конике в точках K, N (рис. 8). Всего пять параметров, которые с учетом положения плоскости у должны привести к получению параболы. Вращением (Revolve) треугольника 1-2-3 строим круговой конус. На его поверхности находим точку B , для которой точка B является проекцией на плоскость у - «выносим» точку B на поверхность конуса. Строим сечение конуса плоскостью (K, N, B ) - получаем в сечении конику (параболу) p'. Вытягиванием (Extrude) p' по направлению q (B, B') создаем вспомогательный проецирующий цилиндр. Сечение (Section) цилиндра плоскостью у дает искомую параболу p как непрерывную сплайн-кривую. Для нее по алго-

Рис. 8. Построение коники (параболы) «выходом в пространство»

ритму (см. рис. 2, б) или пяти точкам определяем точку фокуса и фокусное расстояние. Погрешность такой сплайн-параболы, построенной выходом в пространство, находится на уровне 10-5.. .10-6 %.

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

9. Исследование общего решения

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

-90 -60 С -30 0 О зо 60 и,°

Угол поворота горизонтали б)

Рис. 9. Зависимость фокусного расстояния параболы от положения ее плоскости: а - для параболы, проходящей через точку А; б - через точку В

т, п соответствуют возникновению двух парабол для каждого значения и. Кривая т - это параболы, параллельные правой очерковой образующей АК, кривая п - левой. В точках С и В, где и = ±32.5, плоскость парабол становится касательной к АК и параболы вырождаются в две параллельные прямые, для которых /=0. Видим также, что в зависимости от значения / количество решений может быть четыре, два или отсутствовать.

Для парабол, проходящих через точку В (рис. 9, б), кривые т, п несимметричны. Они также отражают параболы, параллельные соответственно правой и левой образующим АК. Точки С, В - это параболы, вырожденные параллельные прямые. В качестве примера четырех решений для / =1, обозначенных точками 1...4 (см. рис. 9, б), построены соответствующие им четыре параболы р1...р4 (рис. 10).

Рис. 10. Четыре параболы і = 1, проходящие через точку В

Погрешность решения по дискретной БД, оцениваемая по величине фокусного расстояния заданной и найденной парабол, для линейчатой модели ОГ не превысила 1 % и может быть существенно снижена в случае необходимости за счет увеличения плотности БД.

Дополнительными экспериментами проверено, что приведенные зависимости (см. рис. 9), хотя и получены для фиксированных параметров ОГ и точек А или В, являются характерными для рассмотренной задачи в целом.

Рассмотренные алгоритмы в полной мере апробированы в пакете AutoCAD. Из других пакетов САПР выполнена успешная апробация в пакетах SolidWorks и Inventor.

Выводы

1. 3d-алгоритмы, часть из которых рассмотрена выше (построение solid-моделей сложных квадрик, коники выходом в пространство, совмещение коник с квадрикой, модели «черного ящика»), особенно при их компьютерной программной реализации, позволяют решать широкий круг задач геометрического моделирования новыми методами без проекционных построений.

2. Предложенные 3 d-алгоритмы позволили найти решение задачи совмещения и исследовать ее с высокой точностью.

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

Литература

1. Пеклич, В.А. Мнимая начертательная геометрия: учеб. пособие /В.А. Пеклич. - М.: Изд-во АСВ, 2007 - 104 с.

2. Пеклич, В.А. Задачи по начертательной геометрии: учеб. пособие / В.А. Пеклич, С.Н. Павленко. - М.: Высш. шк., 1999. - 139 с.

3. Хейфец, А.Л. Компьютерные 3d алгоритмы в курсе геометрического моделирования (на примере задачи совмещения коник с квадриками) /

А.Л. Хейфец // Труды 18-й международной научнотехнической конф. «Информационные средства и технологии. Москва 19-21 октября 2010». - М.: Издательский дом МЭИ, 2010. - Т. 3. - С. 110-117.

4. Хейфец, А.Л. Инженерный 3й-метод решения задач геометрического моделирования (на примере совмещения коники с квадрикой) / А.Л. Хейфец // Труды 19-й международной научно-технической конф. «Информационные средства и технологии. Москва 18-20 октября 2011». - М.: Издательский дом МЭИ, 2011. - Т. 2. - С. 170-179.

5. Инженерная 3В-компьютерная графика. АШоСАВ: учеб. пособие / А.Л. Хейфец, А.Н. Логи-новский, И.В. Буторина, В.Н. Васильева; под ред. А.Л. Хейфеца. - 2-е изд. перераб. и доп. - М.: Изд-во «Юрайт», 2012. - 464 с.

6. Хейфец, А.Л., Новые возможности 3В-моде-лирования линейчатых поверхностей в АШоСАВ / А.Л. Хейфец, А.Н. Логиновский // Состояние, проблемы и тенденции развития графической подготовки в высшей школе: сб. тр. Всерос. совещания зав. кафедрами графических дисциплин. - Челябинск: Изд-во ЮУрГУ, 2007. - Т. 2. - С. 125-133.

7. Четверухин, Н. Ф. Проективная геометрия / Н.Ф. Четверухин. - М.: Гос. уч.-пед. изд-во, 1961. -360 с.

8. Хейфец, А.Л. Инженерная компьютерная графика А^оСАВ. Опыт преподавания и широта взгляда / А.Л. Хейфец. - М.: ДИАЛОГ-МИФИ, 2002. -432 с.

9. Хейфец, А.Л. Построение коник на основе 3ё-алгоритмов выхода в пространство /А.Л. Хейфец // Совершенствование подготовки учащихся и студентов в области графики, конструирования и стандартизации: межвуз. науч.-метод. сб. - Саратов: Изд-во Саратовского гос. техн. ун-та, 2009. - С. 17-23.

10. Короткий, В.А. Проективное построение коники: учеб. пособие / В.А. Короткий. - Челябинск: Издательский центр ЮУрГУ, 2010. - 94 с.

Поступила в редакцию 5 ноября 2011 г