ページ 11

atan2: DOMAIN error

Posted: 2009年1月26日(月) 16:25
by 匿名
atan2関数を使うとatan2: DOMAIN errorと出ることがあるのですが、これって何が原因なんでしょうか?

Re:atan2: DOMAIN error

Posted: 2009年1月26日(月) 16:29
by Mist
引数が2個とも0の場合に発生するそうだよ。

Re:atan2: DOMAIN error

Posted: 2009年1月26日(月) 16:31
by Dixq (管理人)
渡す引数が両方0.0だったりしませんか?

Re:atan2: DOMAIN error

Posted: 2009年1月27日(火) 19:54
by 匿名
やっぱりそうですか、一応因数が両方とも0なら処理を行わないようにしてみたんですがどこか間違っていたみたいですね。これで確信が持てたので徹底的に条件分岐してみます。どうもありがとうございました。

オセロ

Posted: 2009年2月06日(金) 13:23
by ざこ
またオセロの質問で申し訳ないのですが
オセロで石が置ける場所にカーソルをもっていけばカーソルが変化するようにしたいのです。
置けない場所のときはそのままで。OnMouseMoveで置ける場所のときのみBOOL変数を使ってon/offし
カーソルチェンジを試してみましたが全く変化ありません。OnSetCursor使えばカーソル変化はできます。
置ける場所にのみ という条件をつけるとできません。マスをクリックしたら、カーソル変化 というのはできます。
使う関数が間違っているのでしょうか、教えて下さい。

Re:オセロ

Posted: 2009年2月06日(金) 13:35
by バグ
OnMouseMoveでカーソル位置を算出し、カーソルが置ける位置ならば、フラグ変数をTRUE、そうでないならFALSEにして、再描画する。

という流れでいけるのでは?

Re:オセロ

Posted: 2009年2月06日(金) 14:08
by ざこ
今たぶんそんな感じにしようと試してる所だと思います。
BOOL CDialogA::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
  if(CurSor==TRUE){
     HCURSOR myCSR;
     if(myCSR){
        ::SetCursor(AfxGetApp()->LoadStandardCursor(IDC_CROSS));
     return TRUE;
     }
   }

  return CDialogA::OnSetCurSor(pWnd, nHitTest, message)
}

void CDialog::OnMousemove(UINT nFlags, CPoint point)
{
  int x,y;
  x=point.x/MASU_SIZE;
  y=point.y/MASU_SIZE;

  if(rule(x,y,1,1)){
     CurSor=TRUE;
 }
  
  if(rule(x,y,-1,-1)){
     CurSor=TRUE;
 }

 if(rule(x,y,1,0)){
     CurSor=TRUE;
 }


if(rule(x,y,0,1)){
     CurSor=TRUE;
 }
  if(rule(x,y,-1,0)){
     CurSor=TRUE;
 }


if(rule(x,y,0,-1)){
     CurSor=TRUE;
 }

if(rule(x,y,1,-1)){
     CurSor=TRUE;
 }

if(rule(x,y,-1,1)){
     CurSor=TRUE;
 }

 else{
   CurSor=FALSE;
  }
  
 CDialog::OnMouseMove(nFlags, point)
}
※CurSorはBOOL型のメンバ変数

というような感じになっております。

Re:オセロ

Posted: 2009年2月06日(金) 14:25
by toyo
2つめ以降の
if(rule(x,y~

else if(rule(x,y~
にしないとほとんどFALSEになりますよ
if(rule(x,y,-1,1))の場合のみTRUEになります

Re:オセロ

Posted: 2009年2月06日(金) 14:27
by toyo
CurSor=FALSE;
を先頭に持ってきて最後の
else {
CurSor=FALSE;
}
を削除してもいいですね

Re:オセロ

Posted: 2009年2月06日(金) 16:32
by ざこ
できましたありがとうございました。