Реферат ................
Анимированный процесс восстановления 3D объекта
Актуальность
В настоящее время проблема восстановления трехмерного объекта по его двумерным проекциям стала одной из актуальных. Возможность автоматического получения двухмерных проекций на основании трехмерной модели имеют практически все системы трехмерного моделирования, однако наличием обратного процесса, т.е. получения трехмерной параметрической модели на основании обычного двухмерного чертежа, характеризуются не все системы. В частности существуют системы автоматического перевода 2D в 3D, такие, как, например, система Xpanel 3D, или система фирмы Autodesk. Однако, в этих системах отмечаются существенные отклонения сформированной трехмерной модели от исходных ортогональных проекций.
Большинство разработанных систем использует восходящий подход моделирования, который начинается с идентификации основных 2D точек для последовательного восстановления 3D точек, линий и поверхностей с целью создания окончательной 3D модели. Хотя ортогональные проекции являются однозначными, синтезирующие процедуры, конструирующие трехмерные объекты, могут производить ложные 3D элементы, которые должны быть удалены для получения требуемой 3D модели.
При решении подобной задачи как обычной чертежной, применяют более абстрактные интерпретирующие методы. Вместо того, чтобы начинать процесс интерпретации, рассматривая отдельные точки, рассматривают многоугольники на различных видах как проекции граней в течение всего процесса интерпретации. Такой способ представляет собой нисходящий процесс интерпретации. Как показал анализ, для организации такого процесса интерпретации исходный чертеж необходимо описать с помощью грамматики G1 по Хомскому.
Рисунок 1. Ортогональные проекции многогранника
|
Цель и задачи исследования
В инженерной практике существует несколько правил для идентификации проекций (Рисунок 2)
1. Отношение между линией на виде сверху и многоугольником на виде спереди:
1.1. Вертикальная линия lа, проходящая через левую точку линии на виде сверху должна пересечься с крайней левой точкой многоугольника на виде спереди.
1.2. Вертикальная линия lb, проходящая через правую точку линии на виде сверху должна пересечься с самой правой точкой многоугольника на виде спереди.
2. Отношение между многоугольником на виде спереди и многоугольником на виде справа:
2.1. Горизонтальная линия lg, проходящая через самую верхнюю точку многоугольника на виде спереди должна пересечь самую верхнюю точку многоугольника на виде справа.
2.2. Горизонтальная линия lh, проходящая через точку основания многоугольника на виде спереди должна пересечь точку основания многоугольника на виде справа.
3. Отношение между линией на виде сверху и многоугольником на виде справа:
3.1Вертикальная линия le, проходящая через линию пересечения оси, проведенной под углом в 45°, и горизонтальной линии (lс -dot-d3) пересекает самую правую точку многоугольника на виде справа. Линия le проходит через самую верхнюю точку линии на виде сверху и пересекает d3.
3.2 Вертикальная линия lf, проходящая через линию пересечения оси, проведенной под углом в 45°,и горизонтальной линии пересекает самую левую точку многоугольника на виде справа. Линия ld проходит через нижнюю точку линии на виде сверху и пересекает d4.
4. Отношение между линиями на виде спереди и линиями на виде справа:
Сторона многоугольника на виде спереди соответствует стороне многоугольника на виде справа, если общая точка может быть идентифицирована через вид сверху.
Рисунок 2. Идентификация проекций
|
Для того, чтобы проверить, выполняются ли эти условия, необходимо иметь специальный язык, поддерживающий такие геометрические описания. Описания на естественном языке (пункты 1 - 4) содержат конъюнкции, дизъюнкции, отношения между элементами или группами элементов, и т.д. Подобные описания можно реализовать с помощью грамматики G1 по Хомскому. Этот язык позволяет производить комплексные описания проекций 3D модели. Синтезирующая программа, которая восстанавливает 3D объект, имеет в качестве входных данных выражения, описывающие ортогональные проекции. Цель данной работы состоит в генерации 3D объекта по его ортогональным проекциям, описанным с помощью декларативного языка.
Одним из простейших подходов к проблеме построения 3D объекта является использование метода полного перебора, в котором каждый отдельный объект (точка, линия и многоугольник) на каждом из видов сравнивается со всеми объектами на остальных видах.
Однако этот подход является не совершенным из-за большой вычислительной трудоемкости. Обычный инженер не использует подобную методику при построении 3D объекта. Поэтому целесообразно использовать элементы эвристики при выборе соответствующих объектов. Для этого необходимо упорядочить многоугольники на видах для процесса сканирования.
Методика
Для решения проблемы восстановления 3D объекта по его двумерным проекциям традиционно используется восходящий подход проектирования, который приводит к получению ложных 3D элементов. В данной работе используется нисходящий процесс интерпретации, основанный на описании исходного чертежа с помощью грамматики G1 по Хомскому, которая позволяет производить комплексное описание проекций 3D модели.
Описание языка
Для решения данной задачи можно определить следующий язык.
Синтаксическими элементами данного языка являются:
- множество базовых типов;
- множество базовых выражений или символов для каждого типа;
- множество синтаксических правил для построения правильно сформулированных выражений языка.
Теперь определим язык L для представления чертежей. Домен А для определенной модели М. содержит все графические символы, которые могут быть на ортогональных видах.
Пусть S - множество базовых типов:
S = {bool, view, integer, real, dot, line, iline, path, polygon, dot3d, line3d, path3d, polygon3d} где
- bool - логический тип
- view - тип ортогональных проекций
- integer - целый тип данных
- real - вещественный тип данных
- dot - тип 2D точки
- line - тип 2D отрезка
- iline - тип 2D линии
- path - тип 2D ломаной
- polygon - тип 2D полигона
- dot3d - тип 3D точки
- line3d - тип 3D отрезка
- path3d - тип 3D ломаной
- polygon3d - тип 3D полигона
Определим множество основных элементов
bool = {F ,T} такое что F(F) = F y F(T)= T.
view= {top, front, right} такое что F(top)=top, F(front)=front and F(right)=right.
real ={r1, r2, ... }, такое что F(r)= действительное число r.
integer = {n1, n2, ...}, таких что F(n)= целое число n.
dot = {d1, d2, ... ,dn}- множество точек, такое что F(di)=di.
line = {li, 12, ... ,lm }- множество линий, такое что F(li)=li.
iline = {verAxis, horAxis, axis45} - оси ортогональных проекций.
path = {empty, ki, k2, ..., kn} - множество ломаных, такое что F(empty)=empty, F(ki)=ki.
polygon= {p1, p2, ..., pn}- множество полигонов, такое что F(pi)=pi.
Dot3d, line3D, path3D, polygon3D определяется анологично.
bool = {^, v, =>} символы, которые представляют логические операции and, or и импликацию.
Определим основные функции
rad - функция переводящая радианы в градусы
dot - функция имеющая в качестве аргументов два действительных числа (координаты x и y), результат - 2D точка.
line - функция, аргументами которой являются значения двух точек, результат - отрезок между ними.
iline - функция, аргументами которой являются точка и угол в радианах, результат - линия, проходящая через точку и совпадающую с касательной, чей угол наклона равен тангенсу заданного угла.
path - функция, аргументами которой являются линия и ломанная, результат - ломаная, полученная с помощью канкантенации прямой и ломаной.
polygon - функция, аргументами которой является замкнутая ломанная, результат - полигон.
{hor, ver, inc}; hor - функция, аргументами которой являются линия и булевое число, указывающее является ли линия горизонтальной. Аналогично для вертикальной и наклонной.
path_of_polygon - функция, значением которой является полигон, рассматриваемый как ломаная.
{dot3d} - конструктор 3D точек.
{line3d} - конструктор 3D линий.
{path3d} - конструктор 3D ломаных.
{polygon3d} - конструктор 3D полигонов.
proj - функция, аргументами которой являются два вида и точка, значением - бесконечная линия, проходящая через точку на обоих проекциях.
intersection определяет следующую функцию: intersection(xiline,yiline) - является ли dot точкой пересечения xiline и yiline.
distance - функция, аргументами которой являются две точки, а результатом расстояние между ними.
head - функция, аргументом которой является ломаная, а результатом - отрезок - звено ломаной.
dot_of_polygon - определяет функцию, аргументами которой являются точка и полигон, а результатом - булевая переменная, показывающая принадлежит ли точка границе полигона.
line_of_polygon - показывает, принадлежит ли линия границе.
С помощью данного языка опишем 3D точку (Рисунок 3)
Рисунок 3. Интерпретация ортогональных проекций точки
|
Отрезки dx, dy, dz являются координатными величинами x,y,z, соответственно, точки 3D. Точки origeriTop и origenFront представляют собой начало трехмерной координатной системы.
(x, y, z) = dot3d(distance(origenTop, intersection(iline(Xdot, rad(90)), iline(origenTop, 0))),
distance(origenTop, intersection(iline(Xdot, 0), iline(origenTop, rad(90)))), distance(origenFront, intersection(iline(Ydot, 0), iline(origenFront, rad(90))))).
3D точка построена по трем ортогональным проекциям Xdot € TOP, Ydot € FRONT, Zdot € RIGHT.
Пример описания 3D линии
Рисунок 3. Интерпритация ортогональных проекций косонаправленной грани
|
(xline, yline, zline) = line3d(vertex(left(Xline), left(Yline), intersection(proj(front, right, left(Yline), Zline)),
vertex(right(Xline), right(Yline), intersection(proj(front, right, right (Yline), Zline)))
Ожидаемые результаты
В результате данной работы ожидается получение синтезирующей программы, которая на основе анализа описания с помощью декларативного языка ортогональных проекций, восстанавливает 3D объект.
Выводы
В данной работе был изложен способ описания исходного чертежа с помощью декларативного языка для генерации 3D модели. Не смотря на то, что ортогональные проекции являются однозначными, синтезирующие процедуры, базирующиеся на вычислении местных свойств геометрических данных, могут генерировать ложные 3D элементы, поэтому верность полученной модели проверяется через математические критерии.
Подход к решению этой проблеме напоминает интуитивные рассуждающие процессы, используемые в действиях человека. Процедура конструирования была разработана, чтобы моделировать графический процесс рассуждения с естественными ограничениями. В данной работе были показаны процедуры описания для воспроизведения 3D модели, которые напоминают интуитивные процессы, используемые человеком в своих действиях. Данные результаты поддерживают гипотезу, что графические понятия могут быть представлены абстрактным способом с помощью грамматики G1 по Хомскому, разрешающей рассмотреть интеграцию графических и лингвистических понятий в общем представительном формализме.
ПЕРЕЧЕНЬ ССЫЛОК
1. А. Ахо, Дж. Ульман "Теория синтаксического анализа, перевода и компиляции", Москва, 1978.
2. А. Г. Горелик. "Автоматизация инженерно-графических работ с помощью ЭВМ", Минск, 1980.
3. Д. М. Зозулевич, "Машинная графика в автоматизированном проектировании", Минск, 1976.
4. Gabriela Garza, Luis Pineda, "Synthesis of Solid Models of Polyhedra from their Orthogonal Views using Logical Representation", http://leibniz.iimas.unam.mx/~luis/
5. Георгий Евгенев "Новые возможности обработки геометрических знаний",
http://www.sprut.ru/public/stat/answer9.html
|