Научная статья на тему 'Алгоритмы визуализации нелинейчатых поверхностей'

Алгоритмы визуализации нелинейчатых поверхностей Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
83
26
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
нелинейчатая поверхность / пространственная линия / сплайн / сеть / грань / not linear surface / spatial line / spline / Mesh / Side

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Замятин Александр Витальевич, Сухомлинова Виктория Викторовна

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Замятин Александр Витальевич, Сухомлинова Виктория Викторовна

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

In article visualisation questions not the linear surfaces which do not have analytical descriptions are considered. Algorithms of visualisation of surfaces are developed by a mesh and polygonal model. Such representation of surfaces does their more evident and convenient in application.

Текст научной работы на тему «Алгоритмы визуализации нелинейчатых поверхностей»

ISSN 0321-2653 ИЗВЕСТИЯ ВУЗОВ. СЕВЕРО-КАВКАЗСКИЙ РЕГИОН.

ТЕХНИЧЕСКИЕ НАУКИ. 2010. № 6

УДК 515.681.3

АЛГОРИТМЫ ВИЗУАЛИЗАЦИИ НЕЛИНЕЙЧАТЫХ ПОВЕРХНОСТЕЙ © 2010 г. А.В. Замятин, В.В. Сухомлинова

Ростовский государственный Rostov State Building

строительный университет University

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

Ключевые слова: нелинейчатая поверхность; пространственная линия; сплайн, сеть; грань.

In article visualisation questions not the linear surfaces which do not have analytical descriptions are considered. Algorithms of visualisation of surfaces are developed by a mesh and polygonal model. Such representation of surfaces does their more evident and convenient in application.

Keywords: not linear surface; spatial line; spline, mesh; side.

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

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

Приведенные в статье алгоритмы разрабатывались в среде ObjectABX для AutoCAD 2007 [1, 2]. Технология программирования Object ABX позволяет в полной мере использовать алгоритмические возможности среды программирования Visual C++ [3] и графические возможности системы AutoCAD [4].

Пусть поверхность задана в виде линейчатого каркаса. Линейчатый каркас представляет собой набор сплайнов, размещенный на уровне 0 (рис. 1).

Рис. 1. Поверхность, заданная сплайнами

Приведенный на рис. 1 способ задания поверхности удобен для применения, так как в системе AutoCAD есть команда « spline», позволяющая вводить их в чертеж, но приведенная поверхность имеет недоста-

точную наглядность. Выполним визуализацию этой поверхности моделью в виде сети, состоящей из n линий семейства u и m линий семейства v. Оба семейства линий изображаются сплайнами, точки, определяющие сплайны семейств u и v, совпадают. Доступ к базе рисунка осуществляется через итераторы. Промежуточные данные хранятся в списках с использованием шаблонов. Такие списки позволяют хранить данные любого типа [5].

Рассмотрим алгоритм функции Mesh, которая строит заданное число n сплайнов, пересекающих имеющиеся сплайны в базе рисунка на заданном уровне. В качестве входных параметров функция использует имя уровня с исходными сплайнами, хранящееся в строковой переменной LName 1, имя уровня для записи полученных сплайнов - LName2 и целое число n. Блок-схема функции приведена на рис. 2.

1. Открыть базу данных рисунка.

2. Создать итератор для доступа к объектам базы рисунка.

3. Установить итератор на начальный объект базы данных.

4. Условие: если достигнут конец базы, то вычисление ведется по ветви «Да», иначе по ветви «Нет».

5. Извлечь сплайн с уровня LName 1.

6. Поделить сплайн на n частей и полученный массив точек записать в список. Указатель на первый элемент списка присвоить переменной h.

7. Перевести итератор на следующий объект базы рисунка.

8. Присвоить i = 0.

9. Условие: если i < n, то вычисление ведется по ветви «Да», иначе по ветви «Нет».

10. Присвоить l = h.

11. Условие: если достигнут конец списка, то вычисление ведется по ветви «Да», иначе по ветви «Нет».

12. Полученный массив точек из элемента списка с указателем l записать в pts.

13. В массив точек pts1 добавить i-ю точку из массива pts.

14. l присвоить указатель на следующий элемент списка.

ISSN 0321-2653 ИЗВЕСТИЯ В УЗОВ. СЕВЕРО-КАВКАЗСКИМ РЕГИОН.

ТЕХНИЧЕСКИЕ НАУКИ. 2010. № 6

15. Изобразить сплайн на уровне LName1., проходящий через точки хранящиеся в массиве pts1.

16. Значение переменной i увеличить на 1.

17. Закрыть базу рисунка.

Рис. 2. Блок-схема функции Mesh

Для создания сети вызывается функция Mesh с именем уровня 0, на котором находятся сплайны, задающие исходную поверхность, и получаем сплайны семейства v на уровне с именем 1. Затем снова вызываем данную функцию с именем 1 и получаем сплайны второго семейства.

Пример работы функции приведен на рис. 3. Еще более наглядной моделью поверхности является полигональная модель. Она представляет поверхность в виде плоских треугольных отсеков (граней). Модели такого типа позволяют решать задачи освещенности поверхностей, собственных и падающих теней, удаления невидимых линий. Следующая функция Face, по построенной предыдущей функцией сети, создает полигональную модель поверхности. Она также использует объекты базы рисунка по тем же принципам, что и функции Mesh.

Рис. 3. Поверхность, заданная сетью Пример работы функции Face приведен на рис. 4.

Рис. 4. Полигональная модель поверхности

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

Литература

1. Сайт www.objectarx.com

2. Полищук Н.Н. AutoCAD. Разработка приложений, настройка и адаптация. БХВ - Петербург. СПб., 2006.

3. Полищук Н.Н. AutoCAD 2007. БХВ - Петербург. СПб., 2008.

4. Секунов Н.Ю. Visual C++ Визуальная среда программирования. Bhv. М., 1999.

5. Труб И.И. Моделирование на С++. Питер. СПб., 2006.

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

Замятин Александр Витальевич - канд. техн. наук, доцент, кафедра «Начертательная геометрия и черчение», Ростовский государственный строительный университет. Тел. (863)263-57-31, 227-75-90. E-mail: [email protected]

Сухомлинова Виктория Викторовна - ассистент, кафедра «Начертательная геометрия и черчение», Ростовский государственный строительный университет. Тел. (863)263-57-31, 227-75-90. E-mail: [email protected]

Zamyatin Aleksandr Vitalievich - Candidate of Technical Sciences, assistant professor, department «Descriptive Geometry and Sketching», Rostov State Building University. Ph. (863)263-57-31, 227-75-90. E-mail: [email protected]

Suhomlinova Victoria Viktorovna - assistant, department «Descriptive Geometry and Sketching», Rostov State Building University. Ph. (863)263-57-31, 227-75-90. E-mail: [email protected]

i Надоели баннеры? Вы всегда можете отключить рекламу.