void CMidPointCircleView::OnDraw(CDC* pDC) { CMidPointCircleDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here int r=100; //半径 int m(300),n(250); //圆心坐标 int x,y; float d; x=0; y=0+r; d=1.25-r; //中点画圆算法 pDC->SetPixel(m+x,n+y,RGB(255,0,0)); pDC->SetPixel(m+y,n+x,RGB(255,0,0)); pDC->SetPixel(m-x,n+y,RGB(255,0,0)); pDC->SetPixel(m+y,n-x,RGB(255,0,0)); pDC->SetPixel(m+x,n-y,RGB(255,0,0)); pDC->SetPixel(m-y,n+x,RGB(255,0,0)); pDC->SetPixel(m-x,n-y,RGB(255,0,0)); pDC->SetPixel(m-y,n-x,RGB(255,0,0)); while(x<=y) { if(d<0) d+=2*x+3; else { d+=2*(x-y)+5; y--; } x++; pDC->SetPixel(m+x,n+y,RGB(255,0,0)); pDC->SetPixel(m+y,n+x,RGB(255,0,0)); pDC->SetPixel(m-x,n+y,RGB(255,0,0)); pDC->SetPixel(m+y,n-x,RGB(255,0,0)); pDC->SetPixel(m+x,n-y,RGB(255,0,0)); pDC->SetPixel(m-y,n+x,RGB(255,0,0)); pDC->SetPixel(m-x,n-y,RGB(255,0,0)); pDC->SetPixel(m-y,n-x,RGB(255,0,0)); } } |