我在View类的OnCreate中加入一个定时器SetTimer(0,100,NULL),然后再View类的OnTimer函数中写入如下代码:
for(int i=0;i<500;i++)
for(int j=0;j<400;j++)
{
if(((i-100)*(i-100)+(j-120)*(j-120))<100*100)
data[i][j]-=1;
}
CMainFrame *pMainFrm=(CMainFrame *)AfxGetMainWnd();
CMDIChildWnd *pChild = pMainFrm->MDIGetActive();
CLAIBINView *pView=(CLAIBINView*)pChild->GetActiveView();
if(maploadok)
pView->mapopen((data[i][j]));
其中数组data[i][j]的值表示不同直线的长度,if语句是用来判断一个圆形区域,以data[100][120]为圆心,半径为100的圆面。data[i][j]-=1相当于使整个圆面减少同样的高度1,这不是我想要的效果。我希望是圆心那点的值减少最多,随着逐渐向外扩展减少的值逐渐变小,相当于一个漏斗的样子。我需要怎样对data[i][j]操作才达到上述效果,并且用一个定时器使之以动态的过程形成类似于漏斗状。 |