atan2 — функция от двух переменных, определённая для всех ненулевых векторов (x, y) и дающая угол вектора в диапазоне ±180°. Обычно представляет собой сшивку арктангенсов и арккотангенсов.
Поскольку мы пошли вправо (в распространённой в математике правой системе координат; в компьютерах чаще используют левую) от вектора AB и нам нужна меньшая из двух дуг, в порядке увеличения полярного угла будет сначала B, потом A. (Пошли бы влево — было бы наоборот.) Радиус-векторы:
OB = (190 − 158,7; 40 + 258,1) = (31,3; 298,1)
OA = (15 − 158,7; 5 + 258,1) = (−143,7; 263,1)
atan2 соответствующих векторов: 84,0° и 118,6°. (Простите, считаю на эмуляторе МК-61, так что пусть будет в градусах.) Никакого упорядочивания не требуется. Разница 34,6°.
Промежуточные углы: 92,65°; 101,3°; 109,95°.
Возьмём, например, первую точку:
(158,7 + 300·cos 92,65°; −258,1 + 300·sin 92,65°) = (144,8, 41,6).
КОНТРОЛЬ: расстояние между точками:
(144,8 − 158,7)² + (41,6 + 258,1)² ≈ 300,0²
Александр Макаров, Я тут ошибся слегка, и d = sqrt(300^2 − [(190 − 15)^2 + (40 − 5)^2] / 4) ≈ 286,4.
Если надо считать на бумаге, а не на компе — то средняя точка (x0∓R·y4, y0±R·x4).
А дальше уже считайте биссектрисы.
VL5438, В каких-то языках порядок вычисления совпадает с ассоциативностью, в каких-то — компилятору даётся определённая свобода вычислять в любом порядке, в каком понравится.