我正在为 CAD 系统编写插件。不幸的是,这个系统有一个糟糕的 API。所以,我为 Vector3d 类编写了扩展。这是(C#代码):
/// <summary>
/// Normalizes the vector by dividing it’s all coordinates with the vector's norm.
/// </summary>
/// <param name="v">
/// This vector.
/// </param>
/// <returns>
/// Returns vector's norm.
/// </returns>
public static double Normalize(this Vector3d v)
{
var norm = v.Norm();
var invNorm = 1.0 / norm;
v.X *= invNorm;
v.Y *= invNorm;
v.Z *= invNorm;
return norm;
}
但是我有一个问题:当这个方法执行时,向量的坐标会改变。但是,当方法执行后,向量的坐标具有原始值。
我对其他扩展方法没有问题。