Чтобы ответить на чуть более общий вопрос, который ставит ваш комментарий к Немо, я предполагаю, что у вас есть глобальные точки A и O и что у вас есть единичный вектор N и угол Φ и вы хотите B .Вот как я это сделаю.Сначала найдите проекцию OA на N (привязанную к O ).Затем найдите O ', это точка, вокруг которой вы будете вращаться.Затем используйте уравнения, данные Джеком V:
O' = O + dotP((A-O),N)N
B = O' + cos(Φ)(A-O') + sin(Φ)crossP(N,A-O')
, где dotP и crossP являются точечными и перекрестными произведениями.