В этом примере показано, как визуализировать траектории рейса в окне UI Figure с помощью компонентов рейса. В этом примере вы создадите и сконфигурируете стандартные полетные приборы в сочетании с объектом Aero.Animation.
Загрузите записанное положение, положение и время самолета в рабочую область.
load simdata
Чтобы отобразить траектории рейса, сохраненные в данных траектории рейса, создайте объект Aero.Animation. Самолетом, используемым в этом примере, является Piper PA24-250 Comanche.
h = Aero.Animation; h.createBody('pa24-250_orange.ac','Ac3d'); h.Bodies{1}.TimeSeriesSource = simdata; h.Camera.PositionFcn = @staticCameraPosition; h.Figure.Position(1) = h.Figure.Position(1) + 572/2; h.show();
Создайте окно UI Figure, содержащее полетные приборы.
fig = uifigure('Name','Flight Instruments',... 'Position',[h.Figure.Position(1)-572 h.Figure.Position(2)+h.Figure.Position(4)-502 572 502],... 'Color',[0.2667 0.2706 0.2784],'Resize','off');
Загрузите изображение панели в ось:
imgPanel = imread('astFlightInstrumentPanel.png'); ax = uiaxes('Parent',fig,'Visible','off','Position',[10 30 530 460],... 'BackgroundColor',[0.2667 0.2706 0.2784]); image(ax,imgPanel); disableDefaultInteractivity(ax);
Создайте стандартные полетные приборы для навигации:
Создайте высотомер:
alt = uiaeroaltimeter('Parent',fig,'Position',[369 299 144 144]);
Создайте индикатор заголовка:
head = uiaeroheading('Parent',fig,'Position',[212 104 144 144]);
Создайте индикатор воздушной скорости:
air = uiaeroairspeed('Parent',fig,'Position',[56 299 144 144]);
Измените пределы индикатора воздушной скорости в соответствии с возможностями Piper PA 24-250 Comanche:
air.Limits = [20 200]; air.ScaleColorLimits = [0 50;40 160;160 190;190 200];
Создайте искусственный горизонт:
hor = uiaerohorizon('Parent',fig,'Position',[212 299 144 144]);
Создайте индикатор скорости подъема:
climb = uiaeroclimb('Parent',fig,'Position',[369 104 144 144]);
Измените максимальный темп набора высоты индикатора набора высоты в зависимости от возможностей самолета:
climb.MaximumRate = 4000;
Создайте координатора поворота:
turn = uiaeroturn('Parent',fig,'Position',[56 104 144 144]);
Чтобы обновить инструменты рейса и рисунка анимации, назначьте ValueChangingFcn
коллбэк в astHelperFlightInstrumentsAnimation
вспомогательная функция. Затем, когда время выбрано на ползунке, рейсы инструменты и рисунок анимации будут обновлены в соответствии с выбранным значением времени.
sl = uislider('Parent',fig,'Limits',[simdata(1,1) simdata(end,1)],'FontColor','white'); sl.Position = [50 60 450 3]; sl.ValueChangingFcn = @(sl,event) astHelperFlightInstrumentsAnimation(fig,simdata,h,event);
Чтобы отобразить время, выбранное в ползунке, создайте компонент метки.
lbl = uilabel('Parent',fig,'Text',['Time: ' num2str(sl.Value,4) ' sec'],'FontColor','white'); lbl.Position = [230 10 90 30];