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

  • 5.4. Трехмерные матричные преобразования

  • 6.1. Цветовая модель RGB

  • 6.2. Цветовая модель CMYK

  • лекции. Лекции по компьютерной графике(ИСиТ-1 курс). Связь традиционной и компьютерной графики, с одной стороны, определяет


    Скачать 0.87 Mb.
    НазваниеСвязь традиционной и компьютерной графики, с одной стороны, определяет
    Анкорлекции
    Дата02.10.2021
    Размер0.87 Mb.
    Формат файлаpdf
    Имя файлаЛекции по компьютерной графике(ИСиТ-1 курс).pdf
    ТипДокументы
    #240392
    страница2 из 7
    1   2   3   4   5   6   7
    5.3.
    Однородные координаты и матричное представление двумерных
    преобразований
    В предыдущем параграфе были рассмотрены три вида преобразований точек на плоскости. Два из них – операции вращения и масштабирования - описываются в виде произведения матрицы на вектор, а третья – операция переноса – описывается как сумма двух векторов. В случае последовательного выполнения любой комбинации операций вращения и масштабирования результат легко можно записать в виде произведения матриц соответствующих преобразований.
    Это будет матрица результирующего поворота и масштабирования.
    Очевидно, что удобнее применять результирующую матрицу вместо того,

    19
    чтобы каждый раз заново вычислять произведение матриц. Однако таким способом нельзя получить результирующую матрицу преобразования, если среди последовательности преобразований присутствует хотя бы один перенос. Матричное произведение в компьютерной графике также называют композицией. Было бы удобнее иметь математический аппарат, позволяющий включать в композиции преобразований все три выше указанные операции. При этом получился бы значительный выигрыш в скорости вычислений. Однородные координаты и есть этот математический аппарат.
    Двумерный вектор
    ( , )
    x y
    в однородных координатах записывается в виде
    (
    ,
    , )
    wx wy w
    , где
    0
    w

    Число
    w
    называется масштабным множителем. Для того чтобы из вектора, записанного в однородных координатах, получить вектор в обычных координатах, необходимо разделить первые две координаты на третью:
    (
    / ,
    / , / )
    ( , ,1)
    wx w wy w w w
    x y

    В общем случае осуществляется переход от
    n
    - мерного пространства к
    (
    1)
    n
    +
    - мерному. Это преобразование не единственное. Обратное преобразование называется проекцией однородных координат.
    В однородных координатах преобразование центральной перспективы можно определить матричной операцией. Эта матрица записывается в виде:
    0 0
    0 0
    0 0
    0 0
    0 1
    0 0
    0
    k
    k
    P
    k





    ⎥ =






    Покажем, что эта матрица определяет преобразование точки объекта, заданной в однородных координатах, в точку перспективной проекции

    20
    (
    также в однородных координатах). Пусть
    ( , , )
    p
    x y z
    =
    – точка в трехмерном пространстве.
    Ее однородное представление
    (
    ,
    ,
    , )
    v
    wx wy wz w
    =
    Умножим
    v
    на
    P
    :
    (
    )
    (
    )
    (
    )
    ,
    ,0,
    /
    ,
    /
    ,0,1
    vP
    wkx wky
    w z k
    kx
    z k ky
    z k

    ⎤ ⎡

    =
    +
    =
    +
    +

    ⎦ ⎣

    Теперь точки двумерного пространства будут описываться трехэлементными вектор-строками, поэтому и матрицы преобразований, на которые будет умножаться вектор точки, будут иметь размеры 3×3. Запишем матричное преобразование операции переноса для однородных координат:
    1 0
    0
    ', ',1
    , ,1 0
    1 0
    1
    x y
    x y
    D
    D
    x
    y




    =
    ×

    ⎤ ⎡
    ⎤ ⎢


    ⎦ ⎣







    или '
    (
    ,
    )
    x
    y
    p
    pT D D
    =
    ,
    где
    1 0
    0
    (
    ,
    )
    0 1
    0 1
    x
    y
    x
    y
    T D D
    D
    D




    = ⎢





    При последовательном переносе точки
    p
    в точку '
    p
    и затем в точку ''
    p
    компоненты суммарного вектора переноса являются суммами соответствующих компонент последовательных векторов переноса.
    Рассмотрим, каковы будут элементы матрицы суммарного переноса. Пусть '
    (
    ,
    )
    x
    y
    p
    pT D D
    =
    ,
    '
    '
    ''
    ' (
    ,
    )
    x
    y
    p
    p T D D
    =
    Подставив первое уравнение во второе, получаем '
    '
    ''
    (
    ,
    ) ' (
    ,
    )
    x
    y
    x
    y
    p
    pT D D p T D D
    =
    Матричное произ- ведение, т.е. суммарный перенос, равен произведению соответствующих матриц переноса:

    21 1
    0 0
    1 0
    0 1
    0 0
    0 1
    0 0
    1 0
    0 1
    0 1
    '
    '
    1
    '
    '
    1
    x
    y
    x
    y
    x
    x
    y
    y
    D
    D
    D
    D
    D
    D
    D
    D

    ⎤⎡
    ⎤ ⎡


    ⎥⎢
    ⎥ ⎢

    =

    ⎥⎢
    ⎥ ⎢


    ⎥⎢
    ⎥ ⎢

    +
    +

    ⎦⎣
    ⎦ ⎣

    Запишем матричный вид операции масштабирования.
    0 0
    ', ',1
    , ,1 0
    0 0
    0 1
    x
    y
    S
    x y
    x y
    S




    =
    ×

    ⎤ ⎡


    ⎦ ⎣
    ⎦ ⎢





    Определим матрицу масштабирования
    0 0
    ( ,
    )
    0 0
    0 0
    1
    x
    y
    x
    y
    S
    S S S
    S




    = ⎢





    Так же, как последовательные переносы являются аддитивными, покажем, что последовательные масштабирования будут мультипликативными.
    '
    '
    ( ,
    )
    ( ,
    )
    x
    y
    x
    y
    S S S
    S S S
    ×
    =
    0 0
    '
    0 0
    '
    0 0
    0 0
    0
    '
    0 0
    '
    0 0
    0 1
    0 0
    1 0
    0 1
    x
    x
    x
    x
    y
    y
    y
    y
    S
    S
    S
    S
    S
    S
    S
    S
    ×

    ⎤⎡
    ⎤ ⎡


    ⎥⎢
    ⎥ ⎢

    =
    ×

    ⎥⎢
    ⎥ ⎢


    ⎥⎢
    ⎥ ⎢


    ⎦⎣
    ⎦ ⎣

    Для операции поворота матричный вид будет такой: cos sin
    0
    ', ',1
    , ,1
    -sin cos
    0 0
    0 1
    x y
    x y
    α
    α
    α
    α




    =
    ×

    ⎤ ⎡


    ⎦ ⎣
    ⎦ ⎢






    22
    Определим матрицу поворота
    ( )
    cos sin
    0
    -sin cos
    0 0
    0 1
    R
    α
    α
    α
    α
    α




    = ⎢





    Аналогично двум предыдущим случаям, покажем, что матрица поворота остается таковой при последовательных поворотах.
    ( ) ( )
    cos sin
    0
    cos sin
    0
    -sin cos
    0
    -sin cos
    0 0
    0 1
    0 0
    1
    R
    R
    α
    α
    β
    β
    α
    β
    α
    α
    β
    β

    ⎤⎡


    ⎥⎢

    =
    =

    ⎥⎢


    ⎥⎢


    ⎦⎣

    cos(
    )
    sin(
    )
    0
    -sin(
    )
    cos(
    )
    0 0
    0 1
    α β
    α β
    α β
    α β
    +
    +




    =
    +
    +






    Таким образом, два, а значит и любое количество последовательных поворотов можно записать в виде одной матрицы суммарного поворота.
    Также легко заметить, что любая последовательность операций, включающая в себя перенос, масштабирование и вращение в однородных координатах, может быть представлена одной матрицей, которая является произведением матриц данных операций.
    Рассмотрим, каким образом с помощью композиции матричных преобразований можно получить одно общее результирующее преобразование. Для этого будем использовать матрицы
    T
    ,
    S
    и
    R
    С вычислительной точки зрения гораздо проще и быстрее применять матрицу уже готового преобразования вместо того, чтобы применять их последовательно одну за другой. К точке более эффективно применять одно результирующее преобразование, чем ряд преобразований друг за другом.

    23
    Для примера рассмотрим задачу поворота объекта на плоскости относительно некоторой произвольной точки
    0
    p
    Пока мы умеем поворачивать объекты только вокруг начала координат. Но можно представить эту задачу как последовательность шагов, на каждом из которых будет применяться только элементарная операция: перенос, масштабирование или вращение.
    Вот эта последовательность элементарных преобразований (рис. 5.7):
    1.
    Перенос, при котором точка
    0
    p
    переходит в начало координат.
    2.
    Поворот на заданный угол.
    3.
    Перенос, при котором точка из начала координат возвращается в первоначальное положение
    0
    p
    Рис. 5.7. Последовательность преобразований при повороте объекта вокруг точки
    0 0
    0
    ( ,
    )
    p
    x y
    =
    на угол
    α
    Точка
    0 0
    0
    ( ,
    )
    p
    x y
    =
    Первый перенос производится на вектор
    0 0
    [- ,- ]
    x
    y
    , а обратный перенос - на вектор
    0 0
    [ ,
    ]
    x y

    24
    5.4.
    Трехмерные матричные преобразования
    Подобно тому, как двумерные преобразования описываются матрицами размером 3×3, трехмерные преобразования могут быть представлены матрицами размером 4×4. Тогда трехмерная точка
    ( , , )
    x y z
    записывается в однородных координатах как
    (
    ,
    ,
    , )
    wx wy wz w
    , где
    0
    w

    Для получения декартовых координат надо первые три однородные координаты разделить на
    w
    Матрицы преобразований будем записывать в правосторонней системе координат. При этом положительный поворот определяется следующим образом. Если смотреть из положительной части оси вращения (например, оси
    z
    ) в направлении начала координат, то поворот на
    D
    90
    против часовой стрелки будет переводить одну положительную полуось в другую (ось
    x
    в
    y
    , в соответствии с правилом циклической перестановки).
    Заметим, что на практике удобнее применять левостороннюю систему координат, так как в этом случае удобнее интерпретировать тот факт, что точки с большими значениями
    z
    находятся дальше от наблюдателя.
    Запишем теперь матрицу трехмерного переноса. Аналогично двумерному случаю.
    1 0
    0 0
    0 1
    0 0
    (
    ,
    ,
    )
    0 0
    1 0
    1
    x
    y
    z
    x
    y
    z
    T D D D
    D
    D
    D






    =








    , при этом
    [ , , ,1] (
    ,
    ,
    ) [
    ,
    ,
    ,1]
    x
    y
    z
    x
    y
    z
    x y z
    T D D D
    x D y D z D

    = +
    +
    +

    25
    Операция масштабирования:
    0 0
    0 0
    0 0
    ( ,
    ,
    )
    0 0
    0 0
    0 0
    1
    x
    y
    x
    y
    z
    z
    S
    S
    S S S S
    S






    =








    [ , , ,1] ( ,
    ,
    ) [
    ,
    ,
    ,1]
    x
    y
    z
    x
    y
    z
    x y z
    S S S S
    x S y S z S

    = ⋅


    Перейдем к операции поворота. Так как при двумерном повороте в плоскости
    xy
    координаты
    z
    остаются неизменными, то поворот вокруг оси
    z
    записывается так: cos sin
    0 0
    -sin cos
    0 0
    ( )
    0 0
    1 0
    0 0
    0 1
    z
    R
    α
    α
    α
    α
    α






    =






    Матрица поворота вокруг оси
    x
    имеет вид:
    1 0
    0 0
    0
    cos sin
    0
    ( )
    0
    -sin cos
    0 0
    0 0
    1
    x
    R
    α
    α
    α
    α
    α






    =






    ,

    26
    и вокруг оси
    y
    : cos
    0
    -sin
    0 0
    1 0
    0
    ( )
    sin
    0
    cos
    0 0
    0 0
    1
    y
    R
    α
    α
    α
    α
    α






    =






    Обратите внимание на смену положения синуса угла с отрицательным знаком в матрице поворота вокруг оси
    y
    Правильность этих матриц легко проверить поворотом одного из ортов на
    D
    90
    , при этом он должен перейти в следующий по порядку орт на соответствующей координатной оси.
    Обратные преобразования будут выражаться обратными матрицами. Для операции переноса надо лишь заменить знаки компонент вектора переноса на противоположные:
    1
    (
    ,
    ,
    )
    (
    ,
    ,
    )
    x
    y
    z
    x
    y
    z
    T
    D D D
    T
    D
    D
    D

    = −


    ; для операции масштабирования – на обратные значения:
    1
    ( ,
    ,
    )
    (1/
    ,1/
    ,1/
    )
    x
    y
    z
    x
    y
    z
    S
    S S S
    s
    S
    S
    S

    =
    ; для поворота – выбором отрицательного угла поворота:
    1
    ( )
    (
    )
    R
    R
    α
    α

    = −

    27
    Результатом нескольких последовательных поворотов будет матрица
    11 12 13 21 22 23 31 32 33 0
    0 0
    0 0
    0 1
    r
    r
    r
    r
    r
    r
    A
    r
    r
    r






    =






    Здесь верхняя матрица размером 3
    ×
    3 называется ортогональной. Важным ее свойством является то, что обратная к ней матрица является транспонированной:
    1
    T
    B
    B

    =
    Это полезно тем, что при вычислениях достаточно поменять индексы местами и обратное преобразование получается автоматически.
    После перемножения любого числа матриц вида
    T
    ,
    S
    и
    R
    результирующая матрица всегда будет иметь вид:
    11 12 13 21 22 23 31 32 33 0
    0 0
    1
    x
    y
    z
    r
    r
    r
    r
    r
    r
    r
    r
    r
    t
    t
    t














    Здесь верхняя часть размером 3
    ×
    3 определяет суммарный поворот и масштабирование, а три коэффициента последней строки – суммарный перенос.

    28
    6.
    Цветовые модели
    С физической точки зрения цвет – это набор определённых длин волн, отражённых от предмета или пропущенных сквозь прозрачный предмет.
    Однако сейчас нас интересует вопрос не о том, что такое цвет, какова его физическая природа, а то, как вообще на практике можно получить тот или иной цвет.
    Цвета в природе редко являются простыми. Большинство цветов получаются смешением каких-либо других. Например, сочетание красного и синего даёт пурпурный цвет, синего и зелёного – голубой. Таким образом, путём смешения из небольшого количества простых цветов, можно получить множество (и при чём довольно большое) сложных (составных). Поэтому для описания цвета вводится понятие цветовой модели.
    Цветовая модель – способ представления большого количества цветов посредством разложения их на простые составляющие.
    Существует большое количество моделей. Рассмотрим только три основных.
    6.1.
    Цветовая модель RGB
    Множество цветов видны оттого, что объекты, их излучающие, светятся. К таким цветам можно отнести, например, цвета на экранах телевизора, монитора, кинопроектора. Цветов огромное количество, но из них выделено только три, которые считаются основными (первичными): это – красный, зеленый, синий.
    При смешении двух основных цветов результирующий цвет осветляется: из смешения красного и зеленого получается желтый, из смешения

    29
    зеленого и синего получается голубой, синий и красный дают пурпурный.
    Если смешиваются все три цвета, в результате образуется белый. Такая модель цвета является аддитивной.
    Модель, в основе которой лежат указанные цвета, носит название цветовой модели RGB – по первым буквам английских слов Red (Красный), Green
    (
    Зеленый), Blue (Синий).
    Поскольку в модели используются три независимых значения, ее можно представить в виде трехмерной системы координат (рис. 6.1).
    Рис. 6.1. Цветовая модель RGB
    Каждая координата отражает вклад соответствующей составляющей в конкретный цвет в диапазоне от нуля до максимального значения. В результате получается некий куб, внутри которого и находятся все цвета, образуя цветовое пространство модели RGB.

    30
    Объем такого куба (количество цифровых цветов) легко посчитать: поскольку на каждой оси можно отложить 256 значений, то 256 в кубе (или 2 в двадцать четвертой степени) дает число 16 777 216.
    Важно отметить особые точки и линии этой модели.
    Начало координат. В этой точке все составляющие равны нулю, излучение отсутствует, а это равносильно темноте, следовательно, начало координат — это точка черного цвета.
    Точка, ближайшая к зрителю. В этой точке все составляющие имеют максимальное значение, что означает белый цвет.
    Диагональ куба. На линии, соединяющей начало координат и точку, ближайшую к зрителю, располагаются серые оттенки: от черного до белого.
    Это происходит потому, что все три составляющих одинаковы и располагаются в диапазоне от нуля до максимального значения. Этот диапазон иначе называют серой шкалой (Grayscale). В компьютерных технологиях сейчас чаще всего используются 256 градаций (оттенков) серого. Хотя некоторые сканеры имеют возможность кодировать 1024 оттенков серого и выше.
    Три вершины куба обозначают чистые исходные цвета, остальные три отражают двойные смешения исходных цветов.
    Модель RGB является теоретической основой процессов сканирования и визуализации изображений на экране монитора.
    6.2.
    Цветовая модель CMYK
    Модель описывает отражаемые цвета. К отражаемым относятся цвета, которые сами не излучают, а используют белый свет, вычитая из него определенные цвета. Такие цвета называются субтрактивными

    31
    (
    вычитательными), поскольку они остаются после вычитания основных аддитивных. Существует три основных субтрактивных цвета: голубой, пурпурный, желтый (рис. 6.2).
    Эти цвета составляют так называемую полиграфическую триаду. При печати красками этих цветов поглощаются красная, зеленая и синяя- составляющие белого цвета таким образом, что большая часть видимого цветового спектра может быть репродуцирована на бумаге.
    При смешении двух субтрактивных составляющих результирующий цвет затемняется, а при смешении всех трех должен получиться черный цвет. При полном отсутствии краски остается белый цвет (белая бумага).
    В итоге получается, что нулевые значения составляющих дают белый цвет, максимальные значения должны давать черный, их равные значения – оттенки серого, кроме того, имеются чистые субтрактивные цвета и их двойные сочетания.
    Рис. 6.2. Цветовая модель CMYK

    32
    Основная проблема заключается в том, что данная модель призвана описывать реальные полиграфические краски, которые далеко не так идеальны, как цветной луч. Они имеют примеси, поэтому не могут полностью перекрыть весь цветовой диапазон, а это приводит, в частности, к тому, что смешение трех основных красок, которое должно давать черный цвет, дает какой-то неопределенный (грязный) темный цвет, и это скорее темно-коричневый, чем глубокий черный цвет.
    Для компенсации этого недостатка в число основных полиграфических красок была внесена черная краска. Именно она добавила последнюю букву в название модели CMYK, хотя и не совсем обычно: С – это Cyan (Голубой), М
    – это Magenta (Пурпурный), Y – Yellow (Желтый), К – это blасK (Черный), т.е. от слова взята не первая, а последняя буква.
    Существует еще один вариант расшифровки CMYK – Cyan, Magenta, Yellow,
    Key color.
    Причем key color (ключевой цвет) может быть любым.
    Таким образом, модели RGB и CMYK, хотя и связаны друг с другом, однако их взаимные переходы друг в друга (конвертирование) не происходят без потерь, поскольку цветовой охват у них разный. И речь идет лишь о том, чтобы уменьшить потери до приемлемого уровня. Это вызывает необходимость очень сложных калибровок всех аппаратных частей, составляющих работу с цветом: сканера (он осуществляет ввод изображения), монитора (по нему судят о цвете и корректируют его параметры), выводного устройства (оно создает оригиналы для печати), печатного станка (выполняющего конечную стадию).
    Для устранения аппаратной зависимости был разработан ряд так называемых перцепционных (интуитивных) цветовых моделей. В их основу заложено раздельное определение яркости и цветности.

    33
    1   2   3   4   5   6   7


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