Я пытаюсь загрузить файл STL в MATLAB и иметь возможность манипулировать им, но не могу найти лучший способ сделать это.
Что я пытаюсь сделать, это импортировать файл STL изручной инструмент и сможете вращать трехмерное изображение, задавая ему углы поворота, тангажа и рыскания.Вся система будет включать в себя прямое считывание из IMU, который вычисляет эти углы (собирается использовать 9-осевой IMU - 9250 и надеется включить космическое движение в это, но это прогресс для другого дня), который будет влиять на функцию, которая изменяетОриентация модели из STL показывает в реальном времени, как движется тело.Важно отметить, что тело зафиксировано, поэтому никакие точки не могут двигаться относительно друг друга (что упрощает задачу).
В настоящее время я не продвинулся далеко, но смоделировал STL, фиксированный в пространстве:
model = createpde(3);
importGeometry(model,'Test_model.stl');
pdegplot(model);
Это построит файл STL.Модель состоит из определенного числа граней и вершин, которые можно построить, но я не вижу способа манипулировать ими.Я полагаю, что должен быть какой-то способ преобразовать это в трехмерную матрицу точек в x, y, z, которую я могу умножить на вектор вращения, чтобы дать новую позицию, повернутую на три угла.
Rx = rotx(psi);
Ry = roty(theta);
Rz = rotz(phi);
R = Rx*Ry*Rz;
Затем умножьте модель на это и обновите график.
Мне также понадобится способ смещения всех точек на определенные значения, чтобы иметь возможность изменять точку поворота (где находится IMU).Я полагаю, что как только я получу координаты в матрице, я могу сместить их все на определенные значения в каждом направлении x, y и z.
Может кто-нибудь помочь с этим, я искал похожие проекты, но у меня естьпока не смог найти ничего с хорошим объяснением кода.То, как я предлагаю, - это только моя идея. Если есть более простой метод, скажите, пожалуйста.Спасибо!