Example #1
0
// Convert units in tends of a millimetre to device units
int wxRichTextStyleListBox::ConvertTenthsMMToPixels(wxDC& dc, int units) const
{
    int ppi = dc.GetPPI().x;

    // There are ppi pixels in 254.1 "1/10 mm"

    double pixels = ((double) units * (double)ppi) / 254.1;

    return (int) pixels;
}
Example #2
0
double wxGISMapView::GetScaleRatio(OGREnvelope& Bounds, wxDC& dc)
{
	wxCHECK(m_pGISDisplay, 0);

	wxRect rc = m_pGISDisplay->GetDeviceFrame();
	wxSize ppi = dc.GetPPI();
	double screen_w = (double)rc.GetWidth() / ppi.GetWidth() * UNITS_IN_INCH;
	double screen_h = (double)rc.GetHeight() / ppi.GetHeight() * UNITS_IN_INCH;
	double w_w = fabs(Bounds.MaxX - Bounds.MinX);
	double w_h = fabs(Bounds.MaxY - Bounds.MinY);

	if(m_SpatialReference && m_SpatialReference->IsGeographic())
	{
		w_w = w_w * PIDEG * m_SpatialReference->GetSemiMajor();
		w_h = w_h * PIDEG * m_SpatialReference->GetSemiMinor();
	}

	double screen = std::min(screen_w, screen_h);
	double world = std::min(w_w, w_h);

	return (world * 100) / screen;
}
void RawDataVisualizeFrame::DrawIndividualRawDensityPlot(wxDC& dc){

  //PrepareDC(dc);
  
  //SetUpDC(dc);
 
  int w,h;
  dc.GetSize(&w, &h);

    
  /* labeledplotAxes myAxes(wxPoint(80,80),
     wxPoint(w-30*5,h-30*5),
     wxRealPoint(0.0,1000.0),
     wxRealPoint(50.0,4000.0),
     true);
  */
  
  int min_x = min((int)(pltarea_min_x*(double)w),(int)(160*(double)(dc.GetPPI().x)/(double)72));
  int min_y = min((int)(pltarea_min_y*(double)h),(int)(165*(double)(dc.GetPPI().x)/(double)72));
  int max_x = max((int)((pltarea_max_x-pltarea_min_x)*(double)w),(int)(w - 100*(double)(dc.GetPPI().x)/(double)72 - min_x));
  int max_y = max((int)((pltarea_max_y-pltarea_min_y)*(double)h),(int)(h-160*(double)(dc.GetPPI().x)/(double)72 - min_y));


  labeledplotAxes myAxes(dc, wxPoint(min_x,min_y),
			 wxPoint(max_x,max_y),
			 wxRealPoint(3.0,0.0),
			 wxRealPoint(15.5,1.0),
			 true);
  
  dc.Clear(); 
  myAxes.setBackgroundColor(*wxWHITE_BRUSH);
  myAxes.setupDCforPlot(dc);
  

  // myAxes.addGrid(2, 0.2);

  wxArrayDouble xtickpoints;
  wxArrayDouble ytickpoints;

  int i,j;

  wxArrayString x_tick_labels;
  wxArrayString y_tick_labels;

  for (i=3; i <= 15; i++){
    xtickpoints.Add((double)i); 
    x_tick_labels.Add(wxString::Format(_T("%d"), i));
  }
  
  for (i =0; i <= 10; i++){
    ytickpoints.Add((double)i/10.0); 
    y_tick_labels.Add(wxString::Format(_T("%.2f"), i/10.0));
  }

  myAxes.setTickLocationX(xtickpoints);
  myAxes.setTickLocationY(ytickpoints);

  myAxes.setTickLabelsX(x_tick_labels);
  myAxes.setTickLabelsY(y_tick_labels);


  wxString x_label = wxT("log2 PM");
  wxString y_label = wxT("Density");

  myAxes.setAxisLabelX(x_label);
  myAxes.setAxisLabelY(y_label);
  
  myAxes.setTitle(MyRawData->GetArrayNames()[whichdensity]);

  wxPoint xsq[512];
  
  j = whichdensity;
  for (i =0; i < 512; i++){
    xsq[i] = myAxes.FindPoint(wxRealPoint((*DensityPlotStatistics_x)[j*512 + i], (*DensityPlotStatistics_y)[j*512 + i]));
  }
  dc.DrawSpline(WXSIZEOF(xsq),xsq);
  
  

  dc.DestroyClippingRegion();
  myAxes.Draw(dc);

  


}
Example #4
0
int SurfaceImpl::LogPixelsY() {
    return hdc->GetPPI().y;
}
void RawDataVisualizeFrame::DrawRawBoxplot(wxDC &dc){

  int i,j;

  int w,h;
  dc.GetSize(&w, &h);

  int min_x = min((int)(pltarea_min_x*(double)w),(int)(160*(double)(dc.GetPPI().x)/(double)72));
  int min_y = min((int)(pltarea_min_y*(double)h),(int)(165*(double)(dc.GetPPI().x)/(double)72));
  int max_x = max((int)((pltarea_max_x-pltarea_min_x)*(double)w),(int)(w - 100*(double)(dc.GetPPI().x)/(double)72 - min_x));
  int max_y = max((int)((pltarea_max_y-pltarea_min_y)*(double)h),(int)(h-160*(double)(dc.GetPPI().x)/(double)72 - min_y));
   



  labeledplotAxes myAxes(dc,wxPoint(min_x,min_y),
			 wxPoint(max_x,max_y),
			 wxRealPoint(0.5,3.5),
			 wxRealPoint((double)MyRawData->count_arrays()+ 0.5 ,15.5),
			 true,
			 wxPoint(0,0),true,10);
  //dc.SetClippingRegion(80,30*5-80 ,w-30*5,h-30*5);  
  //dc.SetBackground(*wxGREY_BRUSH);
  //dc.Clear();

  //SetUpDC(dc); 




  
  //dc.Clear();
  myAxes.setupDCforPlot(dc);


  wxArrayDouble xtickpoints;
  wxArrayDouble ytickpoints;
  wxArrayString x_tick_labels;
  wxArrayString y_tick_labels;

  wxString temp;

  

  for (i =1; i <= MyRawData->count_arrays();i++){
    xtickpoints.Add((double)i);
    wxString mynewstring = wxString::Format(_T("%d"), i);
    x_tick_labels.Add(mynewstring); 
  }

  x_tick_labels = MyRawData->GetArrayNames();

  // Strip the ".CEL" from the labels 
  for (i =0; i < MyRawData->count_arrays();i++){
    temp = wxString(x_tick_labels[i]);
    x_tick_labels[i] = temp.Remove(temp.Len() - 4);

  }

  for (i=2; i <= 15; i++){
    ytickpoints.Add((double)i); 
    y_tick_labels.Add(wxString::Format(_T("%d"), i));
  }
  
  myAxes.setTickLocationX(xtickpoints);
  myAxes.setTickLocationY(ytickpoints);

  myAxes.setTickLabelsX(x_tick_labels);
  myAxes.setTickLabelsY(y_tick_labels);

  myAxes.setTickLabelsPerpendicular(true);


  wxString x_label = wxT("");
  wxString y_label = wxT("log2 PM");

  myAxes.setAxisLabelX(x_label);
  myAxes.setAxisLabelY(y_label);


  
  myAxes.setTitle(wxT("log2 PM by array for raw data"));
 




  wxColor tempColor = wxColor(100,100,255);

  for (j =0; j < MyRawData->count_arrays();j++){


    Draw_Single_Boxplot(dc,
			myAxes.FindPoint(wxRealPoint(1.0,max(log((*BoxplotStatistics)[j*5 + 0])/log(2.0),3.5))).y,
			myAxes.FindPoint(wxRealPoint(1.0,log((*BoxplotStatistics)[j*5 + 1])/log(2.0))).y,
			myAxes.FindPoint(wxRealPoint(1.0,log((*BoxplotStatistics)[j*5 + 2])/log(2.0))).y,
			myAxes.FindPoint(wxRealPoint(1.0,log((*BoxplotStatistics)[j*5 + 3])/log(2.0))).y,
			myAxes.FindPoint(wxRealPoint(1.0,min(log((*BoxplotStatistics)[j*5 + 4])/log(2.0),15.5))).y,
			myAxes.FindPoint(wxRealPoint((double)(j+1),0)).x,
			myAxes.FindPoint(wxRealPoint(3.4,0)).x - myAxes.FindPoint(wxRealPoint(2.6,0)).x,&tempColor);
  }


  


  dc.DestroyClippingRegion();
  myAxes.Draw(dc);
	
  

}