MFC 多边形 填充颜色问题
画出一个多变行 然后多边形填充颜色
画出多变行的部分写好了 但是 填充颜色的部分写不出来 大侠们帮忙
void CMy3060646009SX3Dlg::OnButton1()
{
CDC*pDC=m_pic.GetDC();
CRect rect=FindRect();
for(int y=rect.top;y<rect.bottom;y++)
{
for(int x=rect.left;x<rect.right;x++)
{
if(IsInSide(x,y)==TRUE)
pDC->SetPixel(x,y,fillColor);
}
}
}
上面的代码里面的IsInSide(x,y) 这个函数就是 点是不是在多边形内
bool CMy3060646009SX3Dlg::IsInSide(int x, int y)
{
int i=0,x1,x2,n=0;
for(i=0;i<num;i++)
{
if(i<num-1)
{
for(x1=ptlist[i].x;x1<ptlist[i+1].x;x1++) //ptlist[20]是多边形顶点坐标数组 这2个顶点连接
{
for(x2=x;x2<=rect.left;x2++)
if(x1==x2)
n++; //n 点x,y 屏幕水平映射线 与 多边形的交点
}
}
}
if(n==1 || n==3 || n==5) //如果交点为奇数 那么点在多边形内
return TRUE;
else
return FALSE;
}
这样写的 但还是 没反应 大侠们帮忙哪里错了