88 15. Мудров В.И. Метод наименьших модулей / В.И. Мудров, В.Л. Кушко. – М.: Знание, 1971. – 64 с. 16. Гантмахер Ф.Р. Теория матриц / Гантмахер Ф.Р.. – М.: Наука, 1988. – 552 с. 17. Квакернаак Х. Линейные оптимальные системы управления / Х. Квакернаак, Р. Сиван. – М.: Мир, 1977. – 656 с. 18. Сейдж Э.П. Оптимальное управление системами / Э.П.Сейдж, Ч.С. III Уайт. – М.: Радио и связь, 1982. – 392 с. УДК 681.5.001.63: 519.711 МЕТОДИКА ВИЗУАЛИЗАЦИИ ГЕОМЕТРИЧЕСКИХ ОБЪЕКТОВ, ОПИСАННЫХ С ПОМОЩЬЮ R-ФУНКЦИЙ Лисняк А.А., ассистент, Чопоров С.В., аспирант, Гоменюк С.И., д.т.н., профессор Запорожский национальный университет В статье описана методика быстрой визуализации геометрических областей сложной формы, заданных при помощи неявного аналитического описания с использованием математического аппарата R-функций. Предложенный метод базируется на триангуляции поверхности объекта с последующей ее оптимизацией. Ключевые слова: R-функция, визуализация, геометрическая модель, дискретная модель, метод конечных элементов. Лісняк А.О., Чопоров С.В., Гоменюк С.І. МЕТОДИКА ВІЗУАЛІЗАЦІЇ ГЕОМЕТРИЧНИХ ОБ’ЄКТІВ, ОПИСАНИХ ЗА ДОПОМОГОЮ R-ФУНКЦІЙ / Запорізький національний університет, Україна У статті описана методика швидкої візуалізації геометричних об’єктів складної форми, що задані за допомогою неявного аналітичного опису із застосуванням математичного апарату R-функцій. Запропонований метод базується на тріангуляції поверхні об’єкта з наступною її оптимізацією. Ключові слова: R-функція, візуалізація, геометрична модель, дискретна модель, метод скінченних елементів. Lisnyak A.A., Choporov S.V., Gomenyuk S.I. TECHNIQUES VISUALIZATION GEOMETRIC OBJECTS, DESCRIBED BY THE R-FUNCTIONS / Zaporizhzhya national university, Ukraine The article describes a method of fast visualization of geometric objects of complex shapes defined by implicit analytic description using the mathematical apparatus of R-functions. The proposed method is based on the triangulation of the surface area with subsequent optimization. Key words: R-function, visualization, geometrical model, discrete model, method of finite elements. ВВЕДЕНИЕ Развитие современной техники невозможно без наличия надежных и эффективных методов численного анализа прочности и долговечности сложных инженерных конструкций и сооружений. В основе применения компьютера для анализа конструктивных свойств проектируемых конструкций лежат методы вычислительной математики, базирующиеся на идее перехода от протяженной задачи к дискретной, когда исследуемый непрерывный объект заменяется его некоторой конечной моделью. Одним из наиболее распространенных в настоящее время вычислительных методов анализа напряженно-деформированного состояния твердых тел является метод конечных элементов (МКЭ). В нем исходная геометрическая область заменяется некоторой непересекающейся совокупностью конечных элементов (КЭ) простой формы, заполняющих весь объем тела [7-9, 13] . Одной из главных проблем, возникающих при практической реализации МКЭ, является автоматизация построения дискретных моделей геометрических объектов сложной формы. Она, в свою очередь, состоит из двух самостоятельных задач: 1) формализации описания геометрической модели объекта сложной формы и 2) автоматизации построения дискретной модели по имеющемуся формальному описанию исходного объекта [19]. Задача формализации исходного описания геометрических объектов и их представления в памяти компьютера является достаточно сложной. Для этих целей применяются различные геометрические модели: каркасные, поверхностные, твердотельные, объектно-ориентированные и т.д. [16, 4, 6, 11, 17]. Но на практике чаще всего используют именно твердотельные геометрические модели, в которых в явной форме содержатся сведения о принадлежности элементов конструкции внутреннему или Фізико-математичні науки 89 внешнему по отношению к ней пространству (модель объекта с замкнутым объемом). Основной принцип построения таких моделей заключается в том, что они обязательно образуют замкнутый объем подобно реальным физическим объектам. Математическое описание объекта содержит информацию, по которой возможно определить, где находится какая-либо точка – внутри объема, снаружи или на границе. Таким образом, можно получить любую информацию об объеме тела, преобразовать его представление в воксельное или ячеечное, построить конечно-элементное разбиение. Как правило, при твердотельном моделировании геометрических объектов строятся поверхности, отделяющие занимаемый ими объем от остальной части пространства. Моделирование объекта при помощи только плоских поверхностей называется плоскогранным. При описании криволинейных поверхностей плоскогранное представление может аппроксимировать их с использованием набора треугольных или четырехугольных примитивов с определенным допуском. Плоскогранное представление значительно упрощает выполнение различных операций над телами и является основным принципом хранения твердотельных моделей в известном формате STL, широко применяемом в современных САПР и компьютерной графике [6]. Наиболее распространенными подходами к описанию геометрических объектов являются: 1) построение геометрических моделей в виде некоторой комбинации базовых примитивов (кривых, сплайнов, треугольников, сфер и т.п.), объединенных набором Эйлеровых операций (логических объединения, пересечения и вычитания) [10, 12]; 2) реконструкция трехмерной геометрической модели объекта по имеющимся техническим чертежам его проекций [14, 15, 18]; 3) параметрическое (функциональное) описание границы объекта с помощью определенного математического аппарата или специализированных проблемно-ориентированных языков. Наиболее универсальным и эффективным является именно функциональный подход, т.к. с его помощью можно сравнительно легко и однозначно построить модель геометрического объекта произвольной формы. Теория R-функций [20, 21] позволяет с помощью элементарных математических соотношений в неявном виде формально описать произвольный геометрический объект. Однако на практике при использовании R-функций исследователи сталкиваются с существенной проблемой визуализации геометрических моделей, описанных с их помощью. Существующие программные системы (например, система РАНОК) зачастую строят изображения R-функций достаточно медленно. В данной работе предложен подход к быстрой визуализации R-функций, базирующийся на идее предварительной триангуляции их нулевой поверхности с последующей оптимизацией полученной сетки. ОПИСАНИЕ ГЕОМЕТРИЧЕСКИХ ОБЪЕКТОВ С ИСПОЛЬЗОВАНИЕМ ТЕОРИИ R-ФУНКЦИЙ В основе теории R-функций лежит идея алгебры предикатов, представленных выражениями вида f x1 ,..., xn m, , (1) где m – некоторое численное значение, качественно характеризующее предикат по шкале значений [20, 21]. При этом m = 0 условно принимается за поверхность геометрического объекта, а отрицательные и положительные области разделяют внешнюю и внутреннюю его части, соответственно. Очевидно, что если m равно некоторому другому значению, закон алгебры логики сохранится, а изменятся только условия определения внешних и внутренних областей геометрического объекта. Под геометрическими формами в трехмерном декартовом пространстве понимаются такие геометрические области, которые поддаются единому аналитическому описанию вида (1), а также параметрическому представлению, выраженному через шаг или угол поворота. Таким образом, такие элементарные геометрические фигуры, как квадрат, куб или призма, не подходят под это определение по первому признаку. Они образуются пересечением прямых линий или плоскостей, которые теперь представлены простыми геометрическими формами. Окружность, сфера, тор и другие фигуры вращения, образуемые кривыми или поверхностями второго и выше порядков, попадают под это определение, поскольку могут быть представлены одним или несколькими функциями вида (1), и поддаются параметрическому описанию. Поскольку такие фигуры теперь имеют не совсем традиционный состав, то в дальнейшем они определяются в терминологии теории R-функций как предикатные формы. Таким образом, из множества простых геометрических фигур выделен класс форм, который можно отнести к предикатам. Комбинация предикатов с помощью логических операция дает возможность строить произвольные предикатные формы, которые будут описывать реальный геометрический объект. Переход от предикатного уравнения объекта к аналитическому, осуществляется с помощью формальной процедуры замены логических операций на так называемые R-операции (2), которые образуют функционально полные системы. Вісник Запорізького національного університету №1, 2010 90 x x, x 0 y x y x 2 y 2 , x 0 y x y x 2 y 2 , 1 x ~ 0 y 2 xy x 2 y 2 xy x 2 y 2 , x 0 y y x x 2 y 2 , 2 2 x /0 y x y x y . (2) Применение аппарата аналитических функций В.Л. Рвачева дает возможность иметь в системе геометрического моделирования пустое множество объектов-примитивов или предикатов в предположении, что пользователь определит их сам либо в символьном виде с помощью формул, либо посредством вычислительных процедур. Такой подход позволяет унифицировать разные виды геометрических моделей твердых тел при условии, что удается найти функциональные представления для них или конвертировать уже существующие объекты в желаемую форму. В работах В.Л. Рвачева [20, 21] отмечалось, что принципиальных теоретических трудностей при построении уравнений поверхностей геометрических объектов при помощи R-функций нет, однако на практике данная задача является достаточно сложной и неоднозначной. Наиболее часто используемыми методами или функциями геометрического моделирования являются: Эйлеровы операции (пересечение, объединение, вычитание); заметание (sweeping) – представление поверхности в виде следа от перемещения двумерной кривой или контура по заданной траектории; скиннинг (skinning) или натягивание –натягивание поверхности на каркас, образуемый заданными сечениями; скругление или плавное сопряжение; поднятие – перемещение грани объемного тела в заданном направлении. Применение R-функций дает возможность использовать подобные операции в полностью аналитическом виде (например, может быть использована симметрия точечного, трансляционного, циклического и винтового типов). Одним из альтернативных вариантов составления аналитических уравнений, является построение направляющих и границ поперечных сечений в плоском случае, а затем, выполняя преобразование координат, получить соответствующие уравнения поверхностей в пространстве. Примеры использования R-функций для описания объектов представлены на рис. 1-4. а) б) Рис. 1. Пример операции сглаживания: а) первоначальная модель; б) модель, полученная с использованием операции сглаживания Фізико-математичні науки 91 а) б) Рис. 2. Пример операции заметания вращением контура: а) чертеж в плоскости х1Ох2; б) вращение вокруг оси Ох1 а) б) Рис. 3. Конус: а) чертеж в плоскости х1Ох2; б) конус с вершиной в точке (0,0,5) Рис. 4. Использование вращения по спиралевидной траектории для моделирования резьбы ПОСТРОЕНИЕ ТВЕРДОТЕЛЬНОЙ МОДЕЛИ ОБЪЕКТА, ЗАДАННОГО R-ФУНКЦИЕЙ Рассмотрим построение твердотельных моделей с использованием плоскогранного представления и плоскими элементами в виде треугольников. Построение модели, заданной функцией в неявном виде, состоит из двух основных шагов [5, 1]: построение исходного плоскогранного представления, которое в начальном приближении отделяет область моделирования от остального пространства; Вісник Запорізького національного університету №1, 2010 92 корректировка (трансформация и адаптация) положения узлов, лежащих вблизи границы так, чтобы они попали в соответствующие им характерные узлы, на ребра и грани моделируемой области. Поскольку эти этапы практически не связаны друг с другом, рассмотрим их отдельно. Построение первичного плоскогранного представления Наиболее простым подходом к решению этой задачи является использование одного из методов на основе шаблонов. В этом случае в качестве области для построения первичной сетки выбирают одну из подходящих геометрических форм, для которых разработаны шаблоны (разумеется, эта область должна полностью включать в себя заданную). Как правило, в качестве такой "супер-области" используют параллелепипед, хотя в некоторых случаях (например, радиальной симметрии) удобнее использовать цилиндр [5]. Можно использовать один из известных методов [22]: марширующие кубы; алгоритм Канейро; алгоритм «МТ6»; алгоритм Скалы; Заметим, что, при использовании этих методов, построенная сетка получается близкой к равномерной, то есть линейные размеры ее элементов приблизительно равны (рис. 5). Это обусловлено тем, что при построении первичной сетки не используется никакой информации о геометрии заданной области. Исключение составляет только алгоритм «octree», который позволяет учитывать эти особенности и таким образом строить своего рода адаптивные к геометрии сетки. Рис. 5 – Использование шаблонных методов для построения плоскогранного представления Поскольку плоскогранное представление, полученное после работы большинства подобных методов, приводит к порождению элементарных плоскостей в форме треугольников, можем говорить о триангуляции некоторой поверхности. Поэтому в дальнейшем речь пойдет о преобразовании именно триангуляции и термины триангуляция и плоскогранное преставление будут использованы как синонимы. Методика коррекции (адаптации) плоскогранного представления Целью данного этапа является разработка алгоритма, позволяющего строить расчетные сетки, близкие к правильным, в областях с неявной границей. При этом особенности границы области, такие как углы, острые грани, линии пересечения областей, реконструируются автоматически и не требуют нахождения их в явном виде. Основная идея алгоритма состоит в генерации некоторой первичной сетки и итерационного процесса коррекции позиций ее узлов в зависимости от дифференциальных свойств исходной поверхности заданной в неявном виде. Рассмотрим некоторую поверхность S f x, y, z 0 и полученную одним из методов описанных выше приближенную триангуляцию M P, E , T , где P представляет собой уникальный набор узлов сетки, E – набор уникальных ребер и T – уникальный набор треугольников. Процесс коррекции сетки является многократным повторением некоторого преобразования D, которое путем трансформации M приближает ее к поверхности S, то есть: Фізико-математичні науки 93 M n1 D(M n ), (1) где в качестве M выбирается начальная сетка, а оператор D должен быть таким, чтобы выполнялось условие: M n S . (2) n 0 Оператор D, в свою очередь, является композицией нескольких операторов (преобразований), которые при различной их комбинации приводят к выполнению условия (2). Основные преобразования, которые возможно совершить с сеткой M i , следующие: проецирование узлов сетки на поверхность S; сглаживание сетки; трансформация сетки в местах с неадекватным уровнем аппроксимации поверхности S. Проецирование узлов на поверхность Пусть необходимо спроецировать некоторую точку X на нулевую поверхность R-функции, тогда алгоритм нахождения его проекции можно описать следующими шагами: 1. Установить P = X 2. Если f P e конец работы алгоритма. Иначе Q = P. 3. 4. Установить R Q d , где d f Q f Q Если f Q f R 0, то ищем P методом половинного деления отрезке QR пока не будет 5. удовлетворено условие f P e . Конец работы алгоритма. Иначе Q = R, возврат на шаг 3. Точность положения точки P на нулевой поверхности определяется параметром e – переменной, 3 определенной пользователем заранее. Как правило, e 10 . Переменная оказывает значительное влияние на адекватность результата и количество итераций. В случае значения, близкого к единице, возможен случай попадания в близлежащую область (в случае многосвязной области), но малое количество итераций. Значение, близкое к нулю, порождает большое количество итераций. Поэтому выбирается пользователем и на практике выбирается в интервале от e до 3e. Повторяя подобное преобразование для всех узлов сетки, получим преобразование G, которое можно записать в следующем виде: G оператор : P new G Pold , f , (3) где Pnew и Pold – новое и старое положение узла сетки соответственно. Сглаживание сетки Автоматически сгенерированная сетка часто имеет элементы с острыми углами и сильно отличающимися сторонами. Поэтому необходимо применение методов сглаживания, среди которых одним из самых популярных является сглаживание Лапласа, согласно которому узлы перемещаются таким образом, что каждый внутренний узел оказывается центром тяжести тела, образованного с ним соседями. Пусть имеем узел сетки P и набор его соседей P1 , P2 , , Pn , тогда сглаживание Лапласа можно записать в следующем виде: 1 n L( P) Pi . (4) n i1 Рold P1 P2 Р1 Pn Р2 P P3 … Рn Рnew Р3 … a) б) Рис. 6 – a) сглаживание Лапласа; б) вектор смещения Вісник Запорізького національного університету №1, 2010 94 Сглаживание Лапласа в случае изменения положения узла, который не находится в одной плоскости с соседними точками, вносит некоторую погрешность, зависящую от радиуса кривизны S. Скорректировать ее возможно, используя вектор нормали n текущего узла. Следовательно, новое положение узла Р может быть записано в следующем виде: Pnew Pold C LPold Pold LPold Pold n n, (5) где С – константа, которая принадлежит отрезку [0; 1]. Таким образом, преобразование (оператор) сглаживания R для сетки М может быть записано в следующем виде: R оператор : Pnew RPold , Pold , (6) где Pold – список соседних с точкой Pold узлов сетки. Трансформация сетки в местах с неадекватным уровнем аппроксимации поверхности S Исходная поверхность может быть аппроксимирована плоскими гранями двумя способами [2, 3]: плоскими гранями (треугольниками), вершины которых находятся на нулевой поверхности S или очень близко к ней (рис 7 - a); в виде плоскостей, которые являются касательными к поверхности и проходящими через узлы, лежащие на поверхности (рис 7 - б). Крупноблочно алгоритм коррекции исходной сетки можно описать двумя шагами: 1. Построение двойственной сетки, которая строится путем соединения центров треугольников исходной полигональной сетки; проецирование узлов этой сетки на поверхность и нахождение касательных плоскостей в узлах двойственной сетки. 2. Для каждого узла исходной сетки корректируется его позиция путем минимизации суммы квадратов расстояний от этого узла до касательных плоскостей соседних узлов двойственной сетки а) б) Рисунок 7 – Способы аппроксимации поверхности Построение двойственной сетки Для построения двойственной сетки D триангуляции M для каждого треугольника Ti T находится его центр Ci . После этого, используя оператор G, все узлы двойственной сетки проецируются на поверхность S. Таким образом, в результате проецирования двойственной сетки на поверхность, в каждой ее точке определен вектор нормали и, следовательно, может быть построено уравнение касательной плоскости. Нормаль n в каждой точке P и уравнение плоскости m, проходящая через эту точку, будут иметь вид (рис. 8): nP f P , f P m P n P x P 0. Фізико-математичні науки (7) (8) 95 Рис. 8 – Направления нормалей для плоскостей Оптимизация позиции узла x P Расстояние от точки до плоскости может быть получено путем подстановки ее координат в уравнение плоскости. Следовательно, в общем виде для каждой ячейки двойственной сетки и произвольной точки в пространстве можно записать следующие соотношение: E x k 1 nP x P , 2 i i (9) i 0 где x – произвольная точка пространства, k – количество узлов ячейки двойственной сетки. Используя (9) для каждого узла исходной сетки и соответствующей ему ячейки двойственной сетки, получим меру отклонения положения узла. Минимизируя это соотношение, получим скорректированную позицию узла исходной сетки. Для получения оптимального положения узла необходимо решить систему уравнений следующего вида: dE x 0. dx (10) Выражение (10) преобразуется в СЛАУ Ax = b третьего порядка. Матрица A может быть вырожденной в случае, если точка х находится на плоской области или прямой острой линии. Примеры дискретных моделей геометрических объектов Результатом применения композиции операторов сглаживания, проецирования и оптимизации являются дискретные геометрические модели, приведенные на рисунках 9-11. Рис. 9 – Оптимизация узлов сетки по острым ребрам Вісник Запорізького національного університету №1, 2010 96 Рис. 10 – Дискретная модель реального геометрического объекта – «Чашка» Рис. 11 – Фотореалистичная визуализация и дискретная модель для численных расчетов сложного геометрического объекта ВЫВОДЫ На основании вышесказанного можно сделать вывод о том, что применение математического аппарата R-функций позволяет существенно упростить процесс описания топологических моделей геометрических областей практически любой сложности. При этом такой подход лишен большинства недостатков вышеописанных стандартных методов геометрического моделирования. Кроме того, за счет упрощения поиска опорных узлов на поверхности исходного объекта, становится проще и процедура автоматической генерации конечно-элементного разбиения исходной конструкции. Таким образом, использование R-функций как формального способа описания геометрических моделей сложных плоских и пространственных областей является перспективным направлением в современных САПР. ЛИТЕРАТУРА 1. Ollivier-Gooch C.F. Guaranteed-quality simplicial mesh generation with cell size and grading control / C.F. Ollivier-Gooch, Ch. Boivin // Engineering with Computers, 17(3):269–286, 2001. Фізико-математичні науки 97 2. Pasko A., Adzhiev V., Sourin A., Savchenko V. Function representation in geometric modeling: concepts, implementation and applications, The Visual Computer, vol.11, # 8, 1995, pp. 429-446 3. Yu. Ohtake, A. G. Belyaev, and A. A. Pasko. Dynamic meshes for accurate polygonization of implicit surfaces with sharp features. In International Conference on Shape Modeling and Applications, pages 74– 81, Genova, Italy, May 2001.Pages: 171 - 178 4. Басов К.А. ANSYS в примерах и задачах. / К.А. Басов, под общ. ред. Г. Красковского. — М.: КомпьютерПресс, 2002. — 224 c.: ил. 5. Галанин М.П. Разработка и реализация алгоритмов трехмерной триангуляции сложных пространственных областей: итерационные методы / М.П. Галанин, И.А. Щеглов. – M: 2006. – 32c. – [Электронный ресурс]. – Режим доступа: http://library.keldysh.ru/preprint.asp?id=2006-10 6. Голованов Н.Н. Геометрическое моделирование / Н.Н. Голованов. – М.: Физматлит. 2002. – 472с. 7. Гоменюк С.И. Компактная схема решения сверхбольших систем линейных алгебраических уравнений в задачах механики / С.И. Гоменюк, В.А. Толок, В.В. Киричевский, С.Н. Гребенюк // Складні системи і процеси. – Запоріжжя: ЗІДМУ. – 2003. – № 1. – С. 15-20. 8. Гоменюк С.И. Объектно-ориентированные модели и методы анализа механических процессов / С.И. Гоменюк. – Никополь: Никопольская коммунальная типография, 2004. – 316 с. 9. Гоменюк С.И. Универсальная система автоматизации проектирования инженерных конструкций и сооружений FORTU-FEM / С.И. Гоменюк // Технологические системы. – 2004. – № 3. – С. 92-95. 10. Девятов С. Программы семейства COSMOS – универсальный инструмент конечно-элементного анализа (серия вторая) / С. Девятов // CAD-master. – М. – 2002.– №2. – C. 33-40. 11. Дубинский C. ANSYS 8.0: обзор новых возможностей / С. Дубинский // САПР и графика. – 2003. № 11. – [Электронный ресурс]. – Режим доступа: http://sapr.ru/Archive/SG/2003/11/11/ 12. Дубинский С. Программный комплекс ANSYS/LS-DYNA 8.0 / С. Дубинский // САПР и графика. – 2004. - № 3. – [Электронный ресурс]. – Режим доступа: http://sapr.ru/Archive/SG/2004/3/12/. 13. Зенкевич О. Метод конечных элементов в теории сооружений и механике сплошной среды / О. Зенкевич, И. Чанг. – М.: Недра, 1974. – 238 с. 14. Красковский Д.Г. AutoCAD 2000 для всех (русская и английская версии) / Д.Г. Красковский, А.В. Виноградов. – 2-е изд.– М.: КомпьютерПресс, 1999. – 272 c.: ил. 15. Кречко Ю.А. Автокад. Курс практической работы / Ю.А. Кречко, В.В. Полищук. - М.: ДиалогМИФИ, – 1994. – 256 с. 16. Ли К. Основы САПР (CAD/CAM/CAE) / К. Ли. – СПб.: Питер, 2004. – 560 с. 17. Михайленко В.Е. Геометрическое моделирование и машинная графика в САПР / В.Е. Михайленко, В.Н. Кислоокий, А.А. Лященко.– К.: Высшая школа, 1991.– 374с. 18. Михалкин К. КОМПАС-3D V6. Практическое руководство / К. Михалкин, С. Хазаров. - М.:ООО «БИНОМ-Пресс», 2004. — 288 с. 19. Норенков И.П. Основы автоматизированного проектирования / И.П. Норенков – М.: Из-во МГТУ им. Н.Э. Баумана, 2002. – 336 с. 20. Рвачев В.Л. Алгебра логики и интегральные преобразования в краевых задачах / В.Л. Рвачев, А.П. Слесаренко. – К.: Наукова думка, 1976. – 289 с. 21. Рвачев В.Л. Теория R-функций и некоторые ее приложения / В.Л. Рвачев. – К.: Наукова думка, 1982. – 552 с. 22. Семенихин А. Сравнительный анализ методов интерактивной триангуляции сеточных функций / А. Семенихин // Компьютерная графика и мультимедиа. – 2004. – №2(2). – [Электронный ресурс]. – Режим доступа: http://cgm.computergraphics.ru/content/view/63 Вісник Запорізького національного університету №1, 2010