Krogoth писал(а):
Получил следующее:
Xb=Xasin(b-arctg(Yn/Xn))/cosa
Yb=Yacos(b-arctg(Yn/Xn))/sina
Если б еще проверить как...
Проверил - более или менее похожий результат только в том случае, когда вектор нормали как на рисунке - вверх смотрит. Ну а по-другому - чёрти что выходит.
Так что неверно ты решил, к сожалению.
Я тут по известным мне формулам вот что придумал:
1) если есть три вектора,
не лежащих в одной плоскости, то объём параллелепипеда, один из трёхгранных углов которого построен из этих векторов, равен определителю такой матрицы:
X1 Y1 Z1
X2 Y2 Z2
X3 Y3 Z3
Так что раз наши три вектора лежат в одной плоскости, то объёма у такого "параллелипипеда" не будет, и определитель матрицы будет равен нулю. Значит, так мы можем получить первое уравнение.
2) Далее. Если есть 2 вектора:
a(Xa;Ya;Za)
b(Xb;Yb;Zb)
То для них справедливо такое отношение:
cos(угол a,b) = [Xa*Xb+Ya*Yb+Za*Zb]/[корень(Xa^2+Ya^2+Za^2)*корень(Xb^2+Yb^2+Zb^2)]
Ну, это есть формула скалярного произведения векторов.
Так вот раз нам известно 2 угла (A и B), то можно составить 2 уравнения по этой формуле.
Таким образом получится 3 уравнения. А неизвестных у нас - тоже 3. Так что теоретически, раз количество уравнений равно числу неизвестных, решить полученную систему можно. Но я тут попробовал взглянуть на полученные уравнения...
Они не просто нелинейные - они безумно страшные и огромные!!!