【发布时间】:2021-02-05 18:47:34
【问题描述】:
我正在尝试可视化坐标系从固定世界框架到旋转身体框架的旋转。我使用 DCM 旋转了框架,现在我尝试将新框架(即 3 个正交矢量)从初始框架移动到其旋转方向。
我想使用 quiver3,但在绘制下一个 quiver 之前,我无法让前一个 quiver 将自己从绘图中删除。结果是一排箭头缓慢地改变大小并转动,直到它们到达最终方向。
我怀疑这是暂停/暂停的问题,虽然我不知道。
如果有人能帮我制作一个矢量在空间中从初始位置旋转到最终方向的流畅动画,我将不胜感激。
谢谢!
clear all;
k = [0; 0; 1;];
j = [0; 1; 0;];
i = [1; 0; 0;];
starts = zeros(3,3);
ends = [i j k];
t = linspace(0,1,100);
yaw = pi/4;
pitch = pi/4;
roll = pi/4;
quiver3(starts(1,:), starts(2,:), starts(3,:), ends(1,:), ends(2,:), ends(3,:))
hold on;
for k = 1:length(t)
hold on;
yawDCM = [cos(yaw*t(k)) sin(yaw*t(k)) 0; -sin(yaw*t(k)) cos(yaw*t(k)) 0; 0 0 1*t(k)];
pitchDCM = [cos(pitch*t(k)) 0 -sin(pitch*t(k)); 0 1*t(k) 0; sin(pitch*t(k)) 0 cos(pitch*t(k));];
rollDCM = [1*t(k) 0 0; 0 cos(roll*t(k)) sin(roll*t(k)); 0 -sin(roll*t(k)) cos(roll*t(k));];
Q = yawDCM*pitchDCM*rollDCM;
ends2 = Q*ends;
% hold on;
% plot3(ends2(1,1), ends2(1,2), ends2(1,3), '--');
% plot3(ends2(2,1), ends2(2,2), ends2(2,3), '--');
% plot3(ends2(3,1), ends2(3,2), ends2(3,3), '--');
% pause(.01);
% hold off;
quiver3(starts(:,1), starts(:,2), starts(:,3), ends2(:,1), ends2(:,2), ends2(:,3), 0);
pause(.1);
hold off
end
axis equal
【问题讨论】:
-
欢迎来到本站!
标签: matlab vector graphics matlab-figure