ページ 11

龍神録15章のことで伺いたいことが

Posted: 2012年9月29日(土) 21:59
by たけのこ太郎
龍神録のサイトで勉強させていただいている者ですが、お伺いしたいことがあります。
エラーやトラブルとは別のことなのですが、龍神録15章の弾幕を作るところで、サイト主の方の解説で「敵がいる位置からPI/2の位置からPI/2+PIの方向とPI/2-PIの方向へ回転している」というものがあるのですが、
180°がπなのはわかるのですが、PI/2の位置(90°の位置?)などとは、どのような位置なのかがわからないのです。
初歩的な質問になってしまいますが、どなたかご教示いただけないでしょうか。

Re: 龍神録15章のことで伺いたいことが

Posted: 2012年9月29日(土) 22:09
by box
弧度法について調べてみると、何かいいことがあるかもしれません。
180°がPIラジアンなのがわかっていて、PI/2(90°)がイメージできない、
というのは、ちょっと信じられない気がしなくもないような気がするような気がします。

Re: 龍神録15章のことで伺いたいことが

Posted: 2012年9月29日(土) 22:23
by たけのこ太郎
PI/2がイメージできないというか、「敵の位置からPI/2の位置~PI/2+PIの方向」というのがイメージできないのですが、同じことなのでしょうか

Re: 龍神録15章のことで伺いたいことが

Posted: 2012年9月29日(土) 23:11
by softya(ソフト屋)
>敵がいる位置からPI/2の位置からPI/2+PIの方向とPI/2-PIの方向へ回転していますね?

敵がいる位置を中心点としてPI/2の角度の位置(つまり下)を起点として、2方向、PI/2+PIの方向とPI/2-PIの方向へと敵を中心に弾の発射位置が移動しているのはわかりますでしょうか?
そういう説明なんですよ。

Re: 龍神録15章のことで伺いたいことが

Posted: 2012年9月29日(土) 23:25
by たけのこ太郎
ご回答ありがとうございます。すこしずつわかってきたような気がします。
下が90°ということは左がPI、上がPI/2+PI(PI/2-PI?)右が0という認識でいいのでしょうか?

Re: 龍神録15章のことで伺いたいことが

Posted: 2012年9月30日(日) 00:13
by softya(ソフト屋)
たけのこ太郎 さんが書きました:ご回答ありがとうございます。すこしずつわかってきたような気がします。
下が90°ということは左がPI、上がPI/2+PI(PI/2-PI?)右が0という認識でいいのでしょうか?
こう言うのは試してみた方が良いでしょう。
簡単なプログラムを書いて試してみてはどうでしょうか?

Re: 龍神録15章のことで伺いたいことが

Posted: 2012年9月30日(日) 00:53
by たけのこ太郎
サイトを参考に画像をPI/2,PI,PI/2+PI,PI*2、それぞれの角度で描画してみて、それぞれが右、下、左、上向きになることをたしかめたのですが、そうするとPI/2の角度の位置がなぜ下になるということがわからなくなり、混乱してしまいました。自分なりに考えましたが、どうにもわからないです。考え方のようなもの、またはアドバイスをいただきたいです

Re: 龍神録15章のことで伺いたいことが

Posted: 2012年9月30日(日) 01:04
by softya(ソフト屋)
たけのこ太郎 さんが書きました:サイトを参考に画像をPI/2,PI,PI/2+PI,PI*2、それぞれの角度で描画してみて、それぞれが右、下、左、上向きになることをたしかめたのですが、そうするとPI/2の角度の位置がなぜ下になるということがわからなくなり、混乱してしまいました。自分なりに考えましたが、どうにもわからないです。考え方のようなもの、またはアドバイスをいただきたいです
そのプログラムを見せてくださいね。

それと15章と見比べてみるのも手です。
どこで発生座標を決定しているか分かりますか?
よく見てみてください。

【補足】
sinとcosの角度と値の関係は90度ズレた関係にあるのでsin/cosの使い方が違うと90度ズレてしまうことがあります。

Re: 龍神録15章のことで伺いたいことが

Posted: 2012年9月30日(日) 01:06
by nil
ラジアン値角度0=0°は右で、
角度はそこから時計回りに増えていきます。
つまりPI/2=180°/2=90°は
真右から時計回りに90°つまり真下を指し、
同じようにPI=180°は真左を指します。

Re: 龍神録15章のことで伺いたいことが

Posted: 2012年9月30日(日) 01:37
by たけのこ太郎
皆さん回答ありがとうございます。皆さんのおかげでたぶん理解できました。DrawRotaGraphの引数のAngleにPI/2を足すあたりなどで混乱していたようです。うまく言葉にできないのですが、DrawRotaGraphの引数の描画角度は上が0度、右が90度、下が180度、右が270度(確かめた結果そうだと判断しました汗)というのと0が右でPIが下、PIが左、PI/2+PIは上というのとごちゃごちゃになっていたのかと思います。

Re: 龍神録15章のことで伺いたいことが

Posted: 2012年9月30日(日) 01:47
by たけのこ太郎
連続ですみません。ねぼけて誤字を記してしまいました。
上が0度、右が90度、下が180度、左が270度、0が右で、PI/2が下でPIが左で、PI/2+PIが上、と書きたかったのです。

Re: 龍神録15章のことで伺いたいことが

Posted: 2012年9月30日(日) 01:59
by Dixq (管理人)
上が0度ではありません。右が0度です。
描画時に90度足しているのは、画像が上向き(-90度)だからです。
(画像素材を右向きにすれば90度足す必要はありません)

例えば、今左に弾が飛んでいるとしましょう。飛んでいる角度は180度です。
しかし、弾素材の画像は上向き(-90度)なので、単純に弾を180度回転させると、-90+180度で、下を向いてしまいます。
軌道計算は180度なのに、表示は90度なので、左に飛ぶのだけど、弾の向きは下ということになります。

# 以下一般的な2Dゲームプログラムにおける座標軸や表示についてです。

まず、ウィンドウは左上原点の、xは右が正、yは下が正なので、学校で習う座標軸の向きが上下逆になります。
これについては、

1.3章 画像を表示してみよう
http://dixq.net/g/01_03.html

の2枚目の画像を参照して下さい。
中学で座標と角度を習った時は、右が0度で、反時計回りに回転していたので、上が90度だったと思います。
しかし、右が0度なのは同じですが、yの向きが反対なので、時計回りに回転します。したがって真下が90度になります。

3.7章 特定の角度で弾を飛ばす
http://dixq.net/g/03_07.html

こちらのプログラムのangleが示す向きが進行方向なので、この値を色んな値にして動作を確認してみて下さい。
(サンプルでは乱数になっていますが、固定値を入れると向きが確認できるでしょう)

また、館でもsin,cosについて説明している章があるのでよければどうぞ

補足資料 6章 sin, cosって何?(三角比の基本)
http://dixq.net/g/h_06.html

Re: 龍神録15章のことで伺いたいことが

Posted: 2012年9月30日(日) 02:11
by たけのこ太郎
管理人様、ご回答ありがとうございます。ご説明いただいたおかげでよくわかりました。
また、もう少し勉強を重ねてから進んでいきたいとおもいました。
今回はこの質問に答えていただきありがとうございました。