25 lines
976 B
C#
25 lines
976 B
C#
namespace AdventOfCode.HelperClasses;
|
|
|
|
public record Coordinate(long X, long Y)
|
|
{
|
|
public double GetEuclidianDistance(Coordinate other) =>
|
|
GetEuclidianDistance(this, other);
|
|
|
|
public static double GetEuclidianDistance(Coordinate a, Coordinate b) =>
|
|
Math.Sqrt((a.X - b.X) * (a.X - b.X) + (a.Y - b.Y) * (a.Y - b.Y));
|
|
|
|
public static Coordinate operator +(Coordinate left, Coordinate right) =>
|
|
new(left.X + right.X, left.Y + right.Y);
|
|
}
|
|
|
|
public record Coordinate3d(long X, long Y, long Z)
|
|
{
|
|
public double GetEuclidianDistance(Coordinate3d other) =>
|
|
GetEuclidianDistance(this, other);
|
|
|
|
public static double GetEuclidianDistance(Coordinate3d a, Coordinate3d b) =>
|
|
Math.Sqrt((a.X - b.X) * (a.X - b.X) + (a.Y - b.Y) * (a.Y - b.Y) + (a.Z - b.Z) * (a.Z - b.Z));
|
|
|
|
public static Coordinate3d operator +(Coordinate3d left, Coordinate3d right) =>
|
|
new(left.X + right.X, left.Y + right.Y, left.Z + right.Z);
|
|
} |