【发布时间】:2019-08-13 20:16:57
【问题描述】:
我在理解向量归一化函数时遇到问题。
我有这个向量归一化函数:
function vectorNormalization(vector) {
var magnitude = Math.sqrt((vector[0] * vector[0]) + (vector[1] * vector[1]) +
(vector[2] * vector[2]));
var x = vector[0] / magnitude;
var y = vector[1] / magnitude;
var z = vector[2] / magnitude;
return [x, y, z];
}
这些是两个向量之间减少的结果(在 3D 软件中使用)。
[X: -0.004805074799706634, Y: 0.19191680472036263, Z: -0.002017289400100708]
向量归一化函数返回:
[-0.025028054575754678,0.99963152765883,-0.010507397138519977]
Y 值太高,它应该被归一化并代表一个单位,但它导致的数字要高得多。单位应小于归一化前的值。
如您所见,我正在处理具有小数精度的 3D 坐标系。该部门正在产生这个。我想我需要做一些考虑小数精度的事情,但我不确定。
【问题讨论】:
标签: math vector normalization