Я думаю, что ваша ошибка представлена в этой строке:
long sumys = (Integer.parseInt(y1)+ Integer.parseInt(y2))/2;
/2
будет усекать .5
, если сумма двух координат Y нечетна. Как это для этой линии:
170,509|341,54
Вы вычисляете 281
для этого, но координата Y средней точки равна 281.5
.
Я предлагаю разобрать все числа в переменные с плавающей запятой и сохранить промежуточные результаты в переменные с плавающей запятой. Стандарт double
должен иметь мантиссу для точной обработки этого набора данных.