归一化向量 [英] Denormalize vector

查看:241
本文介绍了归一化向量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在标准化之前对已标准化的向量进行标准化以获取原始值?

How can I denormalize a vector that has been normalized to get the original values prior to normalizing?

例如:

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]?

How can I get the original vector [-0.5, -1.0, 0.0] from the normalized vector [-0.447214,-0.894427,0]?

谢谢!

推荐答案

您不能.
有无数个归一化形式为[-0.447214, -0.894427, 0]的向量.

如果您希望使用更细"的表格,则可以尝试将其按比例放大到任意数字,例如:

If you want a "nicer" form, you can try up-scaling to an arbitrary number, random example:

我希望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.

But be careful not to choose a component which is 0, because that would yield scale = infinity.

这篇关于归一化向量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆