一、中点画线算法:
//中点画线算法
void CMidPointLineView::MyMidLine(int x0, int y0, int x1, int y1)
{
CClientDC dc(this);
int a=0;
int b=0;
int d1=0;
int d2=0;
int d=0;
int x=0;
int y=0;
a=y0-y1;
b=x1-x0;
d=2*a+b;
d1=2*a;
d2=2*a+2*b;
x=x0;
y=y0;
dc.SetPixel(x,y,RGB(255,0,0));
while(x
{
if(d<0)
{
x++;
y++;
d += d2;
}
else
{
x++;
d += d1;
}
dc.SetPixel(x,y,RGB(255,0,0));
}
}
效果图如下:
二、中点画圆算法:
//画1/8圆弧
void CMidPointCircleView::MyMidCircle(int x0,int y0, int r)
{
CClientDC dc(this);
int x=0;
int y=r;
float d=1.25-r;
CirclePoint(x0,y0,x,y);
while(x<=y)
{