Ваш Собственный Ar. Основы Векторной Алгебры



Ваш собственный AR. Основы векторной алгебры

На данный момент появилось достаточно большое количество библиотек дополненной реальности с богатым функционалом (ARCore, ARKit, Vuforia).

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

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

Давайте пока возьмем Windows и Android в качестве целевых платформ.

Библиотека написана на C++, и сторонние библиотеки будут использоваться по минимуму, т.е.

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

В этой статье пойдет речь об основах векторной алгебры.

Дополненная реальность — это сочетание виртуального мира и реального.

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

Начнем с основ векторной алгебры.

Векторы — это частный случай матриц, состоящих либо из одного столбца, либо из одной строки.

Когда мы говорим о векторе, обычно имеется вектор-столбец.



Ваш собственный AR. Основы векторной алгебры

.

Но записывать вектор в виде столбца неудобно, поэтому будем его транспонировать —

Ваш собственный AR. Основы векторной алгебры

.



Длина вектора

Первое, на что мы посмотрим, — это получение длины вектора —

Ваш собственный AR. Основы векторной алгебры

, Где

Ваш собственный AR. Основы векторной алгебры

- значение длины,

Ваш собственный AR. Основы векторной алгебры

наш вектор.

Например, возьмем двумерный вектор:

Ваш собственный AR. Основы векторной алгебры



Ваш собственный AR. Основы векторной алгебры

, Где

Ваш собственный AR. Основы векторной алгебры

И

Ваш собственный AR. Основы векторной алгебры

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

Ваш собственный AR. Основы векторной алгебры

И

Ваш собственный AR. Основы векторной алгебры

длины ног и

Ваш собственный AR. Основы векторной алгебры

- длина его гипотенузы.

По теореме Пифагора получается, что

Ваш собственный AR. Основы векторной алгебры

.

Означает

Ваш собственный AR. Основы векторной алгебры

.

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

Ваш собственный AR. Основы векторной алгебры

.



Скалярное произведение

Скалярное произведение векторов представляет собой сумму произведения их компонентов:

Ваш собственный AR. Основы векторной алгебры

.

Но поскольку мы знаем, что векторы — это матрицы, то удобнее записать это в таком виде:

Ваш собственный AR. Основы векторной алгебры

.

Эту же работу можно записать и в другой форме:

Ваш собственный AR. Основы векторной алгебры

, Где

Ваш собственный AR. Основы векторной алгебры

— угол между векторами

Ваш собственный AR. Основы векторной алгебры

И

Ваш собственный AR. Основы векторной алгебры

(для двумерного случая эта формула доказывается теоремой косинусов).

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

Ведь если

Ваш собственный AR. Основы векторной алгебры

, Что

Ваш собственный AR. Основы векторной алгебры

, И

Ваш собственный AR. Основы векторной алгебры

это просто произведение длин векторов.

Потому что

Ваш собственный AR. Основы векторной алгебры

- не может быть больше 1, то это максимальное значение, которое мы можем получить, меняя только угол

Ваш собственный AR. Основы векторной алгебры

.

Минимальное значение

Ваш собственный AR. Основы векторной алгебры

будет равен -1 и получается при

Ваш собственный AR. Основы векторной алгебры

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

Также отметим, что когда

Ваш собственный AR. Основы векторной алгебры



Ваш собственный AR. Основы векторной алгебры

, что означает, какую бы длину ни имел вектор

Ваш собственный AR. Основы векторной алгебры

И

Ваш собственный AR. Основы векторной алгебры

, не имеет значения

Ваш собственный AR. Основы векторной алгебры

.

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

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

Ваш собственный AR. Основы векторной алгебры

,

Ваш собственный AR. Основы векторной алгебры

.



Проекция вектора на другой вектор

Возьмем два вектора:

Ваш собственный AR. Основы векторной алгебры

И

Ваш собственный AR. Основы векторной алгебры

.

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

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



Ваш собственный AR. Основы векторной алгебры

Векторы — это направления, поэтому их начало лежит в начале координат. Выделим ключевые моменты:

Ваш собственный AR. Основы векторной алгебры

- источник,

Ваш собственный AR. Основы векторной алгебры

— конечная точка вектора

Ваш собственный AR. Основы векторной алгебры

,

Ваш собственный AR. Основы векторной алгебры

— конечная точка вектора

Ваш собственный AR. Основы векторной алгебры

.

В геометрическом смысле мы ищем такую

Ваш собственный AR. Основы векторной алгебры

, так что конечная точка вектора (обозначим ее как -

Ваш собственный AR. Основы векторной алгебры

) была ближайшей точкой к точке

Ваш собственный AR. Основы векторной алгебры

, лежащий на прямой

Ваш собственный AR. Основы векторной алгебры

.

Другими словами, мы хотим найти компонент

Ваш собственный AR. Основы векторной алгебры

В

Ваш собственный AR. Основы векторной алгебры

, то есть это значение

Ваш собственный AR. Основы векторной алгебры

, к

Ваш собственный AR. Основы векторной алгебры

И

Ваш собственный AR. Основы векторной алгебры

Расстояние между точками

Ваш собственный AR. Основы векторной алгебры

И

Ваш собственный AR. Основы векторной алгебры

будет минимальным, если

Ваш собственный AR. Основы векторной алгебры

.

Получаем прямоугольный треугольник –

Ваш собственный AR. Основы векторной алгебры

.

Обозначим

Ваш собственный AR. Основы векторной алгебры

.

Мы знаем это

Ваш собственный AR. Основы векторной алгебры

по определению косинуса через соотношение сторон прямоугольного треугольника (

Ваш собственный AR. Основы векторной алгебры

- гипотенуза,

Ваш собственный AR. Основы векторной алгебры

- соседняя нога).

Мы также берем скалярное произведение

Ваш собственный AR. Основы векторной алгебры

.

Следует, что

Ваш собственный AR. Основы векторной алгебры

.

Что значит

Ваш собственный AR. Основы векторной алгебры

.

Вот мы это помним

Ваш собственный AR. Основы векторной алгебры

искомый вектор

Ваш собственный AR. Основы векторной алгебры

, А

Ваш собственный AR. Основы векторной алгебры



Ваш собственный AR. Основы векторной алгебры

, и мы получаем

Ваш собственный AR. Основы векторной алгебры

.

Умножьте обе части на

Ваш собственный AR. Основы векторной алгебры

и мы получаем -

Ваш собственный AR. Основы векторной алгебры

.

Теперь мы знаем длину

Ваш собственный AR. Основы векторной алгебры

.

Вектор

Ваш собственный AR. Основы векторной алгебры

отличается от вектора

Ваш собственный AR. Основы векторной алгебры

длину, а не направление, то есть через соотношение длин можно получить:

Ваш собственный AR. Основы векторной алгебры

.

И мы можем вывести окончательные формулы:

Ваш собственный AR. Основы векторной алгебры

И

Ваш собственный AR. Основы векторной алгебры



Нормализованный вектор

Хороший способ упростить работу с векторами — использовать векторы единичной длины.

Возьмем вектор

Ваш собственный AR. Основы векторной алгебры

и мы получаем сонаправленный вектор

Ваш собственный AR. Основы векторной алгебры

длина единицы.

Для этого разделим вектор на его длину:

Ваш собственный AR. Основы векторной алгебры

.

Эта операция называется нормализацией, а вектор – нормализованным.

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

Ваш собственный AR. Основы векторной алгебры

.

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

Ваш собственный AR. Основы векторной алгебры

.

Хорошим преимуществом нормализованных векторов является то, что формула проекции значительно упрощается (поскольку длина равна 1, она уменьшается).

Векторная проекция

Ваш собственный AR. Основы векторной алгебры

на

Ваш собственный AR. Основы векторной алгебры

длина единицы:

Ваш собственный AR. Основы векторной алгебры



Ваш собственный AR. Основы векторной алгебры



Матрица вращения двумерного пространства

Предположим, у нас есть некая цифра:

Ваш собственный AR. Основы векторной алгебры

Для его рисования задаются координаты его вершин, от которых проводятся линии.

Координаты задаются как набор векторов следующим образом:

Ваш собственный AR. Основы векторной алгебры

.

Наша координатная сетка определяется двумя осями — единичными ортогональными (перпендикулярными) векторами.

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

Ваш собственный AR. Основы векторной алгебры

- левый и правый перпендикуляры.

Берем вектор, определяющий ось

Ваш собственный AR. Основы векторной алгебры



Ваш собственный AR. Основы векторной алгебры

и ось

Ваш собственный AR. Основы векторной алгебры

- слева перпендикулярно ему -

Ваш собственный AR. Основы векторной алгебры

.

Давайте выведем новый вектор, полученный из наших базисных векторов:

Ваш собственный AR. Основы векторной алгебры

Сюрприз — он соответствует нашему исходному вектору.

Теперь попробуем как-то изменить нашу фигуру – повернем ее на угол.



Ваш собственный AR. Основы векторной алгебры

.

Для этого повернем векторы

Ваш собственный AR. Основы векторной алгебры

И

Ваш собственный AR. Основы векторной алгебры

, определяющий оси координат. Поворот вектора

Ваш собственный AR. Основы векторной алгебры

задается косинусом и синусом угла -

Ваш собственный AR. Основы векторной алгебры

.

И чтобы получить вектор оси

Ваш собственный AR. Основы векторной алгебры

, возьмем перпендикуляр к

Ваш собственный AR. Основы векторной алгебры

:

Ваш собственный AR. Основы векторной алгебры

.

Завершив это преобразование, мы получим новую фигуру:

Ваш собственный AR. Основы векторной алгебры



Ваш собственный AR. Основы векторной алгебры

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

Также здесь мы также можем объединить матрицы преобразования в одну:

Ваш собственный AR. Основы векторной алгебры



Ваш собственный AR. Основы векторной алгебры



Ваш собственный AR. Основы векторной алгебры

Хотя в этом случае, если

Ваш собственный AR. Основы векторной алгебры

Теги: #математика #Алгоритмы #Разработки для AR и VR #AR и VR #AR #векторная математика #векторная алгебра

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