【发布时间】:2011-12-25 20:20:25
【问题描述】:
我编写了一段代码来创建动画 (satellite movement around the Earth)。当我运行它时,它工作正常。但是,当它被修改为 Matlab GUI 中更复杂的代码的一部分时,结果会产生变化(主要是因为要绘制的点数更多)。我还注意到,如果我使用 OpenGL 渲染器,卫星的移动比使用其他渲染器(Painters 和 Zbuffer)时更快。我不知道是否有进一步的可能性来改进卫星运动的渲染。我认为关键可能是更改创建卫星实际位置的代码(handles.psat)及其沿时间的轨迹(handles.tray)
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
...
【问题讨论】: