Скажем, у меня есть нормализованный вектор, но я не знаю, какова координата z. Как я могу получить нормализованную координату z при сохранении существующих координат x и y.
Например:
X: -0.361
Y: 0.361
Z: ?
Длина только х и у 0,510531
len = sqrt((ax * ax) + (ay * ay)) -- 0.510531
Спасибо!
Что значит иметь нормализованный вектор? Это означает, что |Vx|^2 + |Vy|^2 +|Vz|^2 = 1
, Итак, из стандартной алгебры следует, что |Vz| = sqrt(1 - |Vx|^2 - |Vy|^2)
что подразумевает, что Vz
может принимать 2 значения, отрицательное и положительное sqrt(1 - |Vx|^2 - |Vy|^2)
И, кстати, ответ одинаков во всех языках программирования;) Math не имеет ничего общего с C ++.
Это просто положительный или отрицательный квадратный корень из:
1 - ax * ax - ay * ay