private Line(Point start, Point end)
{
if (start == end)
{
throw new ArgumentException("Start point of the line cannot be the same as its end point.");
}
k = (end.Y - start.Y) / (end.X - start.X);
b = float.IsInfinity(k) ? start.X : start.Y - k * start.X;
}