Я всегда забываю, как это сделать, когда мне это нужно, поэтому я написал пару методов расширения.
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);
}