標準化Vector3對象的兩種方法;通過從頭歸調用Vector3.Normalize()和其他:Microsoft.DirectX.Vector3.Normalize()不一致
class Tester {
static Vector3 NormalizeVector(Vector3 v)
{
float l = v.Length();
return new Vector3(v.X/l, v.Y/l, v.Z/l);
}
public static void Main(string[] args)
{
Vector3 v = new Vector3(0.0f, 0.0f, 7.0f);
Vector3 v2 = NormalizeVector(v);
Debug.WriteLine(v2.ToString());
v.Normalize();
Debug.WriteLine(v.ToString());
}
}
上述代碼產生這樣的:
X: 0
Y: 0
Z: 1
X: 0
Y: 0
Z: 0.9999999
爲什麼呢?
(積分:爲什麼是我?)
這很容易笑,但你能生產出更好的版本嗎? – shoosh 2008-11-27 08:45:18
我已經提供了一個更好的版本。再次閱讀。 – 2008-11-27 08:53:43