atan2: DOMAIN error

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
匿名

atan2: DOMAIN error

#1

投稿記事 by 匿名 » 16年前

atan2関数を使うとatan2: DOMAIN errorと出ることがあるのですが、これって何が原因なんでしょうか?

Mist

Re:atan2: DOMAIN error

#2

投稿記事 by Mist » 16年前

引数が2個とも0の場合に発生するそうだよ。

Dixq (管理人)

Re:atan2: DOMAIN error

#3

投稿記事 by Dixq (管理人) » 16年前

渡す引数が両方0.0だったりしませんか?

匿名

Re:atan2: DOMAIN error

#4

投稿記事 by 匿名 » 16年前

やっぱりそうですか、一応因数が両方とも0なら処理を行わないようにしてみたんですがどこか間違っていたみたいですね。これで確信が持てたので徹底的に条件分岐してみます。どうもありがとうございました。

ざこ

オセロ

#5

投稿記事 by ざこ » 16年前

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

バグ

Re:オセロ

#6

投稿記事 by バグ » 16年前

OnMouseMoveでカーソル位置を算出し、カーソルが置ける位置ならば、フラグ変数をTRUE、そうでないならFALSEにして、再描画する。

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

ざこ

Re:オセロ

#7

投稿記事 by ざこ » 16年前

今たぶんそんな感じにしようと試してる所だと思います。
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型のメンバ変数

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

toyo

Re:オセロ

#8

投稿記事 by toyo » 16年前

2つめ以降の
if(rule(x,y~

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

toyo

Re:オセロ

#9

投稿記事 by toyo » 16年前

CurSor=FALSE;
を先頭に持ってきて最後の
else {
CurSor=FALSE;
}
を削除してもいいですね

ざこ

Re:オセロ

#10

投稿記事 by ざこ » 16年前

できましたありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る