Поскольку мне сказали все математики обожают стереометрию, я не могу не обрадовать их таким прекрасным вопросом.
Мне нужно понять как можно посчитать координаты трех точек (трех светлосерых шариков)
Дано:
Координаты зеленого шарика (x_0, y_0, z=0) и координаты темно серого (x_1,y_1,z=0). Я понимаю, что для простоты в этом конкретном случае можно их поставить на одну ось (скажем, y=0), но мне нужен не этот случай, а более общая формула.
Если светло серый шарик водород Н, а темно серый углерод С, то нам известны: угол HCH (параметр \phi), угол HC-зеленый шарик (параметр \theta), и расстояние между серым и темно серым шариками (параметр r).
тут вроде так можно(идейно): понять, что атомы 3, 4, 5H лежат на окружности(через скалярное произдение найти ее светлосерый - зеленый \ast светлосерый -серый), которая перпендикулярна Oxy, потом поставить БОО H_3 на эту окружность и поделить эту окружность на три равные части получить координаты оставшихся двух
Вращение вокруг конкретной оси \vec v(x,y,z) приходится делать просто в несколько этапов:
Cначала поворачиваешь систему так, чтобы эта ось попала на z, потом крутишь вокруг z, потом обратно возвращаешь. Получается что-то типа такого, если я не натупил с тригонометрией и знаками
\begin{gathered}
\mathbf{r'} = M_{xz}^T\left(\arccos\left(\frac {z} {\sqrt{x^2+y^2+z^2}} \right)\right)M_{xy}^T\left(-\arcsin\left(\frac {y} {\sqrt{x^2+y^2}} \right)\right)M_z (\alpha) \cdot \\
\cdot M_{xz}\left(\arccos\left(\frac {z}
{\sqrt{x^2+y^2+z^2}} \right)\right)M_{xy}\left(-\arcsin\left(\frac {y} {\sqrt{x^2+y^2}} \right)\right) \bf {r}
\end{gathered}
Ну или готовой формулой воспользоваться
M(\hat{\mathbf{v}},\theta) = \begin{pmatrix}
\cos \theta + (1 - \cos \theta) x^2
& (1 - \cos \theta) x y - (\sin \theta) z
& (1 - \cos \theta) x z + (\sin \theta) y
\\
(1 - \cos \theta) y x + (\sin \theta) z
& \cos \theta + (1 - \cos \theta) y^2
& (1 - \cos \theta) y z - (\sin \theta) x
\\
(1 - \cos \theta) z x - (\sin \theta) y
& (1 - \cos \theta) z y + (\sin \theta) x
& \cos \theta + (1 - \cos \theta) z^2
\end{pmatrix}
А другой вопрос, для z-matrix мне нужен двугранный угол. скажем, я знаю углы всех трех последовательных атомов и длины между любыми атомами. Могу я из этих данных восстановить двугранный угол 7-6-2-10?