游戏数学(9)

 

public Vector Add(Vector r)

{

return new Vector(X + r.X, Y + r.Y, Z + r.Z);

}

public static Vector operator+(Vector v1, Vector v2)

{

return v1.Add(v2);

}

重载二元的加法操作符+时,会自动重载+=。同理也适用于*=和/=。

图8-4显示了将两个向量加到一起后的结果。当试图在3D空间中得到特定的偏移值时,经常把两个向量加到一起。例如,假设想要在玩家头顶放置一个3D光环模型。玩家的原点在一只脚的中间。使用一个向量表示从玩家的脚到玩家头部的中央[0,1.75,0]之间的偏移。如果添加一个向量[0,0.2,0],这可以得到一个非常适合放置光环的位置。图8-5显示了这个操作。

读书导航