本文整理汇总了C++中wxDC::DrawCircle方法的典型用法代码示例。如果您正苦于以下问题:C++ wxDC::DrawCircle方法的具体用法?C++ wxDC::DrawCircle怎么用?C++ wxDC::DrawCircle使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类wxDC
的用法示例。
在下文中一共展示了wxDC::DrawCircle方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DrawStone
// Draw the stone type of colour in cell (x, y) using the provided device context
void SimpleGoPanel::DrawStone(wxDC& dc, int x, int y, int colour)
{ if(colour==EMPTY)
{ dc.SetBrush(*wxWHITE_BRUSH);
dc.SetPen(*wxWHITE_PEN);
dc.DrawRectangle(16*x-8, 16*y-8, 8, 8);
dc.DrawRectangle(16*x-8, 16*y+1, 8, 7);
dc.DrawRectangle(16*x+1, 16*y-8, 7, 8);
dc.DrawRectangle(16*x+1, 16*y+1, 7, 7);
if(x==1)
dc.DrawLine(16*x-8, 16*y, 16*x, 16*y);
else if(x==boardsize)
dc.DrawLine(16*x+1, 16*y, 16*x+8, 16*y);
if(y==1)
dc.DrawLine(16*x, 16*y-8, 16*x, 16*y);
else if(y==boardsize)
dc.DrawLine(16*x, 16*y+1, 16*x, 16*y+8);
dc.SetPen(*wxBLACK_PEN);
dc.DrawLine(16*x-(x>1?8:0),16*y,16*x+(x<boardsize?8:1),16*y);
dc.DrawLine(16*x,16*y-(y>1?8:0),16*x,16*y+(y<boardsize?8:1));
dc.SetBrush(*wxBLACK_BRUSH);
if((boardsize==7&&(x==3||x==boardsize-2)&&(y==3||y==boardsize-2))
||(boardsize>7&&boardsize<13&&(x==3||x==boardsize-2||2*x==boardsize+1)&&(y==3||y==boardsize-2||2*y==boardsize+1))
||(boardsize>=13&&(x==4||x==boardsize-3||2*x==boardsize+1)&&(y==4||y==boardsize-3||2*y==boardsize+1)))
dc.DrawRectangle(16*x-1, 16*y-1, 3, 3);
}
else if(colour==BLACK)
{ dc.SetPen(*wxBLACK_PEN);
dc.DrawLine(16*x-(x>1?8:0),16*y,16*x+(x<boardsize?8:0),16*y);
dc.DrawLine(16*x,16*y-(y>1?8:1),16*x,16*y+(y<boardsize?8:1));
dc.SetBrush(*wxBLACK_BRUSH);
dc.DrawCircle(wxPoint(16*x,16*y), 7);
}
else if(colour==WHITE)
{ dc.SetBrush(*wxWHITE_BRUSH);
dc.SetPen(*wxBLACK_PEN);
dc.DrawLine(16*x-(x>1?8:0),16*y,16*x-(x>1?7:0),16*y);
dc.DrawLine(16*x,16*y-(y>1?8:0),16*x,16*y-(y>1?7:0));
dc.DrawCircle(wxPoint(16*x,16*y), 7);
}
else if(colour==AREA(BLACK))
{ dc.SetPen(*wxBLACK_PEN);
dc.SetBrush(*wxBLACK_BRUSH);
dc.DrawCircle(wxPoint(16*x,16*y), 3);
}
else if(colour==AREA(WHITE))
{ dc.SetBrush(*wxWHITE_BRUSH);
dc.SetPen(*wxBLACK_PEN);
dc.DrawCircle(wxPoint(16*x,16*y), 3);
}
}
示例2: BenchmarkCircles
void BenchmarkCircles(const wxString& msg, wxDC& dc)
{
if ( !opts.testCircles )
return;
if ( opts.mapMode != 0 )
dc.SetMapMode((wxMappingMode)opts.mapMode);
if ( opts.penWidth != 0 )
dc.SetPen(wxPen(*wxWHITE, opts.penWidth));
dc.SetBrush( *wxGREEN_BRUSH );
wxPrintf("Benchmarking %s: ", msg);
fflush(stdout);
wxStopWatch sw;
for ( long n = 0; n < opts.numIters; n++ )
{
int x = rand() % opts.width,
y = rand() % opts.height;
dc.DrawCircle(x, y, 32);
}
const long t = sw.Time();
wxPrintf("%ld circles done in %ldms = %gus/circle\n",
opts.numIters, t, (1000. * t)/opts.numIters);
}
示例3: _Edit_Shape_Draw_Point
void CWKSP_Shapes::_Edit_Shape_Draw_Point(wxDC &dc, int x, int y, bool bSelected)
{
dc.SetPen (wxPen(m_Edit_Color));
dc.SetBrush(*wxTRANSPARENT_BRUSH);
dc.DrawCircle(x, y, 2);
Draw_Edge(dc, EDGE_STYLE_SIMPLE,
x - EDIT_TICKMARK_SIZE - 1,
y - EDIT_TICKMARK_SIZE - 1,
x + EDIT_TICKMARK_SIZE,
y + EDIT_TICKMARK_SIZE
);
if( bSelected )
{
dc.SetPen(*wxRED_PEN);
Draw_Edge(dc, EDGE_STYLE_SIMPLE,
x - EDIT_TICKMARK_SIZE - 2,
y - EDIT_TICKMARK_SIZE - 2,
x + EDIT_TICKMARK_SIZE + 1,
y + EDIT_TICKMARK_SIZE + 1
);
}
}
示例4: draw_plot
void Plotter::draw_plot(wxDC& dc){
int x_cur;
std::vector<double>* V;
for(int i=0;i< (int)values.size(); i++){
V = values.at(i);
dc.SetBrush(*this->colors.at( i % (int)this->colors.size() ));
wxPen pen(*this->colors.at( i % (int)this->colors.size() ));
pen.SetWidth(this->pen_width);
if(i>=(int)this->colors.size())
pen.SetStyle(wxLONG_DASH);
dc.SetPen(pen);
x_cur = this->margin_x;
if( (int)V->size()==1){
// special case of only one sample; next block assumes at least two samples.
wxCoord y = this->y_orig - (V->at(0) * this->scale_v);
if(this->min_y < 0 ){
int offset = (int)floor(this->min_y) - 1;
y += (offset * this->scale_v );
}
if( V->at(0)!=NA_VALUE )
dc.DrawCircle(x_cur, y, 2);
}
else{
for(int j=0; j<(int)V->size()-1; j++){
wxCoord y1 = this->y_orig - (V->at(j) * this->scale_v);
wxCoord y2 = this->y_orig - (V->at(j+1) * this->scale_v);
if(this->min_y < 0 ){
int offset = (int)this->min_y - 1;
y1 += (offset * this->scale_v );
y2 += (offset * this->scale_v );
}
wxCoord x1 = x_cur;
wxCoord x2 = x1 + this->scale_h;
if( this->draw_lines_on_plot ){
if( V->at(j)!=NA_VALUE && V->at(j+1)!= NA_VALUE)
dc.DrawLine(x1, y1, x2, y2);
}
if( V->at(j)!=NA_VALUE )
dc.DrawCircle(x1, y1, 2);
if( V->at(j+1)!=NA_VALUE )
dc.DrawCircle(x2, y2, 2);
x_cur += this->scale_h;
}
}
}
}
示例5: renderTrue
void BasicDrawPane::renderTrue(wxDC& dc)
{
dc.Clear();
// draw a circle
if (menu->number != 0)
{
dc.SetBrush(*wxGREEN_BRUSH); // green filling
dc.SetPen( wxPen( wxColor(255,0,0), 3 ) ); // 5-pixels-thick red outline
dc.DrawCircle( wxPoint(menu->pArray[0].x, menu->pArray[0].y), 10 /* radius */ );
dc.SetBrush(*wxBLUE_BRUSH);
dc.SetPen( wxPen( wxColor(255,255,0), 3 ) );
for (int i = 1; i < menu->number; i++)
{
dc.DrawCircle( wxPoint(menu->pArray[i].x,menu->pArray[i].y), 5 /* radius */ );
}
}
}
示例6: render
void CurvePane::render(wxDC& dc)
{
double px = 0.0;
double py = 0.0;
double x=0, y=0;
dc.Clear();
int w, h;
dc.GetSize(&w, &h);
int m=10;
int radius;
wxConfigBase::Get()->Read("tool.curve.controlpointradius",&radius,5);
//x axis:
dc.DrawLine(m,h-m,m,h-m-255);
//y axis:
dc.DrawLine(m,h-m,m+255,h-m);
//center lines:
dc.SetPen(*wxLIGHT_GREY_PEN);
dc.DrawLine(m+128,h-m,m+128,h-m-255);
dc.DrawLine(m,h-m-128,m+255,h-m-128);
//null curve:
dc.DrawLine(m,h-m,m+255,h-m-255);
//quarter lines:
dc.SetPen(wxPen(wxColour(192,192,192), 1, wxPENSTYLE_DOT_DASH ));
dc.DrawLine(m+64,h-m,m+64,h-m-255);
dc.DrawLine(m,h-m-64,m+255,h-m-64);
dc.DrawLine(m+192,h-m,m+192,h-m-255);
dc.DrawLine(m,h-m-192,m+255,h-m-192);
dc.SetPen(*wxBLACK_PEN);
//double ax = ((double) w/x);
//double ay = ((double) h/y)*z;
for (double x=0.0; x<256.0; x++) {
y=c.getpoint(x);
if (y>255.0) y = 255.0; if (y<0.0) y=0.0;
dc.DrawLine(m+px,h-m-py,m+x,h-m-y);
px = x;
py = y;
}
//if (mousemotion)dc.DrawCircle(pos,5);
std::vector<cp> controlpts = c.getControlPoints();
for (unsigned int i=0; i<controlpts.size(); i++) {
if ((controlpts[i].x == selectedCP.x) & (controlpts[i].y == selectedCP.y)) {
//dc.DrawText(wxString::Format("%d,%d",selectedCP.x,selectedCP.y),selectedCP.x-20,selectedCP.y-20);
dc.SetPen(*wxRED_PEN);
}
dc.DrawCircle(m+controlpts[i].x,h-m-controlpts[i].y,radius);
dc.SetPen(*wxBLACK_PEN);
}
}
示例7: DrawHover
void wxSFCircleShape::DrawHover(wxDC& dc)
{
// HINT: overload it for custom actions...
wxRealPoint pos = GetAbsolutePosition();
dc.SetPen(wxPen(m_nHoverColor, 1));
dc.SetBrush(m_Fill);
dc.DrawCircle(int(pos.x + m_nRectSize.x/2), int(pos.y + m_nRectSize.y/2), int(m_nRectSize.x/2));
dc.SetBrush(wxNullBrush);
dc.SetPen(wxNullPen);
}
示例8: DrawHover
void wxSFConnectionPoint::DrawHover(wxDC& dc)
{
// HINT: overload it for custom actions...
dc.SetPen( *wxBLACK_PEN );
dc.SetBrush( *wxRED_BRUSH );
dc.DrawCircle( Conv2Point( GetConnectionPoint() ), RADIUS );
dc.SetBrush( wxNullBrush );
dc.SetPen( wxNullPen );
}
示例9: DrawKnob
void kwxAngularRegulator::DrawKnob(wxDC &temp_dc)
{
double x, y ;
x = (m_nClientHeight / 2) - m_dxi ;
y = (m_nClientHeight / 2) - m_dyi ;
temp_dc.SetPen(*wxThePenList->FindOrCreatePen(m_cKnobBorderColour, 1, wxSOLID));
temp_dc.SetBrush(*wxTheBrushList->FindOrCreateBrush(m_cKnobColour,wxSOLID));
temp_dc.DrawCircle(x, y, 5) ;
}
示例10: _Draw_Points
//---------------------------------------------------------
void CVIEW_ScatterPlot::_Draw_Points(wxDC &dc, wxRect r)
{
double dx = (r.GetWidth () - 1.) / m_Trend.Get_Data_XStats().Get_Range();
double dy = (r.GetHeight() - 1.) / m_Trend.Get_Data_YStats().Get_Range();
for(int i=0; i<m_Trend.Get_Data_Count(); i++)
{
dc.DrawCircle(
GET_DC_X(m_Trend.Get_Data_X(i)),
GET_DC_Y(m_Trend.Get_Data_Y(i)), 2
);
}
}
示例11: DrawShadow
void wxSFCircleShape::DrawShadow(wxDC& dc)
{
// HINT: overload it for custom actions...
if( m_Fill.GetStyle() != wxTRANSPARENT )
{
wxRealPoint pos = GetAbsolutePosition();
dc.SetPen(*wxTRANSPARENT_PEN);
dc.SetBrush(GetParentCanvas()->GetShadowFill());
dc.DrawCircle(int(pos.x + m_nRectSize.x/2 + GetParentCanvas()->GetShadowOffset().x), int(pos.y + m_nRectSize.y/2 + GetParentCanvas()->GetShadowOffset().y), int(m_nRectSize.x/2));
dc.SetBrush(wxNullBrush);
dc.SetPen(wxNullPen);
}
}
示例12: Paint
void BasicDrawPanel::Paint(wxDC &dc)
{
dc.SetPen( wxPen( wxColor(255,0,0), 3 ) );
switch(mMeassure)
{
case M_DIFF:
dc.SetPen( wxPen( wxColor(255,0,0), 3 ) );
dc.DrawLine( mapx(mMStartX), mapy(mMStartY), mapx(mMEndX), mapy(mMEndY));
break;
case M_POINT:
dc.DrawCircle(mapx(mMStartX), mapy(mMStartY),3);
break;
default:
break;
}
}
示例13: PaintControls
void PCPNewCanvas::PaintControls(wxDC& dc)
{
if (!show_pcp_control) return;
// draw control line
wxPen pen(*wxBLUE_PEN);
pen.SetWidth(2);
dc.SetPen(pen);
dc.SetBrush(*wxWHITE_BRUSH);
wxPoint cpt = control_circs[control_line_sel]->center;
cpt.x += control_circs[control_line_sel]->getXNudge();
cpt.y = sel2.y;
int x_end = control_lines[control_line_sel]->points[1].x;
dc.DrawLine(cpt.x, cpt.y, x_end, cpt.y);
dc.DrawCircle(cpt, control_circs[control_line_sel]->radius);
}
示例14: DrawTrajectory
void PreviewWindow::DrawTrajectory(wxDC& dc)
{
Point previous;
dc.SetPen(wxPen(trajectoryColour, lineWidth*2, wxSOLID));
for_each(trajectory.begin(), trajectory.end(), [&](Point& p)
{
Point start = TransformPoint(previous);
Point end = TransformPoint(p);
if(drawTrajectory)
dc.DrawLine(start.x, start.y, end.x, end.y);
previous = p;
});
dc.SetPen(wxPen(trajectoryColour, lineWidth, wxSOLID));
dc.SetBrush(*wxRED_BRUSH);
previous = TransformPoint(previous);
dc.DrawCircle(previous.x, previous.y, 4);
}
示例15: _Draw_Box
//---------------------------------------------------------
inline void CWKSP_Layer_Legend::_Draw_Box(wxDC &dc, int y, int dy, wxColour Color)
{
wxPen Pen;
wxBrush Brush;
//-----------------------------------------------------
_Set_Size(0, dy);
dy -= BOX_SPACE;
//-----------------------------------------------------
if( m_Box_bOutline == false )
{
Pen = dc.GetPen();
Pen.SetColour(Color);
dc.SetPen(Pen);
}
if( m_Box_bFill )
{
Brush = dc.GetBrush();
Brush.SetColour(Color);
dc.SetBrush(Brush);
}
//-----------------------------------------------------
switch( m_BoxStyle )
{
case BOXSTYLE_LINE:
dc.DrawLine(m_xBox , y + dy / 2, m_xBox + m_dxBox / 4, y);
dc.DrawLine(m_xBox + m_dxBox / 4, y , m_xBox + 3 * m_dxBox / 4, y + dy);
dc.DrawLine(m_xBox + 3 * m_dxBox / 4, y + dy , m_xBox + m_dxBox , y + dy / 2);
break;
case BOXSTYLE_CIRCLE:
dc.DrawCircle(m_xBox + m_dxBox / 2, y + dy / 2, dy / 2);
break;
case BOXSTYLE_RECT: default:
dc.DrawRectangle(m_xBox, y, m_dxBox, dy);
break;
}
}