public static Vector2 PointOnLine(Vector2 a, Vector2 b, float offset) {
Vector2 unit = delta / delta.Length();
return a + (unit * offset);
public static void Main()
Vector2 result = Program.PointOnLine(new Vector2(0, 0), new Vector2(10, 0), 4);
Console.WriteLine(result);
result = Program.PointOnLine(new Vector2(0, 0), new Vector2(10, 10), 4);
Console.WriteLine(result);