http://forum.boolean.name/showthread.php?t=17727
Продублирую данную тему в этом разделе, так как, видимо, в разделе Blitz3D я уже ничего не добьюсь. Повторюсь: у меня есть хлопушка, наклонённая под некоторым углом по осям X и Z, необходимо, чтобы она стреляла туда, куда направлена. Кто разбирается, подскажите, правильно ли я расчитывал, чтобы уже точно определить местонахождение проблемы: в моих расчётах или в Blitz-е.
Исходник приклеивать, думаю, нет смысла, так как спрашиваю исключительно геометрию.
OD - вектор скорости и, соответственно, направление хлопушки
AC = OB - проекции вектора OD на ось Z
OA = BC - проекции вектора OD на ось X
DC - проекция вектора OD на ось Y
∠DBC соответствует повороту хлопушки вокруг оси Z
∠DAC соответствует повороту хлопушки вокруг оси X
Как я решал(подскажите, что не так, потому что я, вероятно, где-то ошибся):
AC ⊥ OA, AC - проекция AD ⇒ AD ⊥ OA(по теореме о 3-х перпендикулярах)
BC ⊥ OB, BC - проекция BD ⇒ BD ⊥ OB(по теореме о 3-х перпендикулярах)
AD² = AC² + CD²
OD² = AD² + OA²
1) OD² = AC² + CD² + OA²
Получилось что-то вроде всем известного уравнения длины вектора в пространстве, заданной проекциями:
v² = x² + y² + z²
Далее:
AD² = AC² + CD²
AC = AD * Cos∠DAC
2) AC² = (AC² + CD²) * Cos²∠DAC
Аналогично:
BD² = BC² + CD²
BC = BD * Cos∠DBC
3) BC² = (BC² + CD²) * Cos²∠DBC
Вот мы получили систему уравнений, выделенных красным цветом. Далее следует очень нудная подстановка, в которой явно никто не захочет разбираться. Вопрос, повторяюсь, состоит в том, правильно ли я выводил формулы, и эти ли формулы необходимы для описания выстрела хлопушки? Просто пока ничего нормально не работает... Если нужно, я всё-таки могу написать, как вычислять отсюда проекции...