Как определить координаты вершины C треугольника, чтобы площадь треугольника ABC была минимальной?

Здравствуйте! У меня такая задача:
Пусть в треугольнике ABC заданные координаты вершин A = (0,0), B = (а, b), где а и
b - целые числа, вводимые пользователем. Разработать функцию (метод), которая
определяет следующие цели координаты вершины C = (x, y), чтобы площадь треугольника ABC
была минимальной (среди не равны нулю). Всего функций (методов) должно
быть или две (CalcMinOfSquares и CalcTriangleSquareByPoints), или три (при исчислении
площади по формуле Герона ввести также функцию (метод) CalcSideLength, которая
превращает координаты концов стороны в ее длину) . Поиск минимальной
площади делать путем перебора возможных координат точки C.
Я использовал 2 метода (CalcTriangleSquareByPoints и CalcSideLength), но не могу понять как доделать. Сам код:
`"using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 123
{
class Program
{
static double CalcSideLength(int x1, int y1, int x2, int y2)
{
return Math.Sqrt(Math.Pow(x2 - x1, 2) + Math.Pow(y2 - y1, 2));
}
static double CalcTriangleSquareByPoints(int x1, int y1, int x2, int y2, int x3, int y3)
{
double a = CalcSideLength(x1,y1,x2,y2);
double b = CalcSideLength(x3,y3,x2,y2);
double c = CalcSideLength(x1,y1,x3,y3);
double p = (a + b + c) / 2;
return Math.Sqrt(p * (p - a) * (p - b) * (p - c));
}
static double CalcMinOfSquares(int x1, int y1, int x2, int y2, int x3, int y3)
{

     }
     static void Main(string[] args)
    {

    }
}

}"`