今,Visual C++ 6.0のプログラムを改良していますが,マウス操作の場所を改良したい
のですが,うまくいきません!!
どのようにしたら,うまくいくか教えていただきたいのですが!?
<プログラム>
CFaceFitModel* pFace = GetDocument()->GetFace();
CPoint movePoint( point.x - m_LastPoint.x , point.y - m_LastPoint.y );
switch( GetDocument()->GetMouseMode() )
{
case MOUSEMODE_MOVE:
pFace->MoveDrawCenter(movePoint);
break;
case MOUSEMODE_ZOOM:
pFace->Zoom( (float)movePoint.y );
pFace->Rotate(
0 ,
0 ,
(float)movePoint.x / ROTATE_RATE
);
break;
case MOUSEMODE_ROTATE:
pFace->Rotate(
(float)movePoint.x / ROTATE_RATE,
(float)movePoint.y / ROTATE_RATE,
0
);
break;
}
InvalidateRect(NULL,FALSE);
m_LastPoint = point;
}
void CFaceView::OnLButtonDown(UINT nFlags, CPoint point)
{
SetCapture();
m_LastPoint = point;
}
void CFaceView::OnLButtonUp(UINT nFlags, CPoint point)
{
ReleaseCapture();
m_LastPoint = CPoint(0,0);
}
このプログラムはある2次元顔画像を3次元顔画像に変換して描画するツールのプログラムの
一部分なのですが,マウスを動かす事で,顔の位置を変えたり,ズームしたり,回転したり
とできます。ここで,回転角度を指定させたいのですがC++とVC++の勉強不足のため
うまくいきません。ちなみに,ROTATE_RATEとは変数であり,ここでは100.0fと定義されています。
このfの意味も教えていただけませんか??
> ちなみに,ROTATE_RATEとは変数であり,ここでは100.0fと定義されています。
定数の間違いでは?
浮動小数点定数は、接尾辞 f、F、l、または L を付けないとき、double 型になります。
接尾辞 f または F を付けると、float 型に、l または L を付けると、long double 型になります。
>ここで,回転角度を指定させたいのですが
CFaceFitModel::Rotate()の引数の意味を調べてみたらよいのでは?
いろいろありがとうございます。
CFaceFitModel::Rotate()の関数の定義しているものが見当たらないのですが・・・。
[編集]-[ファイルから検索]コマンドなどで検索してみてください。
もしくはCFaceFitModelクラスの作者に聞いてみるとか。
ネットを検索してみましたが、ヒットしたのは東京大学の1件だけで
有益な情報は得られませんでした。
EIJIさんいつもすみません。
このソフトはIPAという情報処理学会のソフトなので,もしかすると
3次元描画部分だけは,ソースファイルではなく,実行形式のファイルに
なっている可能性が高いとみました。
そこで,プログラムを実行する際にどのファイルに飛んでいるのかが
知りたいのですが,ステップ実行の方法がよくわかりません。
もし,よろしければ教えていただきたいのですが??
>このソフトはIPAという情報処理学会のソフトなので
それならここで質問しても答えは見つからないでしょうね。
>そこで,プログラムを実行する際にどのファイルに飛んでいるのかが
>知りたいのですが,ステップ実行の方法がよくわかりません。
それはヘルプで調べればすぐわかると思いますが。
ありがとうございます。