Материал получен от доктора Инцай Сяо, 3460:457/557.
Векторы
Вектор имеет направление и длину, определенные от начала координат (0, 0)
. Чтобы вычислить длину вектора (|V|
), используйте формулу: |V| = sqrt(x^2 + y^2)
. Единичный вектор имеет длину 1
. Чтобы нормализовать вектор, просто вычислите V / |V|
.
Скалярное произведение двух векторов находится в форме слева и используется для вычисления cos(θ) = (V ● W) / (|V| * |W|)
.
Существует также понятие нормального вектора, который представляет собой вектор, перпендикулярный поверхности.
Линии
Параметрическая форма
Параметрическая линия может быть получена по двум точкам, P_0
и P_1
. Чтобы вычислить параметр для x и y, можно вычислить набор уравнений, изображенный ниже.
Эти уравнения могут быть представлены как x(t) = x0 + t * (x1 — x0)
и y(t) = y0 + t * (y1 — y0)
. Где 0 <= t <= 1
.
2D-преобразования
Масштабирование
Масштабирование может быть выполнено с использованием следующей матрицы:
Вращение
Вращение вокруг начала координат может быть достигнуто с помощью следующей матрицы:
Однородные координаты
Однородные координаты представлены в виде (x, y, w)
, которые могут быть представлены в матрицах следующим образом:
Затем преобразования могут быть представлены в виде следующей матрицы с учетом dx
и dy
:
Стрижка
Сдвиг теперь может быть выполнен с точки зрения x и y с использованием следующих матриц:
3D-преобразования
Существует набор преобразований, аналогичных для 3D, подобных 2D, как показано ниже:
Вращение
Вращение сейчас, к сожалению, сложнее. Вращение может быть выполнено вокруг оси X, Y или Z.
Проекция
Не в матричной форме это можно выразить как: x_p = x’ / w’ = x / (z/d + 1)
и —y_p = y’ / w’ = y / (z/d + 1)
. Проекция включает в себя идею ракурса, заключающуюся в том, что объект становится все меньше и меньше по мере удаления от глаза, что контролируется значением d
.