私は高校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);
}
}
他にもたくさんあるのですが、作る方は、このような計算式をどのように考えているのでしょうか?また、見る方はどのように理解しているのでしょうか?
コツや理論を教えていただきたいのです。三角関数は習ったのですが、こういった式で頭の中が絡まってしまい、度々つまずいてしまいます。
どうかよろしくお願いします。
角度計算について
Re: 角度計算について
例示された角度計算には三角関数は使われていませんが…。
PI2というのは、円周率×2のことだと思います。
三角関数では、PI(π=円周率)は180度のことです。
なのでPI2というのは360度のことです。
計算は一周360度を適当な法則で分割して組み合わせているだけですね。
どういう動きかは図に描いたりプログラムを動かしたりしてみないと分からないんじゃないでしょうかね。
わたしがこのコードを読むときは「角度を求めているんだな」とだけ理解しますね。
どういう法則で角度が求められるかはゲームコンテンツとしての仕様であって、コードを理解するのには不要ですから。
あとゲームで三角関数を直接使うのは、角度から座標を求めるときくらいです。
要するに三角関数は角度から座標を求める関数です。
文字列を数値に変換する関数と同じようなものです。
PI2というのは、円周率×2のことだと思います。
三角関数では、PI(π=円周率)は180度のことです。
なのでPI2というのは360度のことです。
計算は一周360度を適当な法則で分割して組み合わせているだけですね。
どういう動きかは図に描いたりプログラムを動かしたりしてみないと分からないんじゃないでしょうかね。
わたしがこのコードを読むときは「角度を求めているんだな」とだけ理解しますね。
どういう法則で角度が求められるかはゲームコンテンツとしての仕様であって、コードを理解するのには不要ですから。
あとゲームで三角関数を直接使うのは、角度から座標を求めるときくらいです。
要するに三角関数は角度から座標を求める関数です。
文字列を数値に変換する関数と同じようなものです。
Re: 角度計算について
ISle様、ご回答いただき本当にありがとうございました。
複雑な式を全て理解しようとするのではなく、どのような役割を担っているのかを確認しておくことが重要なのですね。
参考にさせていただきます。
また機会がありましたら、どうかご教示ください。
複雑な式を全て理解しようとするのではなく、どのような役割を担っているのかを確認しておくことが重要なのですね。
参考にさせていただきます。
また機会がありましたら、どうかご教示ください。