回転度に応じた特定の点Aの座標

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

回転度に応じた特定の点Aの座標

#1

投稿記事 by » 15年前

とあるゲ―ムを作っておりどうしてもわからないことがあったので質問させて頂きました。

中心点Oは0~360度回転します。
回転度に応じた特定の点Aの座標を求めたいです。

float rot = float(map.rot/180.0f*M_PI); // map.rotが中心点Oの回転度 0~360です。

Pos.x = cos(rot) * r; // rは半径です。
Pos.y = sin(rot) * r;

この様に書いてみて点の位置を描画してみたのですがどうも上手く動いていないようです。

Justy

Re:回転度に応じた特定の点Aの座標

#2

投稿記事 by Justy » 15年前

>上手く動いていないようです
 具体的にどううまく動いていないよくわかりません。

 その式で(どこを基準としどっちに向かって回転するかはともかく)
回転度に応じた特定の点を求めることはできるはずです。

 ひょっとすると点の描画の仕方に問題があることも考えられるので、
テストしたコードがどういうものだったのか補足して下さい。

Ma

Re:回転度に応じた特定の点Aの座標

#3

投稿記事 by Ma » 15年前

実は原点がウィンドウ左下で、上向きの上昇すると勘違いしているとか?

だとしたら、下向き上昇なので、左周りの回転なら
Pos.y = -sin(rot) * r;

(ただし、rotは上昇するとする。)

あとは、Oを中心にするなら、 Oの座標を足すべき。ということぐらい。 画像

閉鎖

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