void DashboardInstrument_Dial::Draw(wxGCDC* bdc) { wxColour c1; GetGlobalColor(_T("DASHB"), &c1); wxBrush b1(c1); bdc->SetBackground(b1); bdc->Clear(); wxSize size = GetClientSize(); m_cx = size.x / 2; int availableHeight = size.y - m_TitleHeight - 6; int width, height; bdc->GetTextExtent( _T("000"), &width, &height, 0, 0, g_pFontLabel ); m_cy = m_TitleHeight + 2; m_cy += availableHeight / 2; m_radius = availableHeight / 2; DrawLabels(bdc); DrawFrame(bdc); DrawMarkers(bdc); DrawBackground(bdc); DrawData(bdc, m_MainValue, m_MainValueUnit, m_MainValueFormat, m_MainValueOption); DrawData(bdc, m_ExtraValue, m_ExtraValueUnit, m_ExtraValueFormat, m_ExtraValueOption); DrawForeground(bdc); }
void CVisLabelVisualizer::DoProcessing() { Uint32 y; // Acquire buffers Uint32* inputImg = (Uint32*)m_iportImage.GetBuffer(); FastLabelObject * objLabels = (FastLabelObject*)m_iportLabelData.GetBuffer(); Uint32* outputImg = (Uint32*)m_oportResult.GetBuffer(); // Determine bounds Uint32 w_in, h_in; Uint32 w_out, h_out; m_iportImage.GetImageSize( w_in, h_in ); w_out = min( w_in/m_nScale, m_unResultWidth ); h_out = min( h_in/m_nScale, m_unResultHeight ); // Copy input image downscaled to the output image. We'll use a 2D to 1D DMA transfer // for this. for ( y=0; y< h_out; y++ ) { WaitCopy( StartCopy2D( COPY_2D1D, outputImg + y * m_unResultWidth , inputImg + y * w_in * m_nScale, 4, m_unResultWidth, 4 * m_nScale )); } // Draw labels DrawLabels( objLabels, outputImg ); }
void GraphicWidget::paintEvent(QPaintEvent *e) { QPainter painterWidget; w = this->width(); h = this->height(); for (std::vector<GraphData>::iterator it = GraphicsData.begin(); it != GraphicsData.end(); it++) { it->setWidthHeight(w, h); } painterWidget.begin(this); painterWidget.setPen(pen); painterWidget.setRenderHint(QPainter::HighQualityAntialiasing, true); for (std::vector<GraphData>::iterator it = GraphicsData.begin(); it != GraphicsData.end(); it++) { for (unsigned i = 0; i < it->numPoints() - 1; i++) { painterWidget.drawLine(int(it->getArg(i)), int(it->getVal(i)), int(it->getArg(i + 1)), int(it->getVal(i + 1))); } } DrawLabels(painterWidget); painterWidget.drawRect(0, 0, int(w - 0.001 * w), int(h - h * 0.001)); painterWidget.end(); }
void TacticsInstrument_AppTrueWindAngle::Draw(wxGCDC* bdc) { wxColour c1; GetGlobalColor(_T("DASHB"), &c1); wxBrush b1(c1); bdc->SetBackground(b1); bdc->Clear(); wxSize size = GetClientSize(); m_cx = size.x / 2; int availableHeight = size.y - m_TitleHeight - 6; int width, height; bdc->GetTextExtent(_T("000"), &width, &height, 0, 0, g_pFontLabel); m_cy = m_TitleHeight + 2; m_cy += availableHeight / 2; m_radius = availableHeight / 2.0 * 0.95; DrawLabels(bdc); DrawFrame(bdc); DrawMarkers(bdc); DrawBackground(bdc); DrawData(bdc, m_MainValueApp, m_MainValueAppUnit, m_MainValueFormat, m_MainValueOption1); DrawData(bdc, m_MainValueTrue, m_MainValueTrueUnit, m_MainValueFormat, m_MainValueOption2); DrawData(bdc, m_ExtraValueApp, m_ExtraValueAppUnit, m_ExtraValueFormat, m_ExtraValueOption1); DrawData(bdc, m_ExtraValueTrue, m_ExtraValueTrueUnit, m_ExtraValueFormat, m_ExtraValueOption2); DrawData(bdc, m_TWD, m_MainValueTrueUnit, _T("TWD:%.0f"), DIAL_POSITION_INSIDE); DrawForeground(bdc); }
// whole process of draw a figure. void Figure::Show() { Initialize(); IplImage *output = cvCreateImage(figure_size, IPL_DEPTH_8U, 3); cvSet(output, backgroud_color, 0); DrawAxis(output); DrawPlots(output); DrawLabels(output, figure_size.width - 100, 10); cvShowImage(figure_name.c_str(), output); cvWaitKey(1); cvReleaseImage(&output); }
void TOnePadDisplay::BookCanvas() { //Booking of labels, canvasand pad and setting the styles BookLabels(); //canvas fCanvas = new TCanvas(GetName(),GetTitle(),fCanTopX,fCanTopY,fCanWidth,fCanHeigth); fCanvas->Range(0,0,1,1); fCanvas->SetFillColor(fCanColor); fCanvas->SetBorderSize(fCanBsz); fCanvas->SetFillStyle(fCanStyle); DrawLabels(); //pad fPad = new TPad("OnePad","OnePad",fPadXlow,fPadYlow,fPadXup,fPadYup); fPad->SetFillColor(fPadColor); fPad->SetBorderSize(fPadBsz); fPad->SetGridx(); fPad->SetGridy(); fPad->SetFrameFillColor(fFrameColor); fPad->SetFillStyle(fPadStyle); fPad->SetLogx(fPadLogX); fPad->SetLogy(fPadLogY); //styles gStyle->SetOptStat(fStyleStat); gStyle->SetStatFont(fStyleFont); gStyle->SetStatColor(fStyleColor); gStyle->SetStatH(fStyleH); gStyle->SetTitleXSize(fStyleTXSize); gStyle->SetTitleXOffset(fStyleTXOffset); gStyle->SetTitleYSize(fStyleTYSize); gStyle->SetTitleYOffset(fStyleTYOffset); gStyle->SetTitleH(fStyleTitleH); gStyle->SetTitleW(fStyleTitleW); gStyle->SetTitleX(fStyleTitleX); gStyle->SetTitleY(fStyleTitleY); gStyle->SetTitleBorderSize(fStyleTBSize); gStyle->SetTitleFillColor(fStyleTFColor); gStyle->SetTitleW(fStyleW); gStyle->SetHistFillColor(fStyleHistColor); gStyle->SetTitleFont(fStyleTitleFont); gStyle->SetTitleColor(fStyleTitleColor); gStyle->SetTitleTextColor(fStyleTTextColor); gStyle->SetLabelSize(fStyleLabelSize,fStyleLabelAxis); fPad->Draw(); fPad->cd(); }
void TacticsInstrument_BearingCompass::Draw(wxGCDC* bdc) { wxColour c1; GetGlobalColor(_T("DASHB"), &c1); wxBrush b1(c1); bdc->SetBackground(b1); bdc->Clear(); wxSize size = GetClientSize(); m_cx = size.x / 2; int availableHeight = size.y - m_TitleHeight - 6; int width, height; bdc->GetTextExtent(_T("000"), &width, &height, 0, 0, g_pFontLabel); m_cy = m_TitleHeight + 2; m_cy += availableHeight / 2; m_radius = availableHeight / 2 *0.80; DrawLabels(bdc); DrawFrame(bdc); DrawMarkers(bdc); DrawBackground(bdc); if (!wxIsNaN(m_Bearing)){ DrawData(bdc, m_Bearing, m_BearingUnit, _T("BRG:%.f"), DIAL_POSITION_TOPLEFT); DrawData(bdc, 0, m_ToWpt, _T(""), DIAL_POSITION_TOPRIGHT); } if (!wxIsNaN(m_CurrSpeed)) DrawData(bdc, m_CurrSpeed, m_CurrSpeedUnit, _T("Curr:%.2f"), DIAL_POSITION_INSIDE); if (!wxIsNaN(m_ExtraValueDTW)) DrawData(bdc, m_ExtraValueDTW, m_ExtraValueDTWUnit, _T("DTW:%.1f"), DIAL_POSITION_BOTTOMLEFT); if (!wxIsNaN(m_CurrDir) && m_CurrDir >= 0 && m_CurrDir < 360) DrawCurrent(bdc); DrawForeground(bdc); DrawLaylines(bdc); if (!wxIsNaN(m_MainValue)) DrawData(bdc, m_MainValue, m_MainValueUnit, _T("%.0f"), DIAL_POSITION_TOPINSIDE); if (!wxIsNaN(m_predictedSog)) DrawData(bdc, m_predictedSog, getUsrSpeedUnit_Plugin(g_iDashSpeedUnit), _T("prd.SOG: ~%.1f"), DIAL_POSITION_BOTTOMRIGHT); }
void Draw(TCanvas *c1, const int &rebin=1, const bool &showErr=true) { gStyle->SetOptStat(0); c1->cd(); c1->Clear(); TPad *pad1; pad1 = new TPad("pad1","pad1",0,1-0.614609572,1,1); pad1->SetTopMargin(0.0983606557); pad1->SetBottomMargin(0.025); pad1->Draw(); pad1->cd(); RebinHists(rebin); THStack *hstack = GetStack(c1->GetLogy()); TH1F *signal = GetSignalHist(); TH1F *data = GetDataHist(); if(c1->GetLogy()) gPad->SetLogy(); hstack->GetHistogram()->SetLabelSize(0.00,"X"); hstack->GetHistogram()->SetLabelSize(0.06,"Y"); hstack->GetHistogram()->SetTitleSize(0.06,"XY"); hstack->Draw("hist"); if(signal && ! _stackSignal) signal->Draw("hist,same"); if(data) data->Draw("ep,same"); DrawLabels(); pad1->GetFrame()->DrawClone(); TH1F *summed = GetSummedMCHist(); TH1F *rdat = (TH1F*)data->Clone("rdat"); if(gROOT->FindObject("rref")) gROOT->FindObject("rref")->Delete(); TH1F *rref = new TH1F("rref","rref", summed->GetNbinsX(), summed->GetBinLowEdge(1), summed->GetBinLowEdge(summed->GetNbinsX()+1) ); for (int i = 1, n = rref->GetNbinsX(); i <= n+1; ++i) { rref->SetBinContent(i,summed->GetBinContent(i)); rref->SetBinError(i,summed->GetBinError(i)); } rref->SetTitle(""); rref->SetLineWidth(0); rref->SetFillColor(kGray+1); rref->SetFillStyle(1001); double absmax = 0; for (int i = 0, n = rdat->GetNbinsX(); i <= n+1; ++i) { double scale = rref->GetBinContent(i); if (scale == 0) { rdat->SetBinContent(i, 0); rref->SetBinContent(i, 10000); rdat->SetBinError(i, 0); rref->SetBinError(i, 0); } else { rdat->SetBinContent(i, rdat->GetBinContent(i)/scale); rref->SetBinContent(i, rref->GetBinContent(i)/scale); rdat->SetBinError(i, rdat->GetBinError(i)/scale); rref->SetBinError(i, rref->GetBinError(i)/scale); double mymax = TMath::Max(1.2*fabs(rdat->GetBinContent(i)-1)+1.4*rdat->GetBinError(i), 2.0*rref->GetBinError(i)); absmax = TMath::Max(mymax, absmax); } } c1->cd(); TPad *pad2 = new TPad("pad2","pad2",0,0,1,1-0.614609572); pad2->SetTopMargin(0.0261437908); pad2->SetBottomMargin(0.392156863); pad2->Draw(); pad2->cd(); TLine *line = new TLine(rref->GetXaxis()->GetXmin(), 1.0, rref->GetXaxis()->GetXmax(), 1.0); line->SetLineColor(kBlack); line->SetLineWidth(1); line->SetLineStyle(1); if(showErr) { rref->GetYaxis()->SetRangeUser(TMath::Max(-1.,1.-absmax), TMath::Min(3.,absmax+1.)); AxisFonts(rref->GetXaxis(), "x", hstack->GetXaxis()->GetTitle()); rref->GetYaxis()->SetTitle("data/mc"); rref->GetYaxis()->SetLabelSize(0.10); rref->GetYaxis()->SetTitleSize(0.10); rref->GetYaxis()->SetTitleOffset(0.85); rref->GetXaxis()->SetLabelSize(0.10); rref->GetXaxis()->SetTitleSize(0.10); rref->GetXaxis()->SetTitleOffset(1.5); rref->Draw("E2"); rdat->SetMarkerStyle(20); rdat->Draw("E SAME p"); line->Draw("SAME"); c1->Update(); pad2->GetFrame()->DrawClone(); } else { rdat->GetYaxis()->SetRangeUser(TMath::Max(-1.,1.-absmax), TMath::Min(3.,absmax+1.)); rdat->GetYaxis()->SetTitle("data/mc"); rdat->GetYaxis()->SetLabelSize(0.10); rdat->GetYaxis()->SetTitleSize(0.10); rdat->GetYaxis()->SetTitleOffset(0.85); AxisFonts(rdat->GetXaxis(), "x", hstack->GetXaxis()->GetTitle()); rdat->GetXaxis()->SetLabelSize(0.10); rdat->GetXaxis()->SetTitleSize(0.10); rdat->GetXaxis()->SetTitleOffset(1.5); rdat->SetTitle(""); rdat->SetMarkerStyle(20); rdat->Draw("E p"); line->Draw("SAME"); c1->Update(); pad2->GetFrame()->DrawClone(); } }