Three.js - Как повернуть объект, чтобы посмотреть на одну точку и ориентироваться на другую
Я новичок в Three.js и 3D программировании в целом, так что это может показаться очень простым вопросом. В идеале, я надеюсь, что ответ поможет мне понять основные принципы.
У меня есть объект, который нужноточка» в другой точке (в данном случае, для простоты), что можно легко сделать с помощьюObject3D.lookAt(point)
функция. Это хорошо указывает на ось Z объекта.
Я также хочу повернуть мой объект, называемыйlooker
вокруг своей оси Z, так что его ось X в целом указывает на другой объект,refObj
, Я знаю, что ось X можетт указывают прямо наrefObj
если этот объект не произойдет, сформируйте прямой угол с началом координат. Я хочу ось Xlooker
лежать на плоскости, созданной,origin
refObj
а такжеlooker
, как показано ниже:
Казалось бы, самый простой способ сделать вращение - это изменитьlooker.rotation.z
но я нене знаю, как рассчитать, какое значение должно быть.
В общем хотелось бы расширенную версиюlookAt
функция, которая принимает вторую координату, на которую будет ориентирована ось X. Что-то вроде этого:
function lookAtAndOrient(objectToAdjust, pointToLookAt, pointToOrientXTowards)
{
// First we look at the pointToLookAt
objectToAdjust.lookAt(pointToLookAt);
// Then we rotate the object
objectToAdjust.rotation.z = ??;
}