我寫了一個代碼來創建動畫(satellite movement around the Earth)。當我運行它時,它工作正常。然而,當它被修改爲Matlab GUI中更復雜的代碼的一部分時,結果產生變化(主要是因爲要繪製更多的點)。我也注意到,如果使用OpenGL渲染器,衛星的移動比使用其他渲染器(Painters和Zbuffer)時更快。我不知道是否有進一步的可能性來改善衛星運動的呈現。我認爲關鍵是,也許,更改創建衛星(handles.psat)的實際位置的代碼和它的軌跡沿着時間(handles.tray)在Matlab中改進動畫渲染
handles.tray = zeros(1,Fin);
handles.psat = line('parent',ah4,'XData',Y(1,1), 'YData',Y(1,2),...
'ZData',Y(1,3),'Marker','o', 'MarkerSize',10,'MarkerFaceColor','b');
...
while (k<Fin)
az = az + 0.01745329252;
set(hgrot,'Matrix',makehgtform('zrotate',az));
handles.tray(k) = line([Y(k-1,1) Y(k,1)],[Y(k-1,2) Y(k,2)],...
[Y(k-1,3) Y(k,3)],...
'Color','red','LineWidth',3);
set(handles.psat,'XData',Y(k,1),'YData',Y(k,2),'ZData',Y(k,3));
pause(0.02);
k = k + 1;
if (state == 1)
state = 0;
break;
end
end
...