如何在规范化之前对已规范化的向量进行反规范化以获得原始值?
例如:
vec = [-0.5, -1.0, 0.0]
vec_length = sqrt(vec.x^2 + vec.y^2 + vec.z^2)
vec_normalized = [vec.x/vec_length, vec.y/vec_length, vec.z/vec_length]
产量:
vec_length = 1.11803
vec_normalized = [-0.447214,-0.894427,0]
如何从归一化向量 [-0.447214,-0.894427,0] 中获得原始向量 [-0.5, -1.0, 0.0]?
谢谢!
最佳答案
你不能。有无数个向量的归一化形式是 [-0.447214, -0.894427, 0]
。
如果你想要一个“更好”的形式,你可以尝试放大到任意数字,随机示例:
我希望 x
是 -3
:
scale = -3 / vec_normalized.x;
vec2 = [vec_normalized.x * scale, vec_normalized.y * scale, vec_normalized.z * scale];
结果:
scale = 6.70819787
vec2 = [-3, -6, 0]
但是注意不要选择
0
的组件,因为这会产生 scale = infinity
。
关于math - 非规范化向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26912479/