math - 非规范化向量

标签 math vector maxscript

如何在规范化之前对已规范化的向量进行反规范化以获得原始值?

例如:

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/

相关文章:

c# - MathNet 将标量乘以矩阵

math - Lua 的标准(或最受支持的)大数(任意精度)库是什么?

c++ - 保持最大尺寸的 vector ?

3dsmax - 如何以编程方式为 3ds max 中的对象分配随机颜色?

compiler-errors - Maxscript错误: group requires a node or node collection

math - 计算矩阵中交叉对角线元素的总和

C:指针算术的评估:操作何时完成?

c++ - 我无法将 'fill' std::vector 构造函数与 unique_ptrs 一起使用

c++ - int vector 中的字符串 vector ?

maxscript - 从另一个 maxscript 调用 maxscript