我正在尝试使用Matlabdrawow函数和线图为运动文件制作动画。运动文件具有 3x3 欧拉角(yaw-pitch-roll)和 XYZ 坐标值,我计划使用线条绘图来创建简笔画动画,其中每个身体段都被动画为简笔画。
目前我的代码是:
%% Import data from text file.
%% Perform Calculations on data
%% Draw initial figure
figure(1)
hold on
set(gcf,'Renderer','OpenGL')
lua = plot(luaX(1),luaY(1),luaZ(1),0,'o','MarkerSize',10,'MarkerFaceColor','b');
set(lua,'EraseMode','normal');
rua = plot(ruaX(1),ruaY(1),ruaZ(1),0,'o','MarkerSize',10,'MarkerFaceColor','r');
set(rua,'EraseMode','normal');
%% Animate the rest
i = 1;
while i <= length(time)
% Delete previous line
if i > 1
delete(l_lua);
delete(l_rua);
end
% Set data and draw line
set(lua,'XData',luaX(i));
set(lua,'YData',luaY(i));
set(lua,'ZData',luaZ(i));
l_lua = line([-200 luaX(i)],[0 luaY(i)],[0 luaZ(i)],'LineWidth',2,'EraseMode','normal');
set(rua,'XData',ruaX(i));
set(rua,'YData',ruaY(i));
set(rua,'ZData',ruaZ(i));
l_rua = line([200 ruaX(i)],[0 ruaY(i)],[0 ruaZ(i)],'LineWidth',2,'EraseMode','normal');
drawnow;
% Draw Figure
grid on
axis([-1000 1000 -1000 1000 -1000 1000]);
xlabel('X Axis');
ylabel('Y Axis');
zlabel('Z Axis');
i = i + 1;
end
上面的代码仅包含直线的 X、Y 和 Z 值,但不包含使用欧拉角的方向。
如何将 3x3 欧拉角添加到正在绘制的线?我想将坐标和欧拉角值添加到线图中。我是否将欧拉角转换为旋转矩阵并创建一个 4x4 矩阵(带有 XYZ 值)并用它绘制?任何输入都会有所帮助。
我的目标是使用上述方法创建一个用动画线条表示的简笔画,但我不介意尝试其他方法。还有其他更有效的方法来创建和动画一个简笔画吗?
感谢所有贡献的人。