Главная страница
Навигация по странице:

  • 4 КОНТРОЛЬНЫЕ ЗАДАНИЯ Задания по двумерной графике

  • Задания по трехмерной графике

  • геометрические преобразования. Геометрические преобразования в компьютерной графике


    Скачать 1.14 Mb.
    НазваниеГеометрические преобразования в компьютерной графике
    Анкоргеометрические преобразования
    Дата27.11.2019
    Размер1.14 Mb.
    Формат файлаpdf
    Имя файла208__147__208__208__190__208__188__208__159__209__128__208__208_.pdf
    ТипУчебное пособие
    #97384
    страница4 из 4
    1   2   3   4
    Пример 2. В качестве примера рассмотрим описание фазы динамики трехмерного объекта, который в процессе эволюций на какой-то момент времени приобрел значения углов поворота вокруг осей своей

    42 системы координат – α
    x
    , α
    y
    , α
    z
    , а также координаты начала СКО в СКМ –
    w
    w
    w
    z
    y
    x
    0 0
    0
    ,
    ,
    . Сама СКМ на данный момент времени получила углы поворота вокруг своих осей – β
    x
    , β
    y
    , β
    z
    и координаты своего начала в СКН –
    v
    v
    v
    z
    y
    x
    0 0
    0
    ,
    ,
    . Объект состоит из примитивов-полигонов. Изображение на экране – перспективное. Все системы координат – правые. Подобную задачу приходится решать при отображении сцены, представляемой будущему летчику в авиационном тренажере.
    Для решения задачи нужно найти текущую матрицу преобразования, то есть матрицу, которая описывает все геометрические преобразования, выполненные на данный момент над всеми полигонами объекта. Ясно, что эти преобразования нужно сначала определить. Если координаты всех вершин полигональной модели объекта умножить на текущую матрицу преобразования, то будут вычислены экранные координаты этих вершин, что и нужно для построения экранного образа объекта. Конечно, такое построение, кроме работы с геометрией, требует операций удаления невидимых участков, текстурирования, затенения, но здесь рассмотрим лишь геометрические преобразования.
    В общем случае каждый геометрический примитив объекта размещается в своей системе координат – системе координат примитива
    (СКП). Однородные координаты вершины примитива в СКП описываются матрицей-строкой
    1
    p
    p
    p
    z
    y
    x
    KP

    . Для размещения примитива в объекте нужно перевести вершины примитива в СКО. Для этого необходимо выполнить соответствующие сдвиги и повороты СКП в СКО.
    Так поступают поочередно со всеми примитивами объекта, в результате чего происходит так называемая «сборка объекта», то есть расстановка примитивов в СКО. Пусть для задания нужного положения некоторого примитива в СКО его нужно повернуть относительно своих осей на углы

    43
    γ
    x
    , γ
    y
    , γ
    z
    и сдвинуть вдоль координатных осей СКО на
    o
    o
    o
    z
    y
    x
    0 0
    0
    ,
    ,
    . Следующее преобразование дает матрицу-строку KO координат вершины в СКО:
    1 0
    1 0
    0 0
    0 1
    0 0
    0 0
    1 1
    0 0
    0 0
    1 0
    0 0
    0
    cos sin
    0 0
    sin cos
    1 0
    0 0
    0
    cos
    0
    sin
    0 0
    1 0
    0
    sin
    0
    cos
    1 0
    0 0
    0
    cos sin
    0 0
    sin cos
    0 0
    0 0
    1 1
    0 0
    0
    o
    o
    o
    z
    z
    z
    z
    y
    y
    y
    y
    x
    x
    x
    x
    o
    o
    o
    z
    y
    x
    KP
    z
    y
    x
    KO






















    (3.4)
    Теперь нужно описать размещение объекта в сцене, то есть размещение СКО в СКМ. Для этого координаты вершин объекта (вершин его примитивов) в виде матрицы КО умножаются на матрицы геометрических преобразований поворота и сдвига. Параметры этих преобразований указаны в задании. В результате получается матрица- строка КW, содержащая координаты вершины объекта в СКМ:
    1 0
    1 0
    0 0
    0 1
    0 0
    0 0
    1 1
    0 0
    0 0
    1 0
    0 0
    0
    cos sin
    0 0
    sin cos
    1 0
    0 0
    0
    cos
    0
    sin
    0 0
    1 0
    0
    sin
    0
    cos
    1 0
    0 0
    0
    cos sin
    0 0
    sin cos
    0 0
    0 0
    1 1
    0 0
    0
    w
    w
    w
    z
    z
    z
    z
    y
    y
    y
    y
    x
    x
    x
    x
    w
    w
    w
    z
    y
    x
    KO
    z
    y
    x
    KW






















    (3.5)

    44
    Следующий шаг – определение положения объекта в СКН. Для этого вершины объекта, заданные матрицей-строкой KW, переводятся в СКН с помощью преобразований поворотов и сдвигов с параметрами, указанными в задании. Результатом является матрица-строка KV:
    1 0
    1 0
    0 0
    0 1
    0 0
    0 0
    1 1
    0 0
    0 0
    1 0
    0 0
    0
    cos sin
    0 0
    sin cos
    1 0
    0 0
    0
    cos
    0
    sin
    0 0
    1 0
    0
    sin
    0
    cos
    1 0
    0 0
    0
    cos sin
    0 0
    sin cos
    0 0
    0 0
    1 1
    0 0
    0
    v
    v
    v
    z
    z
    z
    z
    y
    y
    y
    y
    x
    x
    x
    x
    v
    v
    v
    z
    y
    x
    KW
    z
    y
    x
    KV






















    (3.6)
    Наконец, нужно получить образ пространственной точки (вершины) объекта на плоскости экрана. Это делает преобразование перспективного проецирования, результатом которого является матрица-строка KS с однородными координатами, записанными в общей форме:
    ,
    1 0
    0 0
    1 0
    0 0
    0 0
    1 0
    0 0
    0 1
    


    









    v
    z
    KV
    h
    h
    z
    h
    y
    h
    x
    KS
    (3.7) где

    v
    z
    – расстояние наблюдения экрана, выраженное в тех же единицах, что использованы при задании координат вершин. Если расстояние наблюдения не задано, оно выбирается из эргономических рекомендаций.

    45
    Разделив значения однородных координат, получившихся в матрице KS, на величину скалярного множителя h, получим декартовы координаты проекции вершины объекта на экране, при этом значение

    z
    должно быть нулевым.
    Преобразование (3.4) описывает конструирование объекта из примитивов, оно выполняется для каждой вершины один раз, так как расположение примитивов в составе объекта не меняется. Следовательно, матрица KO каждой вершины вычисляется заранее и становится элементом описания объекта (вместо KP). Преобразования (3.5),(3.6) в общем случае зависят от динамики объекта относительно сцены и сцены относительно наблюдателя, поэтому они выполняются многократно, с частотой смены фаз динамики сцены. Если выражение KW из (3.5) подставить в (3.6), а затем выражение KV из (3.6) подставить в (3.7), то получится описание всех геометрических преобразований вершины объекта (включая проецирование) в виде одного выражения. Перемножив матрицы этих преобразований, получим текущую матрицу преобразования. Теперь, умножая на нее последовательно матрицы KO всех вершин объекта, можно найти расположение этих вершин на экране как результат ряда геометрических преобразований, выполненных на некоторый момент времени. Текущая матрица преобразования, как уже указывалось, должна пересчитываться с частотой смены фаз динамики сцены.
    4 КОНТРОЛЬНЫЕ ЗАДАНИЯ
    Задания по двумерной графике

    46
    Задание 4.1
    Начало секундной стрелки на изображении часов находится в точке с координатами (160:160:8), а ее длина равна 100 пикселям. Записать математическое выражение для нахождения экранных координат конца секундной стрелки в момент показания часов 12 час.00 мин.12 сек.
    Использовать суперпозицию частных аффинных преобразований. Найти эти координаты. Размеры экрана (в пикселях) – 640×480. Начало координат расположено в центре экрана.
    Методические указания. Нужно сначала найти какие-то начальные координаты конца стрелки, видимо, для такого ее положения, при котором эти координаты найти просто. Например, для момента времени 12 час. 00 мин. 00 сек. Для этого не нужны никакие аффинные преобразования. Далее искомые координаты находятся как результат поворота стрелки на такой угол, который переводит ее на отсчет времени 12 час.00 мин.12 сек. Ясно, что этот угол сначала нужно определить.
    Ответ: x

    =115, y

    =51.
    Задание 4.2
    Точка А с координатами (–1600:1200:10) отражается относительно оси у СКН и поворачивается относительно точки С с координатами х
    с
    =0,
    у
    с
    =–120 на угол 90 градусов. Описать процесс вычисления координат результирующей точки в виде суперпозиции аффинных преобразований и вычислить эти координаты. Начало СКН – в центре экрана, оси направлены вправо и вверх. Размеры экрана: 640×480. Расстояние от плоскости экрана до точки наблюдения равно 400. Все размеры и координаты даны в пикселях.

    47
    Ответ: x

    = –240, y

    =40.
    Задание 4.3
    Точка с координатами (50,100) отражается относительно прямой, имеющей уравнение y=x+20, затем масштабируется относительно центра
    С(50,100) в сторону увеличения в 2 раза. Начало СКН – в центре экрана, оси направлены вправо и вверх. Размеры экрана в пикселях: 640×480.
    Расстояние от плоскости экрана до точки наблюдения 400 пикселей.
    Ответ: x

    =110, y

    =40.
    Задания по трехмерной графике
    Методические указания. При решении всех задач трехмерной графики нужно внимательно подходить к выбору СКН (левой или правой).
    Для этого нужно обращать внимание на то, как задается точка наблюдения.
    Задание координат точки наблюдения явно указывает на вид СКН, а задание расстояния наблюдения оставляет свободу выбора. Нужно помнить, что выбор системы координат определяет применяемые для описания поворотов матрицы.
    Задание 4.4
    Записать в виде суперпозиции аффинных преобразований перспективное проецирование т.А(300,–300,400) на плоскость экрана и последующее отражение результата проецирования в плоскости экрана относительно прямой, имеющей уравнение у= –50. Все числа даны в пикселях. Начало СКН – в центре экрана, оси направлены вправо и вверх.
    Размеры экрана в пикселях: 640×480. Расстояние от плоскости экрана до

    48 точки наблюдения 400 пикселей. Вычислить координаты результирующей точки.
    Ответ: x

    =150, y

    =50.
    Задание 4.5
    Точка А в пространстве имеет однородные координаты (– 4000:4000:
    6000:40).
    Описать в виде суперпозиции частных аффинных преобразований поворот параллельной проекции т.А в плоскости экрана вокруг точки С с координатами (0,–240) пикселей на угол φ= – 45
    о и последующее отражение результата поворота относительно центра экрана.
    Начало СКН – в центре экрана, оси направлены вправо и вверх. Размеры экрана в пикселях: 640×480. Расстояние от плоскости экрана до точки наблюдения 400 пикселей. Вычислить координаты результирующей точки.
    Методические указания. Если внимательно прочитать задание, то можно увидеть, что в нем требуется выполнить параллельное проецирование. Оно выполняется очень просто, но для представления преобразований в виде суперпозиции матриц для него нужно «сочинить» соответствующую матрицу.
    Ответ: x

    = – 170, y

    = –71.
    Задание 4.6
    Описать в виде суперпозиции аффинных преобразований центральное проецирование точки А(– 400:320:400:1) на плоскость экрана, масштабирование проекции в сторону уменьшения координаты x в 2 раза, координаты y – в 3 раза и поворот в плоскости экрана на угол (–30) градусов. Неподвижная точка масштабного преобразования имеет координаты x
    m
    =20, y
    m
    = –20, центр поворота имеет координаты x
    c
    =0, y
    c
    =50.

    49
    Начало СКН – в центре экрана, оси направлены вправо и вверх. Размеры экрана: 640×480. Координаты точки наблюдения Н: 0,0,400. Все размеры и координаты даны в пикселях.
    Ответ: x

    = –81, y

    =86.
    ЛИТЕРАТУРА
    1. Косников Ю.Н. Поверхностные модели в системах трехмерной компьютерной графики. Учебное пособие. – Пенза: Пензенский государственный университет, 2008. – 60 с.
    2. Сиденко Л.А. Компьютерная графика и геометрическое моделирование: Учебное пособие. – СПб.: Питер, 2009. – 224 с.
    3. Эйнджел Э. Интерактивная компьютерная графика. Вводный курс на базе OpenGL, 2 изд.: Пер. с англ. – М.: Издательский дом «Вильямс», 2001.
    – 592 с.
    1   2   3   4


    написать администратору сайта