Молодец, теперь посмотри, как красиво твой код наезжает на поля.
PS. Если честно, на код с биссектрисами смотреть без слез не могу.
Почитай что-нибудь по математике, откроешь для себя много интересного.
В частности - барицентрические координаты.
всегда удивлялся людям, которые могут обсуждать, вместо того, чтобы что то свое сделать и потом показать, зачем, гроб, ты учишься то тогда? Селектер ведь _сделал_ чето... сделай в ответ барицентрические координаты, дело то...
Я ни в коем разе не ругаю хорошее начинание, я лишь даю совет.
Результатом поднятия уровня математической культуры в данном случае
да и вообще всегда будет более красивый и простой код.
Вот замена всему непарсящему коду:
double distance2d(Point2d &A, Point2d &B)
{
return sqrt(pow((A.x - B.x),2)+pow((A.y - B.y),2));
}
Point2d incenter(Point2d &A , Point2d &B, Point2d &C)
{
double c = distance2d(A,B);
double a = distance2d(B,C);
double b = distance2d(C,A);
double p = a+b+c;
return Point2d((a*A.x+b*B.x+c*C.x)/p, ((a*A.y+b*B.y+c*C.y)/p));
}
А вообще на -1,0 0,1 1,0 оригинальный код выдает 0,0.333333 хотя должен бы 0,0.414214; 0.414214 = 1/(1+\sqrt2)