public struct Distance(double dx, double dy)
public double Magnitude => Math.Sqrt(dx * dx + dy * dy);
public double Direction => Math.Atan2(dy, dx);
public Point(double x, double y)
public Distance CalculateDistanceTo(Point other)
double dx = other.X - this.X;
double dy = other.Y - this.Y;
return new Distance(dx, dy);
static void Main(string[] args)
Point point1 = new Point(0, 0);
Point point2 = new Point(3, 4);
Distance distance = point1.CalculateDistanceTo(point2);
Console.WriteLine($"Magnitude: {distance.Magnitude} units");
Console.WriteLine($"Direction: {distance.Direction} radians");
double directionInDegrees = distance.Direction * (180 / Math.PI);
Console.WriteLine($"Direction: {directionInDegrees} degrees");