曲线处理—贝塞尔曲线程序
void CBezierDlg::MyDraw(DPOINT * p)
{
if (n <= 0) return;
if((p[n].x < p[0].x+1) && (p[n].x > p[0].x-1) && (p[n].y < p[0].y+1) && (p[n].y > p[0].y-1))
{
pDC->SetPixel(p[0].x, p[0].y, RGB(255,0,0));//0x0000ff
return;
}
DPOINT *p1;
p1 = new DPOINT[n+1];
int i, j;
p1[0] = p[0];
for(i=1; i<=n; i++)
{
for(j=0; j<=n-i;j++)
{
p[j].x = (p[j].x + p[j+1].x)/2;
p[j].y = (p[j].y + p[j+1].y)/2;
}
p1[i] = p[0];
}
MyDraw(p);
MyDraw(p1);
delete p1;
}