0

我正在尝试使用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 值)并用它绘制?任何输入都会有所帮助。

我的目标是使用上述方法创建一个用动画线条表示的简笔画,但我不介意尝试其他方法。还有其他更有效的方法来创建和动画一个简笔画吗?

感谢所有贡献的人。

4

0 回答 0