Я работаю на Galaxy Explorer, используя SceneKit. У меня есть математический вопрос, который я не могу понять.
На изображении выше, узел cameraNode завис над объектом NGC 5824, глядя прямовниз в плоскость изображения. Мне нужно рассчитать новую позицию для cameraNode, чтобы смотреть прямо на объект, на который указывает красная стрелка.
В основном, cameraNode имеет текущую позицию и поворот. Я не хочу, чтобы вращение менялось, но я хочу изменить положение, чтобы камера находилась над новым объектом.
Проблема тривиальна, если камера смотрит прямо вниз по оси z. Я просто установил x, y позицию cameraNode в x, y позицию нового целевого узла. Однако, если у камеры есть существующее вращение по оси z (как на изображении), то решение является более сложным.
Это должно быть полупростое преобразование, но я не могу обернуть его вокруг. Кто-нибудь может дать необходимую подсказку?