角度計算について

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

角度計算について

#1

投稿記事 by atrix » 10年前

私は高校2年で、現在は龍神録プログラミングの館で勉強させていただいております。
今回尋ねたいことは、角度の計算についてです。
弾幕制作時などに度々複雑と感じてしまうことがあるのです。
例えば、以下の計算などです。
for(i=0;i<2;i++){
for(j=0;j<num;j++){
angle=PI2/num*i+PI2/(num*2)*j+PI2/(num*4)*((num+1)%2);
}
}

他にもたくさんあるのですが、作る方は、このような計算式をどのように考えているのでしょうか?また、見る方はどのように理解しているのでしょうか?
コツや理論を教えていただきたいのです。三角関数は習ったのですが、こういった式で頭の中が絡まってしまい、度々つまずいてしまいます。
どうかよろしくお願いします。

ISLe
記事: 2650
登録日時: 13年前
連絡を取る:

Re: 角度計算について

#2

投稿記事 by ISLe » 10年前

例示された角度計算には三角関数は使われていませんが…。

PI2というのは、円周率×2のことだと思います。
三角関数では、PI(π=円周率)は180度のことです。
なのでPI2というのは360度のことです。

計算は一周360度を適当な法則で分割して組み合わせているだけですね。
どういう動きかは図に描いたりプログラムを動かしたりしてみないと分からないんじゃないでしょうかね。
わたしがこのコードを読むときは「角度を求めているんだな」とだけ理解しますね。
どういう法則で角度が求められるかはゲームコンテンツとしての仕様であって、コードを理解するのには不要ですから。

あとゲームで三角関数を直接使うのは、角度から座標を求めるときくらいです。
要するに三角関数は角度から座標を求める関数です。
文字列を数値に変換する関数と同じようなものです。

atrix

Re: 角度計算について

#3

投稿記事 by atrix » 10年前

ISle様、ご回答いただき本当にありがとうございました。
複雑な式を全て理解しようとするのではなく、どのような役割を担っているのかを確認しておくことが重要なのですね。
参考にさせていただきます。
また機会がありましたら、どうかご教示ください。

閉鎖

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