void Statistics::RenderBarograph(HDC hdc, RECT rc) { ResetScale(); ScaleXFromData(rc, &flightstats.Altitude); ScaleYFromData(rc, &flightstats.Altitude); ScaleXFromData(rc, &flightstats.Altitude_Base); ScaleYFromData(rc, &flightstats.Altitude_Base); ScaleXFromData(rc, &flightstats.Altitude_Ceiling); ScaleYFromData(rc, &flightstats.Altitude_Ceiling); DrawXGrid(hdc, rc, 0.25, flightstats.Altitude.x_min, STYLE_THINDASHPAPER); DrawYGrid(hdc, rc, 1000/ALTITUDEMODIFY, 0, STYLE_THINDASHPAPER); DrawLineGraph(hdc, rc, &flightstats.Altitude, STYLE_MEDIUMBLACK); LockTaskData(); for(int j=0;j<MAXTASKPOINTS;j++) { if (ValidTaskPoint(j) && (LegStartTime[j]>=0)) { double xx = (LegStartTime[j]-Calculated->TakeOffTime)/3600; if (xx>=0) { DrawLine(hdc, rc, xx, flightstats.Altitude.y_min, xx, flightstats.Altitude.y_max, STYLE_THINDASHPAPER); } } } UnlockTaskData(); DrawTrend(hdc, rc, &flightstats.Altitude_Base, STYLE_BLUETHIN); DrawTrend(hdc, rc, &flightstats.Altitude_Ceiling, STYLE_BLUETHIN); DrawXLabel(hdc, rc, TEXT("t")); DrawYLabel(hdc, rc, TEXT("h")); }
void Statistics::RenderSpeed(LKSurface& Surface, const RECT& rc) { if ((flightstats.Task_Speed.sum_n<2) || !ValidTaskPoint(ActiveTaskPoint)) { DrawNoData(Surface, rc); return; } ResetScale(); ScaleXFromData(rc, &flightstats.Task_Speed); ScaleYFromData(rc, &flightstats.Task_Speed); ScaleYFromValue(rc, 0); ScaleXFromValue(rc, flightstats.Task_Speed.x_min+1.0); // in case no data ScaleXFromValue(rc, flightstats.Task_Speed.x_min); for(int j=1;j<MAXTASKPOINTS;j++) { if (ValidTaskPoint(j) && (flightstats.LegStartTime[j]>=0)) { double xx = (flightstats.LegStartTime[j]-CALCULATED_INFO.TaskStartTime)/3600.0; if (xx>=0) { DrawLine(Surface, rc, xx, y_min, xx, y_max, STYLE_REDTHICK); } } } DrawXGrid(Surface, rc, 0.5, flightstats.Task_Speed.x_min, STYLE_THINDASHPAPER, 0.5, true); /* DrawYGrid(hdc, rc, 10/TASKSPEEDMODIFY, 0, STYLE_THINDASHPAPER, 10, true);*/ if(Units::GetUserHorizontalSpeedUnit() == unStatuteMilesPerHour) { DrawYGrid(Surface, rc, 5.0/TASKSPEEDMODIFY, 0, STYLE_THINDASHPAPER, 5.0, true); } else { DrawYGrid(Surface, rc, 10/TASKSPEEDMODIFY, 0, STYLE_THINDASHPAPER, 10, true); } DrawLineGraph(Surface, rc, &flightstats.Task_Speed,STYLE_MEDIUMBLACK); DrawTrend(Surface, rc, &flightstats.Task_Speed, STYLE_BLUETHIN); if(INVERTCOLORS || IsDithered()) Surface.SetTextColor(RGB_DARKGREEN); else Surface.SetTextColor(RGB_GREEN); Surface.SetBackgroundOpaque(); TCHAR text[80]; DrawXLabel(Surface, rc, TEXT(" t/h ")); _stprintf(text,TEXT(" v/%s "),Units::GetHorizontalSpeedName()); DrawYLabel(Surface, rc, text); // DrawXLabel(hdc, rc, TEXT("t")); // DrawYLabel(hdc, rc, TEXT("V")); }