int i = 0,j,k; int b,e; float d,fd; for(i = 0;i<num;i++){//对各条边进行处理 b = my[i]; e = my[(i+1)%num]; d = float(mx[i]-mx[(i+1)%num])/(my[i]-my[(i+1)%num]); fd = float(mx[i]); if(b>e){ j = b; b = e; e = j; fd = float(mx[(i+1)%num]); } for(j = b;j<e;j++){//处理一条边上各个点// if(j == my[i]){// k = mx[i];// }// else{// k = int(float((j-my[i])*(my[(i+1)%num]-my[i]))/float(mx[(i+1)%num]-mx[i])+float(mx[i])+0.5f);// } k = int(fd+(j-b)*d+0.5f); for(;k<518;k++){ if(pic.GetPixel(k,j)==col){ pic.SetPixel(k,j,RGB(255,255,255)); } else{ pic.SetPixel(k,j,col); } } } } Invalidate(FALSE);}
它实现的算法是什么啊?能写具体点吗?整个程序可以在http://hi.baidu.com/waitforyouml看到.谢谢
|