68912

Виды проектирования

Лекция

Информатика, кибернетика и программирование

Линия горизонта и точка схода являются особенностью изображения и реально не существуют в трёхмерном пространстве. Однако наша задача получить картину трёхмерного изображения, т.е. двухмерную твердую копию (на экране, на бумаге).

Русский

2014-09-27

92.5 KB

0 чел.

ЛЕКЦИЯ 9

Виды проектирования

К основным видам проектирования в машинной графике относятся:

                –параллельные;

                –центральные (перспективные);

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

Параллельные проекции:          Перспективные

                                                         (центральные проекции):

–ортографическая;                   –одноточечные;

–аксонометрическая;               –двухточечные;

–кабинетная;                             –трёх точечные;

Параллельные горизонтальные линии встречаются в точке схода. Все точки схода лежат на одной прямой линии,  называемой линией горизонта.

Линия горизонта и точка схода являются особенностью изображения и реально не существуют в трёхмерном пространстве. Однако наша задача получить картину трёхмерного изображения, т.е. двухмерную твердую копию (на экране, на бумаге).

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

                      

                                      E

                                                         r    

Т.е., большое значение имеет расстояние между глазом и объектом.

             Е–точка наблюдения;

             О–центральная точка объекта (приблизительно центр   

                   объекта);

             ОЕ–линия наблюдения

–Чем больше r, по сравнению с размером объекта, получается параллельная проекция, часто применяющаяся на практике.

–При   r   будет преувеличен эффект перспективы

(r=2–предмет может выглядеть совершенно не естественно)

        E

–Точка в двухмерном пространстве и трёхмерном представляется соответственно координатами (x, y) и (x, y, z).

При необходимости получения проекции задается большое количество точек P (x, y, z), принадлежащих объекту, для которых предстоит вычислить координаты точек изображения P`(x, y) на картине.

Для этого нужно преобразовать координаты точки P из мировых координат (x, y, z) в экранные (X,Y).

Это отображение удобно выполнить в два этапа:

             – точка  P остается на своем месте, но система мировых

координат переходит в систему видовых координат–видовое преобразование;

             – преобразование точки Р в точку Р`, объединенное с переходом из системы трёхмерных видовых координат в систему двухмерных экранных координат.

               Мировые координаты (xw , yw, zw)

                   Видовое          преобразование

                   

               Видовые координаты (хe, ye, ze)

        Перспективное         преобразование

                   

               Экранные координаты (X,Y)

Видовое преобразование

 Для выполнения видовых преобразований должны быть заданы точка наблюдения (Е), совпадающая с глазом, и объект.

 Система мировых координат должна быть, желательно,        

правой и удобно, чтобы начало ёё координат располагалось вблизи центра объекта, поскольку объект наблюдается в направлении

от Е к О.

Пусть точка Е задана в сферических координатах r,q,Y  по отношению к мировым координатам.     

                                    ze  zw

                                                       j                                       

                                                          r

                                              O                       ye

                                                                           yw

                                              xe                      q

                               xw

Мировые  координаты могут быть вычислены:

xe=rsinjcosq;

ye=rsinjcosq;

                                               ze=rcosj;

Нашей конечной задачей будет вычисление экранных координат X,Y, для которых X и Y лежат в плоскости экрана, расположенной между точками Е и О и перпендикулярной направлению наблюдения ЕО.

Начало системы видовых координат располагается

в точке Е–точка наблюдения.

                                                  ye

                                   zw

                                                       E                  

                                                                              xe

                                       ze

                             O

                                                                 yw

         xw

                                                                 рис.1

При направлении взгляда из Е в О положительная полуось Хе направлена вправо, Ye –вверх. В дальнейшем экранные оси определим в том же направлении.

Направление оси  Ze выбирается так, чтобы значения координат увеличивались по мере удаления от точки наблюдения (Е), хотя система координат получается левосторонней. Видовое преобразование может быть записано в форме:

[xe,ye,ze,1]=[xw,yw,zw,1] *V,

 V–матрица видового преобразования, размером 4*4.

Матрица V получается путем переумножения 4-х матриц.

{если преобразование изменяет координаты, значит, определяется матрицей, обратной матрице, соответствующей преобразованию точек}

  1.  Перенос из О в Е.                                                                z

Точка Е становится новым началом координат.

                                                                                  zw

       1    0   0  0

       0    1   0  0                                                                                      

Т=   0    0   1  0                                                                         q            y

      -xe -ye -ze 1                                                                   x

                                                                                                   yw

                                                                    xw

2. Поворот координатной системы вокруг оси Z на угол  (p-q) в отрицательном направлении.

                                                                                                      z

         cos(p/2-q)   sin(p/2-q)   0       sinq   cosq    0  

Rz=   -sin(p/2-q)  cos(p/2-q)    0  =  -cosq  sinq    0                          p-j

           0                 0                  1          0       0       1               j

                                                                                                                        

                                                                                                                                                                         

                                                                                    x                                  

     Совместим ось Y с горизонтальной составляющей отрезка ОЕ, тогда ось Х перпендикулярна отрезку ОЕ.                                                                                                                   

  1.  Поворот системы координат вокруг оси Х на угол (p-j)

 Поскольку новая ось Z должна совпадать по направлению с отрезком ЕО, повернем систему координат вокруг оси X на угол (p-j) в положительном направлении, что соответствует повороту точки на угол –(p-j)=j-p.                   1         0               0

                                         y             Rx=  0 cos(j-p)  sin(j-p)

                                                                0 -sin(j-p) cos(j-p)

                                                                

                                             E                 1       0        0

                             O                        Rx=  0  -cosj  -sinj

                       z         x                             0    sinj  -cosj

4.Изменение направления оси X, Z и Y имеют правильную ориентацию, а ось Х должна быть направлена в противоположную сторону.

                       -1 0 0

           Myz=     0 1 0

                         0 0 1

 

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

Вычислим матрицу отображения V как матричное произведение:

V=T*RzRxMxy

Матричное произведение не коммутативно, т.е. в общем случае  RzRx= RxRz  не ассоциативно, поэтому выражение  можно получить:

V=T(RzRxMxy)

                        sinq  cosq  0         1     0        0

RzRx=   -cosq  sinq  0         0 -cosj   sinj

                          0        0    1         0   sinj  -cosj

                  

              sinq  -cosqcosj  -cosqsinj         -1  0  0

RzRx=    -cosq -sinqcosj   -sinqsinj    *     0  1  0

                 0          sinj          -cosj             0  0  1

                   -sinq  -cosqcosj  -cosqsinj       

RzRxMyx=     cosq  -sinqcosj  -sinqsinj

                       0          sinj          -cosj

a=cosj;     V41=rbcdrbcd=0

b=sinj;     V42=rabc2 + rabd2 rab=r(ab(c2 + d2)–b)= r(abab)=0

c=cosq;     V43=rb2c2 + rb2d2 + ra2=r(b2(c2 + d2)+a2)= r(b2 +a2)= r

d=sinq;

                       -sinq  -cosqcosj  -cosqsinj  0         

                        cosq  -cosjsinq   -sinjsinq  0     

              V=       0           sinj          -cosj    0     *  x y z

                          0             0                r         1                                

Т.е. получим видовые координаты по сферическим координатам:

                         [xe ye ze 1]=[xw yw zw 1] * V

Для получения ортогональной проекции можно использовать координаты   xe и ye  без ze.

Перспективные преобразования

Для простоты работы видовые координаты (xe, ye, ze) будем               обозначать как (x, y, z), так как мировые координаты здесь уже не будут фигурировать.

 

 

 

 

 

 

        E                             x

Плоскость z=d определяет экран, она перпендикулярна оси Z и проходит через точку Q.

Для каждой точки объекта Р точка изображения P` определяется как точка пересечения линии РЕ и экрана.  Для простоты примем координаты точки Р (x, 0, r) – т.е. нулевую координату “Y”.

         EPR   и      EP`Q  подобны

Значит,    P`Q         PR

                 EQ          ER

                 

                         

Отсюда  x=d*x/z

Аналогично y=d*y/z

В начале лекции мы определили, что точка О– начало мировых координат приблизительно совпадает с центром объекта. Так как ось видовой системы координат совпадает с прямой ЕО, которая пересекает экран в точке Q, то начало Q системы экранных координат будет находиться в центре изображения.

Для переноса экранных координат по экрану используется выражение:

             X=d*x/z+c1;

             Y=d*y/z+c2;                                             P

         

                                                        P`                               

                                                   

                                                        d

                                                       Q`                  

                                                                          Q

Размер картинки           размер объекта  

           d                                     r

tga=  (0.5 * размер объекта)/r

Программа получения проволочной  модели куба

                         z 

                H                                   G

              

                                                                                                

   E

                                                             y

                   DD                                C

x     

      A                                  B

Алгоритм вращения проволочной модели

1). Задание проволочной модели.

    Type

            Ver=record

             x, y, z:real;

           end;

             Rbr=record

             r,k : integer;

           end;

    Var

        SV:array[1..8] of Ver;     {список вершин}

        SR:array[1..12] of Rbr;    {список ребер}

2). Пересчет мировых координат вершин фигуры в экранные координаты:

Var   w:array[1..4,1..4] of real;     {матрица проектирования}

w11=-sinth;         w12= –cf*ct;              w13= –sf*ct;

w21=ct;               w22= –cf*st;              w23= –sf*st;

                          w32=sinf;                   w33= –cf;

                                                            w43=r;

С помощью матрицы проектирования получаем видовые координаты xe, ye, ze:

 xe=w11*cv[i].x + w21*sv[i].y;

 ye=w12*sv[i].x + w22*sv[i].y + w33*sv[i].z;

 ze=w13*sv[i].x + w23*sv[i].y + w33*sv[i].z + w43;

и экранные координаты каждой вершины:

 pv:array[1..8] of ver;

 pv[i].x=round(d * xe/ze);            {+c1}

 pv[i].y=round(d * ye/ze);             {+c2}  

3). Рисуем фигуру.

    line(x1, y1, x2, y2);

    x1,y1–координаты начала ребра;

    x2,y2–координаты конца ребра;

4). Поворот фигуры.

Поворачивает фигуру на угол  a вокруг оси, проходящей через точку С – центр вращения – параллельно и по направлению вектора V.

Type

    Rot=record

    Cx,Cy,Cz,

    Vx,Vy,Vz:real;

Var

  C:Rot;

Задаем     Cz,Cy,Cz –координаты центра вращения;

               Vx,Vy,Vz–направляющий векторж

4.1 Подсчитываем сферические координаты Vm,j,q.

Vm=   Vx2 +Vy2 +Vz2

         

          

          Vx=0,  Vy>=0,   q=p/2;

q=          

          Vx=0,  Vy<0,      q=3p/2;

j=arccos(v3/r)   или  f=arctan(sinf/cosj)

4.2 Вычислим матрицу поворота

      r[4*4]

4.3 Получаем новые координаты вершин и пересчитываем их в видовые и экранные.

4.4 Рисуем повернутую фигуру

Процедуры:

   DemoF       {для текста}

   DrawF         {рисование фигуры}

   InitF           {задание фигуры}

InitF              {пересчет координат}

InitR                  {поворот фигуры}


 

А также другие работы, которые могут Вас заинтересовать

41320. Изучение команд передачи управления 4.09 MB
  Практически изучить команды передачи управления . Методические материалы и литература: Методические указания по выполнению практических работ; Иллюстративный материал: команды операций над числами . При этом использовать описание работы лабораторный блок ПК иллюстрационный материал; В практической части отработать следующие подразделы: Рассмотреть команды передачи управления; Выполнить примеры и отразить их в отчёте; Проанализировать результаты выполненных примеров. Основные теоретические положения Способы...
41321. Изучение программной модели команд управления на языке SM для МП 1.1 MB
  Практически изучить программную модель команд управления на языке SM для МП. Методические материалы и литература: Методические указания по выполнению практических работ; Иллюстративный материал: команды управления на языке SM для МП. При этом исполнение текущей последовательности команд приостанавливается прерывается а вместо нее начинает выполняться другая последовательность соответствующая данному прерыванию.
41322. Изучение команд операций над числами 1.62 MB
  Основные теоретические положения Структура команд Любая команда ЭВМ обычно состоит из двух частей: операционной и адресной. Трехадресная команда легко расшифровывалась и была удобна в использовании но с ростом объемов ОЗУ ее длина становилась непомерно большой. Пример программы в командах процессора Перед вами короткая программа для процессора семейства 1п1е1 которая увеличивает число находящееся в регистре ах. Пример программы в командах процессора Несмотря на то что приведенная программа по длине явно больше чем...
41323. Изучение команд операций с битами 5.5 MB
  Каждая команда МК подгруппы РIС16F8Х представляет собой 14битовое слово разделенное на код операции ОРСОDЕ и поле для одного и более операндов которые могут участвовать или не участвовать в этой команде.1 Основные форматы команд МК Команды работы с битами Отличительной особенностью данной группы команд является то что они оперируют с однобитными операндами в качестве которых используются отдельные биты регистров МК. отрицание логическое НЕ логическая операция над одним операндом результатом которой является...
41324. Исследование состава и возможностей ИС РПО для семейства МК АVR 3.63 MB
  Основные теоретические положения Программная среда АVR Studio Фирма Аtmel разработчик микроконтроллеров АVR очень хорошо позаботилась о сопровождении своей продукции. Для написания программ их отладки трансляции и прошивки в память микроконтроллера фирма разработала специализированную среду разработчика под названием АVR Studio Программная среда АVR Studio это мощный современный про граммный продукт позволяющий производить все этапы разработки программ для любых микрокон троллеров серии АVR ....
41325. Работа с ИС РПО для семейства МК АVR 5.99 MB
  Если уже есть файл с текстом программы на Ассемблере и просто необходимо создать проект а затем подключить туда готовый программный файл снимите соответствующую галочку. Оно должно содержать имя файла куда будет записываться текст программы. При выборе этого элемента диалог создания проекта будет автоматически запускаться каждый раз при запуске программы VR Studio.ps; файл куда будет помещен текст программы на Ассемблере Prog1.
41326. Лабораторная работа Определение скорости полета пули методом баллистического маятника 461 KB
  Приборы: пули свинцовые 5 штук; пневматическое ружье; баллистический маятник; аналитические весы 0001 г; технические весы 1 г; линейка 1 см; секундомер 01 с. где d расстояние от зеркальца до шкалы; n отклонение âзайчикаâ по шкале; расстояние от оси вращения до точки удара пули; l расстояние от оси вращения до центра тяжести; h высота поднятия цента тяжести;  угол отклонения; масса пули m.
41327. Основные закономерности движения простых колебательных систем. Изучение вынужденных колебаний 123 KB
  Найдем коэффициент возвращающей силы К и модуль Юнга Е. Теперь найдем добротность Q логарифмический декремент затухания  коэффициент затухания  коэффициент трения r частота резонанса Wрез: Итак подытожим результат: Е = 54 109  05 109 с1; К = 58  01 кгс1; W0 = Wрез= 622 с1; Q = 2074;  = 002;  = 02; r = 06.
41328. Измерение ускорения силы тяжести при помощи оборотного маятника Катера и механического секундомера 33.5 KB
  Положение ножа Х см Время с Период с1 67 71 142 84 168 82 915 183 91 183 Примерное значение А  81 см. Проведем измерения при нескольких значениях Х лежащих вблизи А: Положение ножа Х см Период Т1 с1 Период Т2 с1 825 184 183 820 184 181 815 183 181 810 183 180 805 182 179 800 182 179 795 182 179 Установим и измерим расстояние а между подшипниками: а = 8546 42 = 8504 мм. Определим центр инерции: а1 = 225 88 = 137 см Измерение периода колебаний Т I положение маятника: N1 = 100; t1 = 181 c.; N3...