Скалярное произведение векторов/Задачи/Нормализация вектора
Нормализация — приведение к единичному размеру; нормализация в трехмерном пространстве - по сути является масштабированием в куб единичного размера
Нормализация вектора — это преобразование заданного вектора в вектор в том же направлении, но с единичной длиной.
Для нормализации вектора нужно каждую компоненту поделить на длину вектора, или умножить инверсию длины на данный вектор. Длина вектора в трёхмерном евклидовом пространстве определяется формулой:
- Пример для трехмерного пространства
- Дан вектор
- Тогда длина вектора:
- Инверсия длины:
- Тогда для нормализации вектора нужно умножить вектор на инверсию длины:
Программный код нормализации трехмерного вектора
public float length()
{
return (float)Math.Sqrt((X * X) + (Y * Y) + (Z * Z));
}
public xyzVector normalize()
{
float locLength = length();
float inv_length = (1 / locLength);
x *= inv_length;
y *= inv_length;
z *= inv_length;
return this;
}