Нормали И Обратная Транспозиция, Часть 1: Внешняя Алгебра

Есть загадочный факт о линейных преобразованиях: некоторые из них, а именно неоднородное масштабирование и сдвиг, по какой-то причине различают «обычные» векторы и нормали.

Когда мы преобразуем «обычный» вектор с помощью матрицы, то нормали по какой-то причине необходимо преобразовать с помощью обратной транспонированной матрицы.

Как это понимать? Используя простые расчеты можно убедиться, что обратная транспонированная матрица сохраняет перпендикулярность нормалей к своим касательным плоскостям.

В какой-то степени этих доказательств достаточно, но они упускают из виду более глубокую и интересную историю о геометрии, стоящей за всем этим.

Именно эту историю я хочу рассказать в следующих нескольких статьях.

Единицы измерения и масштабирование Вот небольшой вводный курс, прежде чем мы углубимся в суть статьи.

Давайте рассмотрим старый добрый однородный масштабирование (один коэффициент по всем осям).

Трудно придумать более безобидное преобразование — это просто умножение всех векторов на одно и то же число.

Но при ближайшем рассмотрении здесь происходит нечто не совсем тривиальное.

Некоторые величины несут в себе физические «размеры» или «единицы», такие как длины, площади и объемы.

При масштабировании эти величины изменяются в соответствии со своими единицами измерения.

Некоторые значения вообще «безразмерны» и не изменяются при масштабировании.

В качестве примера перечислим все возможное поведение юнитов при масштабировании в трехмерном пространстве.

Обозначим масштабный коэффициент как

Нормали и обратная транспозиция, часть 1: внешняя алгебра

.

Затем:

  • Безразмерные числа не изменяются, то есть умножаются на

    Нормали и обратная транспозиция, часть 1: внешняя алгебра

    .

  • Длина умножается на

    Нормали и обратная транспозиция, часть 1: внешняя алгебра

    .

  • Квадраты умножается на

    Нормали и обратная транспозиция, часть 1: внешняя алгебра

    .

  • Объемы умножается на

    Нормали и обратная транспозиция, часть 1: внешняя алгебра

    .

    Но это еще не все: есть еще плотность , которые изменяются обратно пропорционально масштабному коэффициенту:

  • Линейные плотности умножается на

    Нормали и обратная транспозиция, часть 1: внешняя алгебра

    .

  • Плотность по площади умножается на

    Нормали и обратная транспозиция, часть 1: внешняя алгебра

    .

  • Объемная плотность умножается на

    Нормали и обратная транспозиция, часть 1: внешняя алгебра

    .

    Плотности могут выражать такие вещи, как количество текселей на длину, геометрическую вероятность или количество частиц в объеме.

    Если 3D-модель масштабирована вбок увеличивать , а размер текстуры не меняется, то и плотность текселей на ней уменьшается , и так далее.

Оказывается, даже если мы ограничимся единым масштабом и рассмотрим скалярные (не векторные) значения, мы уже наблюдаем следующий феномен: разные значения, которые выглядят структурно идентичны (все они скаляры), то оказывается, что при преобразовании они ведут себя по-разному из-за разных единиц, которые они несут в себе.

А именно, им соответствуют различные степени длины от -3 до 3. Значение, соответствующее

Нормали и обратная транспозиция, часть 1: внешняя алгебра

-я степень длины, масштабированная как

Нормали и обратная транспозиция, часть 1: внешняя алгебра

.

(Можно получить величины с масштабирующими степенями

Нормали и обратная транспозиция, часть 1: внешняя алгебра

и более, или даже с дробными степенями.

Но оставим их за рамками рассмотрения, поскольку они не имеют хорошей геометрической интерпретации в 3D.) Ладно, возможно, это чем-то похоже на разницу между обычными векторами и нормалями.

Но как это работает для векторных величин? Как неоднородное масштабирование влияет на всю эту картину? И причем здесь обратная транспозиция? Чтобы по-настоящему понять это, нам придется углубиться в математику еще дальше.

Внешняя алгебра С этого момента и до конца нам понадобится внешняя алгебра , или алгебра Грассмана.

Поскольку не все читатели, скорее всего, с ними знакомы, я кратко введу эту тему.

Для более глубокого понимания, пожалуйста, обратитесь к эта лекция Рика Лангиела или первых глав книги Дорста Геометрическая алгебра для информатики .

В Интернете есть множество других материалов.

Внешняя алгебра — это расширение линейной алгебры, которое работает не только с векторами, но и с некоторыми геометрическими объектами более высокого порядка, называемыми бивекторы , тривекторы и так далее.

В целом эти объекты называются

Нормали и обратная транспозиция, часть 1: внешняя алгебра

-векторы , Где

Нормали и обратная транспозиция, часть 1: внешняя алгебра

внешняя степень или размер объекта.

Они следуют тем же правилам, что и векторы: их можно складывать и умножать на скаляры.

Но их геометрический смысл различен.

Мы часто думаем о векторе как об абстрактной стрелке — он имеет направление в пространстве (куда указывает стрелка) и абсолютное значение, представленное длиной стрелки.

Бивектор во многом аналогичен, но он плоский , не линейный.

Он представлен не стрелкой, а абстрактным участком плоской поверхности.

Как и векторы, бивекторы также имеют направление в том смысле, что плоскость может быть обращена в разные стороны в пространстве.

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

Чего у них нет, так это концепции формы на поверхности.

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



Нормали и обратная транспозиция, часть 1: внешняя алгебра

Точно так же тривекторы — это трехмерные векторные величины, которые представляют собой область пространства, а не плоскость или стрелку.

Опять же, они не имеют определенной формы, а имеют лишь абсолютную ценность, которая теперь объем , а не площадь или длина.

В трехмерном пространстве тривекторы не имеют направления в полезном смысле этого слова.

Другими словами, у них есть только одно возможное направление: параллельно пространству .

Однако тривекторы имеют два противоположных направления, которые мы можем назвать «положительным» и «отрицательным» или «правосторонним» и «левым».

Это похоже на то, как вектор может указывать влево или вправо на одномерной линии, и мы можем называть эти направления положительными и отрицательными, если захотим.

В пространствах более высоких измерений тривекторы также могут иметь множество разных направлений, как векторы и бивекторы.

Кроме того, могут существовать квадровекторы и

Нормали и обратная транспозиция, часть 1: внешняя алгебра

-векторы высших степеней.

Трех измерений нам будет достаточно.



Базовый

Нормали и обратная транспозиция, часть 1: внешняя алгебра

-векторы

Бивекторы и тривекторы можно разложить на составляющие в базисе так же, как это делается с обычными векторами.

Обозначение векторных координат

Нормали и обратная транспозиция, часть 1: внешняя алгебра

, Значит это

Нормали и обратная транспозиция, часть 1: внешняя алгебра

можно представить в виде линейной комбинации базисных векторов:

Нормали и обратная транспозиция, часть 1: внешняя алгебра

Базисные векторы

Нормали и обратная транспозиция, часть 1: внешняя алгебра

,

Нормали и обратная транспозиция, часть 1: внешняя алгебра

,

Нормали и обратная транспозиция, часть 1: внешняя алгебра

определить направление и масштаб осей

Нормали и обратная транспозиция, часть 1: внешняя алгебра

,

Нормали и обратная транспозиция, часть 1: внешняя алгебра

,

Нормали и обратная транспозиция, часть 1: внешняя алгебра

.

Аналогично, бивектор

Нормали и обратная транспозиция, часть 1: внешняя алгебра

можно представить линейной комбинацией базисные бивекторы :

Нормали и обратная транспозиция, часть 1: внешняя алгебра

Здесь

Нормали и обратная транспозиция, часть 1: внешняя алгебра

представляет собой бивектор единичной площади, ориентированный вдоль плоскости

Нормали и обратная транспозиция, часть 1: внешняя алгебра

.



Нормали и обратная транспозиция, часть 1: внешняя алгебра

И

Нормали и обратная транспозиция, часть 1: внешняя алгебра

можно представить по аналогии.

Базисные бивекторы соответствуют не координатным осям, а плоскостям, охватываемым пары топоры.

Так определяются «бивекторные координаты»

Нормали и обратная транспозиция, часть 1: внешняя алгебра

, с помощью которого мы можем обозначить или построить любой бивектор в пространстве.



Нормали и обратная транспозиция, часть 1: внешняя алгебра

Случай с тривектором менее интересен:

Нормали и обратная транспозиция, часть 1: внешняя алгебра

Как мы отмечали выше, тривектор в 3D имеет только одно возможное направление, поэтому у него есть только один базовый элемент: единичный тривектор «вдоль» пространства.



Нормали и обратная транспозиция, часть 1: внешняя алгебра

.

Все остальные тривекторы являются продуктами

Нормали и обратная транспозиция, часть 1: внешняя алгебра

скаляру.



Внешняя работа

Итак, внешняя алгебра содержит различные вектороподобные объекты разных степеней: обычные векторы (степень 1), бивекторы (степень 2) и тривекторы (степень 3).

Скалярам можно присвоить степень 0. Наконец, чтобы объекты разных степеней могли взаимодействовать, внешняя алгебра определяет операцию, называемую внешняя работа , обозначенный

Нормали и обратная транспозиция, часть 1: внешняя алгебра

.

Он позволяет построить бивектор путем умножения двух векторов, например:

Нормали и обратная транспозиция, часть 1: внешняя алгебра

В общем, можно перемножить любые два вектора и получить бивектор, лежащий в плоскости, определяемой этими векторами.

Абсолютной величиной бивектора будет площадь параллелограмма, построенного на этих векторах (как векторное произведение).

Обратите внимание, что бивектор не «помнит», какой именно конкретно оно строится в двух векторах.

Любые два вектора в одной плоскости, определяющие параллелограмм той же плоскости и ориентации, будут давать один и тот же бивектор.

Бивектор можно разложить на векторы, но не единственным способом.

Вы также можете умножить три вектор или бивектор с вектором, чтобы получить тривектор.



Нормали и обратная транспозиция, часть 1: внешняя алгебра

Такое произведение эквивалентно «скалярному смешанному произведению», которое дает тривектор, представляющий ориентированный объем параллелепипеда, натянутого на три вектора.

Внешний продукт подчиняется большинству известных правил умножения, таких как ассоциативность и закон распределения.

С ним также можно сочетать умножение на скаляр.

Для скаляра

Нормали и обратная транспозиция, часть 1: внешняя алгебра

мы получаем:

Нормали и обратная транспозиция, часть 1: внешняя алгебра

Но внешнее произведение двух векторов антикоммутативный , опять же, как перекрестное произведение.

Для векторов

Нормали и обратная транспозиция, часть 1: внешняя алгебра

у нас есть:

Нормали и обратная транспозиция, часть 1: внешняя алгебра

Отсюда следует несколько выводов.

Во-первых, внешнее произведение любого вектора на самого себя равно нулю:

Нормали и обратная транспозиция, часть 1: внешняя алгебра

.

При этом внешнее произведение множества линейно зависимый векторов также равно нулю.

Например,

Нормали и обратная транспозиция, часть 1: внешняя алгебра

Когда

Нормали и обратная транспозиция, часть 1: внешняя алгебра

И

Нормали и обратная транспозиция, часть 1: внешняя алгебра

коллинеарный.

В случае трёх векторов

Нормали и обратная транспозиция, часть 1: внешняя алгебра

Когда

Нормали и обратная транспозиция, часть 1: внешняя алгебра

копланарный.

Это также объясняет, почему степени выше 3 не существуют в трехмерном пространстве.

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

Преобразования

Нормали и обратная транспозиция, часть 1: внешняя алгебра

-векторы Ранее я заявил, что абсолютное значение вектора можно представить как длину, значение бивектора как площадь, а значение тривектора как объем.

Но что именно управляет этим сравнением единиц с количествами? Выше мы видели, что длины, площади и объемы ведут себя по-разному при масштабировании.

Равномерное масштабирование трехмерного пространства с коэффициентом

Нормали и обратная транспозиция, часть 1: внешняя алгебра

будет масштабировать длины, площади и объемы как

Нормали и обратная транспозиция, часть 1: внешняя алгебра

соответственно.

Теперь у нас есть аппарат, показывающий, что векторы, бивекторы и тривекторы ведут себя совершенно одинаково.

Вы можете применить масштаб к вектору, умножив его на подходящую матрицу:

Нормали и обратная транспозиция, часть 1: внешняя алгебра



Нормали и обратная транспозиция, часть 1: внешняя алгебра

Вектор

Нормали и обратная транспозиция, часть 1: внешняя алгебра

в целом, его составляющие

Нормали и обратная транспозиция, часть 1: внешняя алгебра

, и его скалярное абсолютное значение умножаются на коэффициент

Нормали и обратная транспозиция, часть 1: внешняя алгебра

при масштабировании, поэтому мы можем назвать это длиной, и противоречия не будет. А как насчет бивекторов? Чтобы увидеть, как они ведут себя при масштабировании (или любом другом линейном преобразовании), давайте посмотрим на внешний продукт. В трехмерном пространстве любой бивектор можно разложить во внешнее произведение двух векторов.

Мы знаем, как преобразовывать векторы, а это значит, что мы можем преобразовать бивектор, преобразовав составляющие его векторы и взяв внешнее произведение результатов:

Нормали и обратная транспозиция, часть 1: внешняя алгебра

Ух ты! Поскольку бивектор состоит из двух факторов, каждый из которых масштабируется на

Нормали и обратная транспозиция, часть 1: внешняя алгебра

, бивектор приобретает коэффициент

Нормали и обратная транспозиция, часть 1: внешняя алгебра

, что делает его областью.

Тривекторы также можно преобразовать, разложив их на векторы.

Теперь неудивительно, что три векторных множителя дают тривектору коэффициент

Нормали и обратная транспозиция, часть 1: внешняя алгебра

.

Вот расчеты на полноту:

Нормали и обратная транспозиция, часть 1: внешняя алгебра



Бивекторы и неоднородный масштаб

Теперь мы можем, наконец, вернуться к исходному вопросу.

Что станет сложнее, если мы подадим заявку неровный масштабирование? Чтобы понять это, давайте посмотрим на пример.

Масштабируем в 3 раза по оси

Нормали и обратная транспозиция, часть 1: внешняя алгебра

, оставляя остальные оси неизменными.

Вы получите матрицу вида:

Нормали и обратная транспозиция, часть 1: внешняя алгебра

На обычных векторах его действие очевидно: компонента

Нормали и обратная транспозиция, часть 1: внешняя алгебра

умноженное на 3, и компоненты

Нормали и обратная транспозиция, часть 1: внешняя алгебра

Не менять.

В общем, матрица меняет как длину, так и направление вектора в зависимости от исходного направления: векторы, близкие к оси

Нормали и обратная транспозиция, часть 1: внешняя алгебра

тянуться сильнее, а те, кто ближе к плоскости

Нормали и обратная транспозиция, часть 1: внешняя алгебра

- слабее.



Нормали и обратная транспозиция, часть 1: внешняя алгебра

Как такое преобразование повлияет на бивектор? Во-первых, давайте пойдем со стороны геометрии.

Бивектором обозначается участок плоскости заданной площади и направления, в котором направлена «лицевая» сторона.

При растяжении такого сечения вдоль оси

Нормали и обратная транспозиция, часть 1: внешняя алгебра

мы ожидаем, что и направление, и площадь изменятся.

Но разные бивекторы изменятся по-разному: на бивектор, близкий к плоскости

Нормали и обратная транспозиция, часть 1: внешняя алгебра

, растяжение повлияет меньше, а бивектор, плоскость которого близка к

Нормали и обратная транспозиция, часть 1: внешняя алгебра

, будет растянуто больше.



Нормали и обратная транспозиция, часть 1: внешняя алгебра

Хорошо, вернемся к алгебре.

Как показано выше, любой бивектор можно разложить на осевые базисные бивекторы:

Нормали и обратная транспозиция, часть 1: внешняя алгебра

Чтобы применить масштабирование

Нормали и обратная транспозиция, часть 1: внешняя алгебра

к бивектору, вам просто нужно применить его к базисным бивекторам.

Для этого разложим их на базисные векторы и применим

Нормали и обратная транспозиция, часть 1: внешняя алгебра

им:

Нормали и обратная транспозиция, часть 1: внешняя алгебра

Это соответствует геометрической интуиции:

Нормали и обратная транспозиция, часть 1: внешняя алгебра

не изменился, но

Нормали и обратная транспозиция, часть 1: внешняя алгебра

И

Нормали и обратная транспозиция, часть 1: внешняя алгебра

получили коэффициент 3, поскольку их плоскости включают ось

Нормали и обратная транспозиция, часть 1: внешняя алгебра

.

Итак, вот общий эффект от применения

Нормали и обратная транспозиция, часть 1: внешняя алгебра

к бивектору

Нормали и обратная транспозиция, часть 1: внешняя алгебра

:

Нормали и обратная транспозиция, часть 1: внешняя алгебра

Теперь, как и в случае с вектором, можно расписать преобразование бивектора

Нормали и обратная транспозиция, часть 1: внешняя алгебра

в виде компонентов, к которым применена матрица:

Нормали и обратная транспозиция, часть 1: внешняя алгебра

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

Обратите внимание на одно отличие: матрица в этом выражении имеет вид не совпадает с матрицей

Нормали и обратная транспозиция, часть 1: внешняя алгебра

оригинальная трансформация.

Отметим, однако, забавное совпадение: обратное транспонирование

Нормали и обратная транспозиция, часть 1: внешняя алгебра

пропорциональна матрице из предыдущей формулы:

Нормали и обратная транспозиция, часть 1: внешняя алгебра

Для чего это?

Сопряженная матрица

Фактически, матрица преобразования бивектора имеет вид присоединенная матрица К

Нормали и обратная транспозиция, часть 1: внешняя алгебра

.

Она пропорциональна обратной транспонированной матрице с коэффициентом

Нормали и обратная транспозиция, часть 1: внешняя алгебра

.

(Вернуться к

Нормали и обратная транспозиция, часть 1: внешняя алгебра

матрицу можно получить транспонирование сопряженной матрицы , разделив его на

Нормали и обратная транспозиция, часть 1: внешняя алгебра

).

Сопряженная матрица определена даже тогда, когда

Нормали и обратная транспозиция, часть 1: внешняя алгебра

необратимый.

Это хорошее свойство, потому что мы можем преобразовать вектор в необратимую матрицу, и то же самое должно быть возможно сделать и с бивектором! Давайте лучше разберемся, зачем нам сопряженная матрица.

Введем понятие алгебраического дополнения.

Каждый элемент квадратной матрицы

Нормали и обратная транспозиция, часть 1: внешняя алгебра

существует алгебраическое дополнение.

Алгебраическое дополнение элемента на

Нормали и обратная транспозиция, часть 1: внешняя алгебра

-я строка и

Нормали и обратная транспозиция, часть 1: внешняя алгебра

столбец следующим образом:

  1. Возьмем исходную матрицу

    Нормали и обратная транспозиция, часть 1: внешняя алгебра

    и зачеркни строку

    Нормали и обратная транспозиция, часть 1: внешняя алгебра

    и столбец

    Нормали и обратная транспозиция, часть 1: внешняя алгебра

    .

    Будет подматрица размера

    Нормали и обратная транспозиция, часть 1: внешняя алгебра

    .

  2. Вычислим определитель этой подматрицы.

  3. Умножим определитель на

    Нормали и обратная транспозиция, часть 1: внешняя алгебра

    , то есть меняем его знак, если

    Нормали и обратная транспозиция, часть 1: внешняя алгебра

    странный.

    Это алгебраическое сложение!

Теперь давайте вклеим алгебраические дополнения обратно в матрицу.



Нормали и обратная транспозиция, часть 1: внешняя алгебра

, в результате чего присоединенная матрица .

Но почему эта конструкция работает при бивекторном преобразовании? Давайте посмотрим на первую компоненту бивектора

Нормали и обратная транспозиция, часть 1: внешняя алгебра

.

Этот член представляет собой плоскую составляющую Теги: #Разработка игр #математика #Работа с 3D-графикой #нормали #внешняя алгебра #бивекторы

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.