То, что Unity говорит о точках против векторов, бессмысленно в долгосрочной перспективе, потому что геометрические API просто выбирают четкие определения, чтобы сделать инструмент более доступным, они не соответствуют тому, как эти вещи концептуализируются в геометрии. Посмотрите на реализацию классов, если можете. Поскольку это произвольно, знать его определение - единственный способ понять, что такое концепция. Полное раскрытие, у меня нет опыта Unity.
Вектор - это точка в векторном пространстве , в которой понятие точки в геометрии кодируется элементами базового набора. Векторное пространство имеет выделенный вектор, называемый началом координат или 0 . Линейная алгебра - это попытка кодировать фрагмент евклидовой геометрии с началом координат алгебраически.
Стрелка и ее длина
Движения через пространство точек часто интерпретируются как все стрелки от исходных / до точек до их цели / после точек.
Функция двух аргументов может быть применена к одному аргументу для получения функции одного аргумента - мы можем говорить о x +, функции, которая переводит каждый вектор y в вектор x + y . Это перевод, связанный с добавлением х . Связанные стрелки идут от точек y к точкам x + y . Смотрите: частичное применение , карри .
Так почему же мы используем только одну стрелку ? Стрелка от начала координат указывает на определенный вектор, х в x + - начало координат - это тождественность сложения векторов. Таким образом, мы можем восстановить перевод x + только из его значения x + 0 = x .
Как графическое представление пространства, представление стрелки связано с нашей способностью визуально или физически экстраполировать эффект перевода от определяющего его значения. Когда у нас есть эта способность?
Чтобы придать векторному пространству норму, превратив его в нормированное векторное пространство , нужно дать представление о длине вектора, которая имеет смысл как его расстояние от 0. Кроме того, это должно быть расстояние, удовлетворяющее неравенству треугольника, которое является сильное ограничение на то, как длины двух векторов соотносятся с их суммой. Из длины мы можем определить расстояние, чтобы сделать это метрическим пространством , а геодезическая - это путь, который является прямым по своей сути, поскольку он максимально короткий. Евклидова норма индуцирует евклидово расстояния и геодезические отрезки стрел, но если вы рисуете стрелки , как геодезические , используя различные нормыВы можете экстраполировать геометрический эффект перевода из геодезических, чтобы узнать о геометрии.
Значение точки и вектора
В некоторых случаях при выполнении игровой геометрии ваше пространство точек не является векторным пространством . Аффинное пространство размерности n может быть вложено в проективное пространство размерности n . Аффинные карты сводятся к проективности. Проективность также позволяет вам делать FOV, я думаю, что это не аффинно. Проективность имеет преимущества:
Проективное n- пространство над полем можно построить из линейного ( n +1) -пространства (векторного пространства), рассматривая точки проективного пространства как прямые, проходящие через начало линейного пространства. Плоскости через начало координат в свою очередь дают проективные линии. Умножение векторов на фиксированную матрицу - это линейное отображение , для этого и нужно умножение матриц. Линейные карты сохраняют происхождение и совместимы с частотой. В частности, если f - линейный автоморфизм ( соответствующий обратимой ( n +1) x ( n +1) матрице), и две прямые L, M через начало координат охватывают плоскость A , тоf L, f M - линии через начало координат, охватывающие f A , поэтому f сохранит попадание и на проективное пространство - обратимая матрица имеет связанную проективность. Матричное умножение кодирует композицию линейных отображений и, следовательно, проективных функций.
Удаляя начало координат из линейного пространства, все точки на данной прямой через начало координат являются скалярными кратными друг другу. Используя этот факт, гомогенизация выбирает линейную точку для каждой проективной точки и обратимую матрицу для каждого проективного преобразования (как в этом 2D -> 2D аффинных картах как 3D -> 3D видео линейных карт ), таким образом, способ, которым представители замкнуты под матрично-матричными и матрично-векторными произведениями и дают и задаются уникальными проективными вещами. Это описание построения проективной плоскости из линейной плоскости связывает некоторые вещи вместе.
Итак, в конвейере матрицы модель-вид-проекция мы используем векторы для представления точек нашего проективного пространства, но проективное пространство не является векторным пространством, и не все векторы в векторном пространстве, которые мы используем, представляют точки нашей геометрии (см. рисунок аффинной плоскости справа ). Мы используем матрицы перевода вместо векторной суммы, если мы хотим переводы. Иногда люди называют векторы проективных или аффинных точек, особенно при использовании установки в этом ключе.