Научная статья на тему 'Графический редактор трёхмерных структур'

Графический редактор трёхмерных структур Текст научной статьи по специальности «Математика»

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

Текст научной работы на тему «Графический редактор трёхмерных структур»

Реализации можно получить, путем соответствующей ее обработки, корреляционную функцию = (АТ • К1) моделируемой случайной функции.

Во-вторых, подготовительные расчеты коэффициентов а допускают полную

авт°матизацию. В простейшем случае, при корреляционной функции вида Ях (т) = Ие ,

П°Дготовительные расчеты не требуются вовсе.

В-третьих, метод применим в условиях, когда корреляционная функция задана Таблично.

В-четвертых, метод не накладывает какие-либо офаничения на вид функций Ях (т).

Г\ ' ^

н применим, например, если

_ , ч -втат / ч />

ЯЛТ)=°——’ ЯЛТ)=-

ах а2+р2т2

В-пятых, метод не обладает методической погрешностью.

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

Недостатком метода является более сложная вычислительная процедура получения Сетчатой реализации X [/:] по сравнению с методом, основанным на цифровой фильтрации Решетчатого белого шума [2].

Литература

1.

Ридина Е.Г Аппроксимация случайных функций детерминированными функциями при Цифровом моделировании. //Цифровые модели в производстве и проектировании РЭС: 2 "*ежвуз. сб. научн. трд. — Пенза: Пенз. гос. техн. ун-т, 1995. — с. 124 - 127.

Цифровое моделирование систем стационарных случайных процессов / Е.Г Гридина, А.Н. •ебедев, Д.Д. Недосекин, Е.А. Чернявский. — Л.: Энергоатомиздат, 1991. 144 с.

УДК 658.512

Гладков Л.А., Коновалов О.В.,

Графический редактор трёхмерных структур.

Пр0 Вероятно большинству специалистов, работающих в области применения САПР в 3Ь Ц0** работы приходилось сталкиваться с графическими редакторами типа АиТОСАО или Вь,в Результаты работы с имеющимися стандартными графическими пакетами приводят к Удо ДУ’ что вышеуказанные модели редакторов либо функционально неполны, либо не “Отворяют требованиям пользователя. Вот это обстоятельство и привело к идее

Пр0 0тки нового редактора, который позволяет: организовывать необходимое число те^ е*«ий (в разных окнах), производить протягивание (лофтинг) объектов с целью получения ^Ижения и / или тел вращения, изменение масштабов объектов и многое другое.

Неок Оздовная идея работы такова: дать пользователю столько видов на объект, сколько ему

водимо.

Теоретическая часть:

Up, ^ (two dimension) плоские случаи. Начнем, пожалуй, с перехода от одной

линейной координатной системы на плоскости к другой. Для данного конкретного

Чая Известно соотношение: X* = (XX + |3у + А,

а» Р, у, ^ I Œ Р У G таких, как

Y* = 7Х + Ру + \1,

ц - произвольные числа, связанные неравенством:

где

не равно 0 и, следовательно, можно ввести ряд преобразований на плоскости

X* = х cos у — у sin \|í

Поворот (вокруг начальной точки на угол у)

Y* = х sin у + у cos у Растяжение (сжатие) вдоль осей координат

X* = ах, Y* = (Ту;

а > 0, а > О

Отражение X* = лх Y* = T|y ,л = + ИЛИ - (знак)

Певенос. Х- = х + ЛЯ У* = у + лц Л =+или-(знак)

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

Для решения рассматриваемых задач весьма желательно охватить матричным подходом все четыре простейших преобразования (в том числе и перенос), а, значит и общее аббинное преобразование. Этого можно достичь, например, так: перейти к описанию произвольной точки плоскости, не упорядоченной парой чисел, как это было сделано выше а упорядоченной тройкой чисел. ’ J р

Однородные координаты точки

Пусть М произвольная точка плоскости с координатами х и у вычисленными относительно заданной прямолинейной координатной системы. Однородными координатами этой точки называется любая тройка одновременно неравных нулю чисел х1 х2 хЗ связанных с заданными числами х и у следующими соотношениями- ’ ’ ' ’

X) Х2

= Х и = Y

ХЗ ХЗ

При решении задач компьютерной графики однородные координаты обычно вводятся так: произвольной точке М(х, у) плоскости ставится в соответствие точка v п в

пространстве. v >

Заметим, что произвольная точка на прямой, соединяющей начало координат точку 0(0, 0, 0), с точкой М *(х, у, 1 ), может быть задана тройкой чисел вида (hx, hy, h), где h не равно 0.

Вектор с координатами hx hy h является направляющим вектором прямой, соединяющей

точки 0(0, 0, 0) и М *(х, у, 1). Эта прямая пересекает плоскость г = 1 в точке ( V п

которая однозначно определяет точк (х, у) координатной плоскости ху Тем самым между произвольной точкой с координатами („ .

чисел вида ( ’ У) И множсством троек

(Ьх, Ьу, Ь), где Ь не равно 0.

устанамшаетя (»заимн» однозначное) соототствие, позволяющее считать числа Ьк, ^У. Ь новыми координатами этой точки.

Широко используемые в проективной геометрии однородные координаты позволяют Эффективно описывать так называемые несобственные элементы (по существу те, «оторви проективная плоскость отличается от привычной нам еекяидовои плоскости).

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

X : у : 1

или, более общо,

/ * ^ х3 -тлеется чтобы числа х 1, х2, хЗ одновременно в

(напомним, что здесь непременно треоуется, чши

Иуль не обращались)

Применение однородных координат оказывается удобны» уже при решении

простейших задач л гг м

Рассмотрим например, „опросы, связанные с изменением масштаба, Ьли устройство

««¡ражен™ мботает только с целыми числами (нли если необходимо работать только с Цель», работает гольк ,ияиения И (например, Ь = 1) точку с однородными

ль,ми числами), то для произвольного значения

Ко°Рдинатами

(0.5 0.1 2.5) „..умном выборе Ь можно добиться того, чтобы

коопп Редсгавить иельзя- Однак Р Р частности, при Ь = 10 для рассматриваемого

К00РДинаты этой точки были целыми числами. В частное! и, .у к

"Римера

(80000 40000 1000)

можно взять, например, Ь=0,001. В результате полу

Прикдениые примеры показы^т полезность использования однородных координат Пои . примеры пока й иелью введения однородных координат в

Р*1 проведении расчетов. Однако, основной применении к геометрический^

к°м»ьютерной графике является их несомненное удобство в применении к геометрический)

пРеобс

-к-иораюВаниям

п „лплинят и матриц третьего порядка можно описать

При помощи троек однородных координа! И МЛ1НИ« У I

Любср „IЛ. м ш фиск д * „,и О самом деле, считая Ь = 1, сравним две записи:

к,°ое аффинное преобразование плоскости. В самом деле,

печенную символом * и нижеследующую, матричную.

(Х * у* 1) = (х у 1)

а

Р

X

о

0

1

Нетрудно заметить что'после перемножения выражений, стоящих в правой части Посп*„ заметить, 4IU Алпиипы (*) и верное числовое равенство 1 = I

еДнего соотношения, мы получим обе формул нмм11

Тем самым сравниваемые записи можно считать р ния не нс в себе явно

Вы Элемеиты произвольной матрицы аффинного |ТР отображение

^Раженного геометрического смысла. Поэтому, чтобы реализован, то или иное отображение, То есть ге°метрического емь > матонць1 По заданному геометрическое описанию,

Необх1И Элементы С00ТВеТСТВУ Л а1Т0^оение этой матрицы в соответствии со

сЛо*„осГ СПСЦИЩ1ЬНЬ1е пр-е-ы. Ы писанными выше частными случаями разбивают на

ностью рассматриваемой задачи и с описан

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

Только этапов

и „ тпхиетствуюшдя тому или иному из выделенных

в|"* случай Гб, Вхорошо »«раженными геометрическим» свойствами. Выпишем соответствующие матрицы третье! О ПОрЯД А- Матрица вращения (rotation) cos ф sin ф 0

IR]=

-sin ф совф 0

0 0 1 Б. Матрица растяжсния(сжати1

L)(dilatation)

1М] =

[Т] =

а О О

0 5 0

.0 0 1

В. Матрица отражения (reflection)

1 0 О

0-10

,0 0 1

Г. Матрица переноса (translation) 10 0'

О 1 О X ц 1

Аффинные преобразования в пространстве

nfina-гимся теперь К трехмерному случаю (3D) (3 dimension) и начнем наши Обратимся в_недения однородных координат, рассмотрения сразу это gWJI0 сделано в размерности два, заменим

Пл^тупая анэлогично тому»

Mjrr,o««y (*. У. ')■дашую ТО,,КУ " н*

(х у г 1)

или, более общо, на нетверд

(hx, hy, hz), где h ю рмно^ начальной точки О) может быть задана четверкой

Каждая точка пр чисел- эта четверка чисел определена однозначно с точностью

одновременно не равных нулю

ДО общего множителя. новому способу задания точек дает возможность

ГТредложенны и в более сложных; трехмерных задачах,

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

Любое аФФи^Г,2й растяжсиий, отражений и переносов (ясно, что в данном в виде суперпозиции вр^еНИбытРь равен четырем), случае порядок матриц должен быть рав

Платоновы тела

Название

многогранника

Тетраэдр

Гексаэдр

Октаэдр

Додекаэдр

Икосаэдр

Число граней Г

4

6

8

12

20

Число ребер Р

6

12

12

30

30

Число вершин В

4

8

6

20

12

Правильными многогранниками (Платоновыми телами) называю многогранники, все грани которых суть правильные многоугольники п ТС* ТЗКИе вьшукль,е при вершинах равны между собой. Как известно, существует ров^ МНогогРанные У™ многогранников, это доказал Евклид. Они правильный тетраэдв Н° ПЯТЬ пРавияьиыХ додекаэдр и икосаэдр. Их основные характеристики приведены в следую^8«^ октаэдР'

Нетрудно заметить, что в каждом из пяти случаев числя г Г110“1 таблице-Эйлера ’ И связаны равенством

Г + В = Р + 2.

Для полного описания правильного многогранника, вследс достаточно указать способ отыскания всех его вершин. ’ таие его выпуклости,

Принципы отсечения невидимых граней для Платоновых тел чрезвычайно просты и сводятся на практике к определению нормали для каждой грани тела и угла между нормалью и проекционной прямой (используется алгоритм Аппеля).

О проецировании

При аксонометрической проекции (а именно с этим видом проекции работает Рассматриваемый редактор) проектирующие прямые перпендикулярны картинной плоскости.

В соответствии с взаимным расположением плоскости проектирования и Координатных осей различают три вида проекций:

• триметрию - нормальный вектор картинной плоскости образует с ортами координатных осей попарно различные углы.

• диметрию - два угла между нормалью картинной плоскости и координатными осями

Равны.

• изометрию - все три угла между нормалью картинной плоскости и координатными

°сями равны. _

Каждый из трех видов указанных проекций получается комбинацией поворотов, за которой следует параллельное проектирование.

Диметрия характеризуется тем, что длины двух проекций совпадают.

Cos3y+ S¡n3<|> Sin3y = Cos2<|>

Отсюда следует, что

Sin:x|/ = Тап2ф

В случае изометрии имеем

CosJ\|/ Sin2 ф Sin7\|/ = Cos2 ф

Sin2\|/ -i- Sin2ф Cos2y = Соб2Ф

Из последних двух соотношений вытекает, что

Sin* ф= 1/3 Sin2\|/ = 1/2

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

Приложение изложенной теории к проблеме построения трёхмерных объектов.

Графический редактор МАР EDITOR объединяет в себе практически все изложенные ®Ь1Ше теоретические принципы представлений и преобразований графических о ъектов.

Редактор предназначен для создания трехмерных объектов и элементов сцены и *>писи полученных объектов в текстовом формате, совместимом с входным языком >пилятора объектов. Минимальные требования к аппаратуре, предъявляемые редактором: IBM PC/AT 386+, мышь. Редактор управляется командами с клавиатуры и мышью. Текущее Состояние отображается в окне статуса, а также курсором мыши.

Объект в редакторе представляется четырьмя взаимозависимыми списками: точек, Угонов, кластеров и BIGOBJECT (если существуют кластеры, то все кластеры ^ДИняются в BIGOBJECT). Следует, наверное, пояснить значения этих терминов.

Список точек представляет собой набор строк вида.

[»точи) [флагАимности] [Х-коорднната] lY-координата] [Z-коордииата]

[№ГО,кн+1] [флаг Активности] [Х-коордииата] [Y-координата Z-координата (»точки«,] (флагАктивности] [Х-коордииат») [Y-координата] [г-коордниата]

или же - „

0 о 123.12 12.0000 0.997

1 1 122Л 44556 121.0000 0.000

п 0 0.0000 1-98989 14.0909

Список полигонов - это перечислительная структура грани, включающая в себя-[№ полигона] I Флаг Активности] [Указатель базиса] [Собственный Флаг] ГЧисло точек1 Г№

точки]...[ № точки+п] -1 1 '

[Ко полигона+1] [ Флаг Активности] [Указатель базиса] [Собственный Флаг1 ГЧисло т*чек1

[№ точки]...[ № точки+п] 1 1™сло точек]

[№ полигона+п] [ Флаг Активности] [Указатель базиса] [Собственный Флаг1 ГЧисло тпчекТ

[№ точки].№ точки+п] J писло точек)

Флаг активности отвечает за то, что при загрузке карты в рабочую область редактора

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

объект (точка / полигон / кластер) будет активен, то есть выделен для работы с ним (преобразования векторов, нормалей, вращения, переносы, лофтинг)

Собственный Флаг присущ полигонам и кластерам. Он отвечает за ряд собственных

атрибутов.

Флаги для POLYGONS.

Ч/ЛШ И д/1л * V*- - __

OFALLV1SIBLE 0x01 виден всегда

OF_TRANSPARENT 0x02 прозрачный объект OF TYPEMASK 0x18 //маска определения типа OF_TYPEPOLY 0x00 - тип полигон, + на большом удалении OFTYPEUNE 0x0« - тип линия, + на большом удалении изобр^?^' Тн^ей например , для русла реки , дороги ... ижс линией,

OF.GROUNDPLACE 0x80 - объект находите, на земле, т.е. координата Z-0

Флаги для CLUSTERS:

CFALLVISIBLE 0x01 - кластер всегда виден (с обеих сторон)

CFNOSORTOBJ 0x02 - объет.1 в юіастере не отсортированы по

CF_ZNORMAL 0x08 - кластер слегка выпуклый (выпуклость

DistZ) УКЛОСТЬ определяется полем

CF JNOBPCOMPUTE Ох 10 - расчет базовой точки не проводить

Флаги для B1GOBJECT:

BOBJF NOUNION 0x01 - «Сборный» BIGOBJECT из свободных кластеп™

BOBJF NOBPCOMPUTE 0x02 - расчет базовой точки не проводить BOBJF GROUNDPLACE 0x80 - объект находится в плоскости земли может закрыть (исключается из сортировки). и никого не

Флаги позволяют повысить скорость обработки движения динам “реальном времени”, производить расчёты с меньшими временными затратам^^ °®ъсктов в

В редакторе реализован ряд алгоритмов, исполняющих некото применительно к обрабатываемому объекту. Одним из таких алггты™ Т0Рые действия, Сазерленда - Кохена. ов является алгоритм

Отсечение отрезка. Алгоритм Сазерленда - Кохена.

В редакторе этот алгоритм используется практически постоянно. Он заключается в разбиении

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

Этот алгоритм в редакторе отвечает за вывод объекта в окно, с учетом границ этого окна (выполняется отсечение по границам [4]).

Лофтинг.

Лофтингом называется «протягивание» определённого тела вдоль определённого пути. В редакторе реализованы два типа лофтинга: получение тела движения и / или тела вращения вдоль / вокруг любой из осей (к сожалению лофтинг не был реализован практически не в одном САПРовском пакете, а, между тем, он значительно облегчает построение, к примеру, сложноконтурных псевдотороидальных поверхностей).

Области применения.

Данный редактор предназначен для построения трёхмерных карт поверхностей Различных тел, чертежей машин, структурных объектов (сродни графовым структурам). Применяя этот редактор в САПР можно добиться высокой степени подобия чертежа оригиналу Исследуемой модели, а так же создать такое количество проекций базового чертежа, сколько м°жет потребоваться.

Пользователь может определять углы зрения, необходимые ему; созданные в редакторе объекты путём незначительной трансформации могут быть перенесены в такие пакеты, как AUTOCAD и 3D STUDIO, а так же и обратно.

Практические примеры

Поимеров карт различных поверхностей за время работы с редактором накопилось количество (более 12 мегабайт, из них около 5 мегабайт - конвертированных из огромное для более наглядной визуализации карт написан ряд надстроек,

различных р^ ^ удаление невидимых граней (полигонов), так и движение динамических определенном «мире» (сцене). После первых проб редактор был дополнен, Объектов найденные в нем огрехи с учетом пожеланий работавших с ним людей, после чего

исправле п^ен в работу, в данный момеет ведется разработка ряда надстроек, которые он снова у некоторые объёмные графовые задачи (сродни представления гиперграфа в

77" Г -Ч”—"■этом

Открытый план

Литература.

1. Ф. Фокс ,М. Пратт Вычислительная геометрия. Поимен«,,,»

на производстве. -Мир, 1982. 8 проектировании и

2. У.Ньюмен Интерактивная машинная графика. -Мир 1985

3. Дж. Фолли Основы интерактивной машинной графики -м„

4. Математика в САПР. В 2-х книгах. -Мир, 1988. •

5. У. Павлидис Алгоритмы машинной графики и oÖDaßnrv« *

связь, 1988 поражений. -Радио и

6. G. Farin Curves and surfaces for computer aided geometric desip

7. D. J. Foley, A. van Dam, S. K. Feiner, J. F. Hughes Com » ademic Press. 1990.

practice.-Addison-Wesley, 1991 Pu er graphics. Principles and

8. L. Ammeral Computer graphics on С language. In 4-s bonk

9. В. П. Иванов, А. С. Батраков Трёхмерная компьютепная ™ * System’ 1992

и связь, 1994. фафика. -Москва, Радио

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