68889

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

Лекция

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

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

Украинкский

2014-09-26

90.5 KB

1 чел.

ЛЕКЦІЯ 9

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

До основних видів проектування в машинній графіці відносяться:

                -паралельні;

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

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

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

                                                         (центральні проекції):

-ортографічна;                   -одноточечні;

-аксонометрична;               -двухточечні;

-кабінетна;                             -трьох точкові;

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

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

                      

                                      E

                                                         r    

Тобто, велике значення має відстань між оком і об'єктом.

            Е-точка спостереження;

            О-центральная точка об'єкту (приблизно центр   

                   об'єкту);

            ОЕ-лінія спостереження

-Чим більше r, в порівнянні з розміром об'єкту, виходить паралельна проекція, що часто застосовується на практиці.

-При   r   буде перебільшений ефект перспективи.

(r=2предмет може виглядати абсолютно не природно)

        E

-Точка в двомірному просторі і тривимірному представляється відповідно координатами (x, у) і (x, у, z).

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

Для цього потрібно перетворити координати точки P зі світових координат (x, у, z) в екранні (X,y).

Це відображення зручно виконати в два етапи:

             - точка  P залишається на своєму місці, але система світових координат переходить в систему видових координат - видове перетворення;

             - перетворення точки Р в точку Р`, об'єднане з переходом з системи тривимірних видових координат в систему двомірних екранних координат.

               Світові координати (xw , yw, zw)

                   Видове         перетворення

                   

               Видові координати e, ye, ze)

        Перспективне         Перспективне

                   

               Екранні координати (X,y)

Видове перетворення

 

Для виконання видових перетворень повинні бути задані точка спостереження (Е), співпадаюча з оком, і об'єкт.

 Система світових координат повинна бути, бажано        

правою і зручною, щоб початок її координат розташовувався поблизу центру об'єкту, оскільки об'єкт спостерігається в напрямі

від Е до О.

Хай точка Е задана в сферичних координатах r,q,Y  по відношенню до світових координат.     

                                    ze  zw

                                                       j                                       

                                                          r

                                              O                       ye

                                                                           yw

                           xw                     xe                      q 

 Світові  координати можуть бути обчислені:

       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

                                                               xw                                yw

                  

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, у, 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                  { поворот фігури}


 

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

42725. Методы классификации основанные на сравнении с эталоном 732 KB
  Поэтому обычно возникает необходимость сократить это число посредством выделения информативных признаков которые предполагаются инвариантными или малочувствительными по отношению к изменениям и искажениям. Результаты измерений признаков отображаются в пространство признаков. В этом случае будут установлены границы областей принятия решений для разделения признаков новых фрагментов подлежащих классификации см. Первая задача заключается в выборе подмножества признаков и их упорядочиванию в заданном множестве измерений.
42726. Строки и регулярные выражения 300 KB
  String Работа с функциями класса StringBuilder Работа с регулярными выражениями. В C есть тип string но класс System. Пример использования: String s= qqq ; int k=s. Пример использования: nmespce test { clss Test { public sttic void Min { String s1= rbour s2= ce s3= zote ; System.
42727. Запільна блок-схема 28.5 KB
  Накресліть схему лінійного алгоритму. Накресліть схему розгалуженого алгоритму. Як конструювати схему алгоритму.
42729. Найти минимальную сумму элементов в строках двумерного массива 58 KB
  Для проверки подлинности работы программы необходимо сверить результаты работы программы и результаты ручного тестирования. Если они сойдутся, то программа выполнена правильно. Для упрощения вычислений заполним массив цифрами
42730. ЛИНЕЙНЫЕ МЕТОДЫ КЛАССИФИКАЦИИ 178.5 KB
  В данной лабораторной работе мы будем рассматривать способ построения линейного решающего правила на основе обучения одного формального нейрона. Модель нейрона Нейрон представляет собой формализованную модель биологического нейрона.4 Простейший нейрон В общем виде функционирование нейрона подчиняется следующему выражению: где: вектор входного сигнала весовой вектор T порог f функция активации. Весовой вектор порог и функция активации определяют поведение нейрона то как он реагирует на входные данные.
42731. РАЗРАБОТКА АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ ДЛЯ РАСЧЕТА ПОТРЕБНОСТИ В КОРМАХ НА ПАСТБИЩНЫЙ ПЕРИОД 70 KB
  Исходя из наличия поголовья сельскохозяйственных животных структуры и организации стада структуры суточных рационов и норм кормления рассчитать потребность в кормах по ферме на пастбищный период в кормовых единицах и физическом весе по видам корма и половозрастным группам. Промежуточными данными должны быть: Поголовье по половозрастным группам; Потребность в кормах в сутки на одну голову кормовые единицы и физический...
42732. Работа с файлами в С# 288.5 KB
  Потоки в С Под файлом обычно подразумевается именованная информация на внешнем носителе например на жестком или гибком магнитном диске. Логически файл можно представить как конечное количество последовательных байтов поэтому такие устройства как дисплей клавиатура и принтер также можно рассматривать как частные случаи файлов.
42733. Простейшие классы 160 KB
  Методы и свойства должны обеспечивать непротиворечивый полный минимальный и удобный интерфейс класса. В программе должна выполняться проверка всех разработанных элементов класса.1 Классы в C Работу с классами рассмотрим на следующем примере. Создайте новое консольное приложение для C и введите следующий текст: using System; nmespce test { Начало класса clss Worker { public int ge=0; public string nme; } Конец класса clss Test { [STThred]...