ページ 1 / 1
三角関数をつかって移動処理をしているのですが、6パターンくらいの角度しかうごきません
Posted: 2010年7月16日(金) 21:29
by ぼたろう
どうしたらよいのでしょう?
Re:三角関数をつかって移動処理をしているのですが、6パターンくらいの角度しかうごきません
Posted: 2010年7月16日(金) 21:42
by シエル
このような質問で、あなたの求める回答が得られると思いますか?
Re:三角関数をつかって移動処理をしているのですが、6パターンくらいの角度しかうごきません
Posted: 2010年7月16日(金) 22:03
by 白い時空
ただの推測ですが、360°を一周とする度数法でやってませんか?
プログラミングで使うのは、2πを一周とする孤度法です。
Re:三角関数をつかって移動処理をしているのですが、6パターンくらいの角度しかうごきません
Posted: 2010年7月16日(金) 22:16
by ookami
あるいはintなどの整数型でやってませんか?
Re:三角関数をつかって移動処理をしているのですが、6パターンくらいの角度しかうごきません
Posted: 2010年7月17日(土) 00:30
by KEN
今自分も同じ事をしています
もし自分の思い違いでなければ
これで角度はでます
自分はアークタンジェントを使ってます
atan2( 物.y - 物.y, 物.x - 物.x );
Re:三角関数をつかって移動処理をしているのですが、6パターンくらいの角度しかうごきません
Posted: 2010年7月17日(土) 07:39
by へろりくしょん
6パターンくらいの角度というのが解りませんが、三角関数ですからまず角度を与えるものだと思うのですが。
難しく考えすぎではありませんか? 単純に公式に当てはめればいいだけだと思いますよ。
下記のコードは45度の角度で1移動したときのx座標とy座標をもとめています。
#define PI 3.141592
main
{
double r = 45 * PI / 180; //45度
double y = sin(r);
double x = cos(r);
printf("x = %f, y = %f\n", x, y);
}
Re:三角関数をつかって移動処理をしているのですが、6パターンくらいの角度しかうごきません
Posted: 2010年7月17日(土) 17:48
by KEYONN_
#define RAD (3.14159265/180)
float angle=30.0f;
x+=cos(angle*RAD)*Speed;
y-=sin(angle*RAD)*Speed;
これでどうでしょうか?
Re:三角関数をつかって移動処理をしているのですが、6パターンくらいの角度しかうごきません
Posted: 2010年7月17日(土) 19:08
by KEYONN_
もしかして、STGの自機の動きでしょうか?
左上↑右上
← →
左下↓右下
だとすると、普通8パターンくらいしか動きませんよ。
前に回答者さんが言っていましたが、詳しく状況を書かないと詳しい回答が得られません。
詳しく開発環境から疑問している部分とソースコードを提示してください。