DrawRotaGraphF相当のコード TurnFlag
Posted: 2010年10月10日(日) 09:35
http://www.play21.jp/board/formz.cgi?ac ... &rln=63031
の続きです。
DrawRotaGraphFに回転などを実装しているのですが、
TurnFlagが効かないようです。
どこが悪いかわかる方がいらっしゃいましたら教えていただければ幸いです。
kaiten関数は
http://www.play21.jp/board/formz.cgi?ac ... &rln=63052
のものです。
function.cppのDrawRotaGraphFの下に貼りつけました。
の続きです。
DrawRotaGraphFに回転などを実装しているのですが、
TurnFlagが効かないようです。
どこが悪いかわかる方がいらっしゃいましたら教えていただければ幸いです。
kaiten関数は
http://www.play21.jp/board/formz.cgi?ac ... &rln=63052
のものです。
function.cppのDrawRotaGraphFの下に貼りつけました。
int DrawRotaGraphF(HDC to,int x,int y,float ExtRate,float Angle,
gazou* graph,int TransFlag,int TurnFlag) {
HDC gazoufordraw;
HDC scaledgazou;
HBITMAP oldbmp;
HBITMAP scalebmp;
HBITMAP scaleoldbmp;
int sx,sy;
int dx,dy;
double rx,ry;
COLORREF col;
sx=(int)(graph->sizex*ExtRate);
sy=(int)(graph->sizey*ExtRate);
gazoufordraw=CreateCompatibleDC(to);
scaledgazou=CreateCompatibleDC(to);
scalebmp=CreateCompatibleBitmap(to,sx,sy);
oldbmp=(HBITMAP)SelectObject(gazoufordraw,graph->bmp);
scaleoldbmp=(HBITMAP)SelectObject(scaledgazou,scalebmp);
StretchBlt(scaledgazou,0,0,
sx,sy,
gazoufordraw,graph->x,graph->y,graph->sizex,graph->sizey,
SRCCOPY);
for(dy=0;dy<sy;dy++) {
for(dx=0;dx<sx;dx++) {
if(TurnFlag)col=GetPixel(scaledgazou,sx-dx,dy);
else col=GetPixel(scaledgazou,dx,dy);
col=GetPixel(scaledgazou,dx,dy);
kaiten(&rx,&ry,x,y,x+dx-sx/2,y+dy-sy/2,Angle);
if(!TransFlag || col!=RGB(255,255,255)) {
SetPixel(to,(int)rx,(int)ry,col);
}
}
}
SelectObject(gazoufordraw,oldbmp);
SelectObject(scaledgazou,scaleoldbmp);
DeleteObject(scaleoldbmp);
DeleteDC(gazoufordraw);
DeleteDC(scaledgazou);
return 0;
}
(編集)</pre>をつけ忘れました。 