Answers:
要使2D向量垂直于另一个2D向量,只需交换X
和Y
分量,取反新的Y
分量即可。如此{ x, y }
成为{ y, -x }
。
我总是忘记了在需要时如何执行此操作,因此我编写了一些扩展方法。
public static Vector2 PerpendicularClockwise(this Vector2 vector2)
{
return new Vector2(vector2.Y, -vector2.X);
}
public static Vector2 PerpendicularCounterClockwise(this Vector2 vector2)
{
return new Vector2(-vector2.Y, vector2.X);
}
和单元测试
[Test]
public void Vector2_Perpendicular_Test()
{
var a = new Vector2(5, -10);
var b = a.PerpendicularClockwise();
var c = a.PerpendicularCounterClockwise();
Assert.AreEqual(new Vector2(-10, -5), b);
Assert.AreEqual(new Vector2(10, 5), c);
}