Норенков И.П. - Основы автоматизированного проектирования (1060628), страница 34
Текст из файла (страница 34)
Например, модель плиты с отверстием в ней может быть получена вычитанием цилиндра из параллелепипеда.Метод на основе БЭФ часто называют методом конструктивной геометрии. Это основной способ конструирования сборочных узлов в современныхСАПР-К.В памяти ЭВМ рассмотренные модели обычно хранятся в векторной форме, т. е. в виде координат совокупности точек, задающих элементы модели.Операции конструирования также выполняются над моделями в векторной форме. Наиболее компактна модель в виде совокупности связанных БЭФ, котораяпреимущественно и используется для хранения и обработки информации обизделиях в системах конструктивной геометрии.Однако для визуализации в современных рабочих станциях в связи с использованием в них растровых дисплеев необходима растризация — преобразование модели в растровую форму.
Обратную операцию перехода к векторнойформе, которая характеризуется меньшими затратами памяти, называют векторизацией. В частности, векторизация должна выполняться по отношению кданным, получаемым сканированием изображений в устройствах автоматического ввода.Геометрические моделиВажной составной частью геометрических моделей является описание поверхностей. Если поверхности детали — плоские грани, то модель может бытьвыражена достаточно просто определенной информацией о гранях, ребрах, вершинах детали. При этом обычно используется метод конструктивной геометрии.
Представление с помощью плоских граней имеет место и в случае болеесложных поверхностей, если эти поверхности аппроксимировать множествами плоских участков — полигональными сетками. Тогда можно поверхностнуюмодель задать одной из следующих форм:1) модель есть список граней, каждая грань представлена упорядоченнымсписком вершин (циклом вершин); эта форма характеризуется значительнойизбыточностью, так как каждая вершина повторяется в нескольких списках;2) модель есть список ребер, для каждого ребра заданы инцидентные вершины и грани.1463. 7.
Математическое обеспечение подсистем машинной графикиОднако аппроксимация полигональными сетками при больших размерах ячеек сетки дает заметные искажения формы, а при малых размерах ячеек оказывается неэффективной по вычислительным затратам. Поэтому более популярныописания негогоских поверхностей кубическими уравнениями в форме Безье или 5-сплайнов.Знакомство с этими формами удобно выполнить, показав рнс 3.27.
Криваяих применение для описания геометрических объектов пер- Безьевого уровня — пространственных кривых.П р и м е ч а н и е . Геометрическими объектами нулевого, первого и второго уровнейназывают соответственно точки, кривые, поверхности.В подсистемах МГиГМ используются параметрически задаваемые кубические кривые32x(t) = axt + bxt + cxt + dx ;3X2y(t) = ay t + by t + cy t + dy ;(3.48)32z(t) = a.t + b_t + cj + d_,где 1 > t > 0. Такими кривыми описывают сегменты аппроксимируемой кривой, т. е.
аппроксимируемую кривую разбивают на сегменты и каждый сегментаппроксимируют уравнениями (3.48).Применение кубических кривых обеспечивает (соответствующим выборомчетырех коэффициентов в каждом из трех уравнений) выполнение четырехусловий сопряжения сегментов.
В случае кривых Безье этими условиями являются прохождение кривой сегмента через две заданные концевые точки и равенство в этих точках касательных векторов соседних сегментов. В случае5-сплайнов выполняются условия непрерывности касательного вектора и кривизны (т. е. первой и второй производных) в двух концевых точках, что обеспечивает высокую степень «гладкости» кривой, хотя прохождение аппроксимирующей кривой через заданные точки здесь не обеспечивается. Применениеполиномов выше третьей степени не рекомендуется, так как велика вероятность появления «волнистости».В случае формы Безье коэффициенты в (3.48) определяются, во-первых,подстановкой в (3.48) значений (=0к(=1и координат заданных концевых точек Р, и Р4 соответственно, во-вторых, подстановкой в выражения производныхdx/dt = ЗаX t2 + 2bX + с х',dy/dt = За, Г 2 + 2byt + с ,dz/dt = 3a.t2 + 2b.t + с.тех же значений / = 0 и / = 1 и координат точек Р2 и Р3, задающих направлениякасательных векторов (рис.
3.27). В результате для формы Безье получаем(3.49)1473. Математическое обеспечение анализа проектных решений-13-31Т а б л и ц а 3.11-33003-6301-1/60001/2-1/21/61/2_j02/3Т а б л и ц а 3.12-1/21/61/201/201/60где Т т = (/ 3 , t2, t, 1) — вектор-строка, матрица М представлена в табл. 3.11,G^ — вектор координат Pxi точек Р,, Р2, Р 3 и Р4, аналогично Gy, G,— векторыкоординат Р „ Р.
, тех же точек.В случае 5-сплайнов аппроксимируемая кривая делится на п участков, выделяемых последовательными точками Р0, Р,, Р2, ..., Ри. Участок между паройсоседних точек Р( и Р[+] аппроксимируется ^-сплайном, построенным с использованием четырех точек Р,.,, Р„ Р,+ ,, Р,+2. 5-сплайн на участке [Р(, Pj+1] можетбыть представлен выражениями, аналогичными (3.49),для которых матрица М имеет иной вид и представлена в табл.
3.12, а векторы Gx, G^, G. содержат соответствующие координаты точек Р,_1; Р„ Р, +1, Р,+2.Покажем, что в точках сопряжения для первой и второй производных аппроксимирующего выражения выполняются условия непрерывности, что требуется по определению В-сплайна.
Обозначим участок аппроксимирующего В-сплайна, соответствующийучастку [Р , Р +1] исходной кривой, через [Q(, Q, +]]. Тогда для этого участка и координатых в точке сопряжения Q /+ , имеем t = 1 иdX(t)ldt\t__ , = [3t\ 2t, 1, 0] М [*_„*, *+|, xi+2F= [3, 2, 1 , 0] М [х,_„ х, , xi+], x+2]T= (хм-х)П;d2x(t)ldt\^ = [6t, 2, 0, 0] М [х^х^х^х^- [6,2, 0, 0] М [*,_,,*, ,х + „х +2 ] т =х -2х„+хмДля участка [Q|+1 Qi+2] в той же точке Qi+| имеем t = 0 и0= [0, 0, 1,0] М [х„х^,хм,х^=(хм-хУ2;Uo = [0. 2, 0, 0] М [х> „ xi+],xi+2, xi+3] т = х - 2 х,+1+ х,+рт. е. равенство производных в точке сопряжения на соседних участках подтверждаетнепрерывность касательного вектора и кривизны.
Естественно, что значение хкоординаты х точки Qi+1 аппроксимирующей кривой на участке [Q^ QI+1]= [1, 1, 1, 1] М4xравно значению х , подсчитанному для той же точки на участке [Qi+1 Q,+2], но значениякоординат узловых точек х и х +] аппроксимирующей и аппроксимируемой кривых несовпадают.Аналогично можно получить выражения для форм Безье и 5-сплайновприменительно к поверхностям с учетом того, что вместо (3.48) используютсякубические зависимости от двух переменных.1483. 7. Математическое обеспечение подсистем машинной графикиМетоды и алгоритмы машинной графики(подготовки к визуализации)К методам машинной графики относят методы преобразования графическихобъектов, представления ( развертки) линий в растровой форме, выделения окна,удаления скрытых линий, проецирования, закраски изображении.Преобразование графических объектов выполняется с помощью операцийпереноса, масштабирования, поворота.Перенос точки из положения Р в новое положение С можно выполнять поформулам типагде Дд^ — приращение по координате х,.
Однако удобнее операции преобразования представлять в единой матричной формеС=РТ,(3.50)где Т — преобразующая матрица. При этом точки С и Р в двумерном случаеизображают векторами-строками 1 х 3, в которых кроме значений двух координат, называемых при таком представлении однородными, дополнительноуказывают масштабный множитель W. Тогда перенос для случая ID можновыразить в виде (3.50), где Т есть табл. 3.13, a W- 1.Для операций масштабирования и поворота матрицы Т представлены втабл. 3.14 и 3.15 соответственно, где тх, ту — масштабные множители, ф —угол поворота.Т а б л и ц а 3.14Т а б л и ц а 3.13Т а б л и ц а 3.1510A*i01Ах2001тх000ту0001COS фsin ф-sin ф0COS ф0001Удобство (3.50) объясняется тем, что любую комбинацию элементарныхпреобразований можно описать формулой (3.50).
Например, выражение длясдвига с одновременным поворотом имеет видС = РТсд Тпов = РТ,'где Т = ТсдТшв; Тсд — матрица сдвига; Тпов — матрица поворота.Представление графических элементов в растровой форме требуется дляотображения этих элементов на битовую карту растровой видеосистемы. Пустьтребуется развернуть отрезок АВ прямой у = ах + Ь, причем 1 > а > 0 (при других значениях а рассматриваемый ниже алгоритм остается справедливым после определенных модификаций). Введем обозначения: А = (ха, yd), В = (xb, yb);за величину дискрета (пиксела) примем единицу. В алгоритме развертки номерастрок и столбцов карты, на пересечении которых должны находиться точкиотрезка, определяются следующим образом:1493. Математическое обеспечение анализа проектных решений1) Ах : = хЪ - ха;Ay:=yb-ya;х := ха;у: = уа;2)d = 2Ay- Ax;3) если d> О, то {у : = у +1; d := d+ 2(Ау - Ах)};иначе d:=d+2 Ay;4)jc: = *+ 1;5) переход к пункту 3, пока не достигнута точка В.Рис.
3.28. Выделение окна Экономичность этого алгоритма обусловливаетсяотсутствием длинных арифметических операций типа умножения.Выделение окна требуется при определении той части сцены, которая должна быть выведена на экран дисплея.Пусть окно ограничено линиями х = *,, х = х2, у =уг,у = У2 (рис. 3.28). Поочередно для каждого многоугольника проверяется расположение его вершини ребер относительно границ окна. Так, для многоугольника ABCD при отсечении по границе х = х2 просматривается множество вершин в порядке обходапо часовой стрелке. Возможны четыре ситуации для двух последовательныхвершин Р и R:1) если JCP > х2 и XR > х2, то обе вершины и инцидентное им ребро находятсявне окна и исключаются из дальнейшего анализа;2) если хг < х2 и XR < x2, то обе вершины и инцидентное им ребро остаютсядля дальнейшего анализа;3) если jc p < х2 и XR > х2, то вершина Р остается в списке вершин, а вершинаR заменяется новой вершиной с координатами х = х2, у = yf + (yR - уг)(х2 -XP)/(XR-xf); в нашем примере такой новой вершиной будет Е;4) если хр > х2 и XR < х2, то вершина Р заменяется новой вершиной сххXа вешинакоординатами х = х2, у =yR + (yf-yR)(x2- *У( г~ R)'РR остаетсяв списке вершин; в нашем примере новой вершиной будет КПосле окончания просмотра применительно ко всем границам в окне оказываются оставшиеся в списке вершины.Применяя эти правила в нашем примере, получаем сначала многоугольникAEFD, а после отсечения по верхней границе у = у2 — многоугольник AGFD(см.
рис. 3.28). Однако правильный результат несколько иной, а именно многоугольник AGHFD. Этот правильный результат получается при двойном обходевершин сначала по часовой стрелке, затем против с включением в список новыхвершин, появляющихся при каждом обходе.Применяют ряд алгоритмов удаления скрытых линий. Один из наиболеепросто реализуемых алгоритмов — алгоритм z-буфера, где z-буфер — областьпамяти, число ячеек в которой равно числу пикселов в окне вывода. Предполагается, что ось z направлена по нормали к видовой поверхности и наблюдательрасположен в точке z = 0.150Упражнения и вопросы для самоконтроляВ начале исполнения алгоритма все пикселы соотА'ветствуют максимальному значению z, т.