ページ 1 / 1
DrawModiGraph関数を用いて画像を回転させたいのですが
Posted: 2011年12月06日(火) 23:08
by taketoshi
表題の通り、DrawModiGraph関数を用いて、画像の4点を指定しクルクル回転させたいのですが方法が解りません。
DrawRotaGraph関数のAngle的な引数が欲しいのですが、
4点を指定してグルグル画像を回すとなると、何か方法はあるのでしょうか?
画像処理に詳しい方、ご教授願います。
Re: DrawModiGraph関数を用いて画像を回転させたいのですが
Posted: 2011年12月07日(水) 02:08
by taketoshi
ネットで回転の公式を調べて、自己解決しました。
コード:
//画像の回転処理
X = -(nImageSizeX / 2) * cos( nAngle * 3.14159265358 / 180.0) - -(nImageSizeY / 2) * sin( nAngle * 3.14159265358 / 180.0);
Y = -(nImageSizeX / 2) * sin( nAngle * 3.14159265358 / 180.0) + -(nImageSizeY / 2) * cos( nAngle * 3.14159265358 / 180.0);
locate[0][0] = x[0] + X;
locate[0][1] = y[0] + Y;
X = (nImageSizeX /2) * cos( nAngle * 3.14159265358 / 180.0) - -(nImageSizeY / 2) * sin( nAngle * 3.14159265358 / 180.0);
Y = (nImageSizeX / 2) * sin( nAngle * 3.14159265358 / 180.0) + -(nImageSizeY / 2) * cos( nAngle * 3.14159265358 / 180.0);
locate[1][0] = x[0] + X;
locate[1][1] = y[0] + Y;
X = -(nImageSizeX /2) * cos( nAngle * 3.14159265358 / 180.0) - (nImageSizeY / 2) * sin( nAngle * 3.14159265358 / 180.0);
Y = -(nImageSizeX / 2) * sin( nAngle * 3.14159265358 / 180.0) + (nImageSizeY / 2) * cos( nAngle * 3.14159265358 / 180.0);
locate[2][0] = x[0] + X;
locate[2][1] = y[0] + Y;
X = (nImageSizeX /2) * cos( nAngle * 3.14159265358 / 180.0) - (nImageSizeY / 2) * sin( nAngle * 3.14159265358 / 180.0);
Y = (nImageSizeX / 2) * sin( nAngle * 3.14159265358 / 180.0) + (nImageSizeY / 2) * cos( nAngle * 3.14159265358 / 180.0);
locate[3][0] = x[0] + X;
locate[3][1] = y[0] + Y;