О боги, вы делаете это таким невероятно усложненным образом.
Пропустите всю дерьмо под углами.Тебе это не нужно.Период.Делайте все это с векторами и очень простыми.Прежде всего, я предполагаю, что вам дают две точки, P1 и P2.Вы хотите найти новую точку P3, которая является известным расстоянием (d) от P2, вдоль линии, соединяющей две точки.
Все, что вам нужно сделать - это сначала вычислить вектор, который указывает вдоль линиив вопросе.
V = P2 - P1;
Я написал это так, как будто я пишу в MATLAB, но все это означает, что нужно вычесть координаты x и y двух точек.
Далее,масштабируйте вектор V, чтобы он имел единичную длину.
V = V/sqrt(V(1)^2 + V(2)^2);
Разделив компоненты вектора V на длину (или 2-норму, если вы предпочитаете) этого вектора, создайте вектор с единичной нормой.Эта норма представляет собой просто квадратный корень из суммы квадратов элементов V, поэтому это, очевидно, длина вектора.
Теперь вычислить P3 просто.
P3 = P2 + d*V;
P3 будет находиться на расстоянии d единиц от P2 в направлении линии от точки P1.Ничего сложного не требуется.Углы не рассчитаны.Не беспокойтесь о квадрантах.
Научитесь использовать векторы.Они ваши друзья, или, по крайней мере, они могут быть, если вы позволите им.