とあるゲ―ムを作っておりどうしてもわからないことがあったので質問させて頂きました。
中心点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;
この様に書いてみて点の位置を描画してみたのですがどうも上手く動いていないようです。
回転度に応じた特定の点Aの座標
Re:回転度に応じた特定の点Aの座標
>上手く動いていないようです
具体的にどううまく動いていないよくわかりません。
その式で(どこを基準としどっちに向かって回転するかはともかく)
回転度に応じた特定の点を求めることはできるはずです。
ひょっとすると点の描画の仕方に問題があることも考えられるので、
テストしたコードがどういうものだったのか補足して下さい。
具体的にどううまく動いていないよくわかりません。
その式で(どこを基準としどっちに向かって回転するかはともかく)
回転度に応じた特定の点を求めることはできるはずです。
ひょっとすると点の描画の仕方に問題があることも考えられるので、
テストしたコードがどういうものだったのか補足して下さい。
Re:回転度に応じた特定の点Aの座標
実は原点がウィンドウ左下で、上向きの上昇すると勘違いしているとか?
だとしたら、下向き上昇なので、左周りの回転なら
Pos.y = -sin(rot) * r;
(ただし、rotは上昇するとする。)
あとは、Oを中心にするなら、 Oの座標を足すべき。ということぐらい。
だとしたら、下向き上昇なので、左周りの回転なら
Pos.y = -sin(rot) * r;
(ただし、rotは上昇するとする。)
あとは、Oを中心にするなら、 Oの座標を足すべき。ということぐらい。
