OpenGL Переместить объект, чтобы следовать за вращающимся объектом

Я работаю над проектом строительства в OpenGL, и у меня есть один объект (объект A), который представляет собой экскаватор, который имеет другой объект (объект B), который является совком / ковшом, связанным с ним. Объект A вращается вокруг оси Y, которая выполняет предназначенную функцию для поднятия руки, и мне нужно, чтобы Объект B всегда был расположен на конце Объекта A.

Любая помощь о том, как это сделать?

Я создал и повернул объект:

rcontext.PushModelMatrix ();

rcontext.Translate (Arms-> GetTranslation () [0], Arms-> GetTranslation () [1], Arms-> GetTranslation () [2]);

rcontext.RotateX (-arms * 100);

Оборотом оружия> Draw (rcontext);

rcontext.PopModelMatrix ();

И теперь мне нужно заставить ведро следить за движением этой руки. Сам объект имеет плавающее число вершинных данных *, которое может быть полезным, но я не верю, что у каждого объекта есть своя собственная матрица, скорее, у меня есть матрицы проекций представления модели для мира. Я нахожу странным, что я изо всех сил пытался найти ресурсы на это, поскольку это должно быть довольно распространенное использование.

1 ответ

Выразите преобразование M_bucket из ведра как преобразование из преобразования M_boom из стрелы. Затем, чтобы получить мировое положение ковша, вы должны умножить матрицы:

M_bucket, мир = M_bucket, бум * M_boom, мир

Другие вопросы по тегам