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, мир