x1,y1→ウィンドウの左上の座標
x2,y2→ウィンドウの右下の座標
void window(int x1,int y1,int x2,int y2){ int i,t1,t2; DrawGraph(x1,y1,win.hidariue,true);//左上 DrawGraph(x2-5,y1,win.migiue,true);//右上 DrawGraph(x1,y2-5,win.hidarishita,true);//左下 DrawGraph(x2-5,y2-5,win.migishita,true);//右下 DrawExtendGraph(x1+5,y1+5,x2-5,y2-5,win.dot,true);//中心部分 t1=GetNowCount(); for(i=x1+5;i<x2-5;i++) DrawGraph(i,y2-5,win.shita,true);//下部分 for(i=x1+5;i<x2-5;i++) DrawGraph(i,y1,win.ue,true);//上部分 t1 = GetNowCount()-t1; t2=GetNowCount(); for(i=y1+5;i<y2-5;i++) DrawGraph(x2-5,i,win.migi,true);//右部分 for(i=y1+5;i<y2-5;i++) DrawGraph(x1,i,win.hidari,true);//左部分 t2=GetNowCount()-t2; DrawFormatString(10,10,black,"%d %d",t1,t2); }と書いた場合と
void window(int x1,int y1,int x2,int y2){ int i,t1,t2; DrawGraph(x1,y1,win.hidariue,true);//左上 DrawGraph(x2-5,y1,win.migiue,true);//右上 DrawGraph(x1,y2-5,win.hidarishita,true);//左下 DrawGraph(x2-5,y2-5,win.migishita,true);//右下 DrawExtendGraph(x1+5,y1+5,x2-5,y2-5,win.dot,true);//中心部分 t1=GetNowCount(); for(i=x1+5;i<x2-5;i++){ DrawGraph(i,y1,win.ue,true);//上部分 DrawGraph(i,y2-5,win.shita,true);//下部分 } t1 = GetNowCount()-t1; t2=GetNowCount(); for(i=y1+5;i<y2-5;i++){ DrawGraph(x1,i,win.hidari,true);//左部分 DrawGraph(x2-5,i,win.migi,true);//右部分 } t2=GetNowCount()-t2; DrawFormatString(10,10,black,"%d %d",t1,t2); }と書いた場合で、処理速度がかなり違います
前者はt1,t2ともに1ミリ秒以下なのに対し、後者はt1,t2ともに16ミリ秒を超えています・・・。
一つのfor文の中身はなるべく少なくなるようにした方がいいのでしょうか?