关于Vector3.normalize()的问题;

时间:2010-10-20 10:05:58

标签: c# 3d xna

阅读谷歌后,我仍然不太明白这是什么/意味着什么?有人可以解释一下吗?可能是一个简单的例子?非常感谢你。

2 个答案:

答案 0 :(得分:6)

规范化矢量意味着更改其组件,使其总长度等于1.

在伪代码中:

length = sqrt((vec.x * vec.x) + (vec.y * vec.y) + (vec.z * vec.z))
vec.x /= length
vec.y /= length
vec.z /= length

这在实时3D中有很多用途,因为赋范向量具有有趣的属性。

答案 1 :(得分:1)

将矢量标准化将其缩放为长度1.0,而不改变其方向。

编辑:这是通过找到向量的长度,然后将每个坐标除以长度来实现的:

length = sqrt(x * x + y * y + z * z);

norm = [x /长度,y /长度,z /长度];

显然,你无法规范零长度矢量。