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

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

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

#1

投稿記事 by たけのこ太郎 » 12年前

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

box
記事: 2002
登録日時: 14年前

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

#2

投稿記事 by box » 12年前

弧度法について調べてみると、何かいいことがあるかもしれません。
180°がPIラジアンなのがわかっていて、PI/2(90°)がイメージできない、
というのは、ちょっと信じられない気がしなくもないような気がするような気がします。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

たけのこ太郎

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

#3

投稿記事 by たけのこ太郎 » 12年前

PI/2がイメージできないというか、「敵の位置からPI/2の位置~PI/2+PIの方向」というのがイメージできないのですが、同じことなのでしょうか

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

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

#4

投稿記事 by softya(ソフト屋) » 12年前

>敵がいる位置からPI/2の位置からPI/2+PIの方向とPI/2-PIの方向へ回転していますね?

敵がいる位置を中心点としてPI/2の角度の位置(つまり下)を起点として、2方向、PI/2+PIの方向とPI/2-PIの方向へと敵を中心に弾の発射位置が移動しているのはわかりますでしょうか?
そういう説明なんですよ。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

たけのこ太郎

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

#5

投稿記事 by たけのこ太郎 » 12年前

ご回答ありがとうございます。すこしずつわかってきたような気がします。
下が90°ということは左がPI、上がPI/2+PI(PI/2-PI?)右が0という認識でいいのでしょうか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

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

#6

投稿記事 by softya(ソフト屋) » 12年前

たけのこ太郎 さんが書きました:ご回答ありがとうございます。すこしずつわかってきたような気がします。
下が90°ということは左がPI、上がPI/2+PI(PI/2-PI?)右が0という認識でいいのでしょうか?
こう言うのは試してみた方が良いでしょう。
簡単なプログラムを書いて試してみてはどうでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

たけのこ太郎

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

#7

投稿記事 by たけのこ太郎 » 12年前

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

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

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

#8

投稿記事 by softya(ソフト屋) » 12年前

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

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

【補足】
sinとcosの角度と値の関係は90度ズレた関係にあるのでsin/cosの使い方が違うと90度ズレてしまうことがあります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

nil
記事: 428
登録日時: 13年前

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

#9

投稿記事 by nil » 12年前

ラジアン値角度0=0°は右で、
角度はそこから時計回りに増えていきます。
つまりPI/2=180°/2=90°は
真右から時計回りに90°つまり真下を指し、
同じようにPI=180°は真左を指します。

たけのこ太郎

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

#10

投稿記事 by たけのこ太郎 » 12年前

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

たけのこ太郎

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

#11

投稿記事 by たけのこ太郎 » 12年前

連続ですみません。ねぼけて誤字を記してしまいました。
上が0度、右が90度、下が180度、左が270度、0が右で、PI/2が下でPIが左で、PI/2+PIが上、と書きたかったのです。

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 14年前
住所: 北海道札幌市
連絡を取る:

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

#12

投稿記事 by Dixq (管理人) » 12年前

上が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章のことで伺いたいことが

#13

投稿記事 by たけのこ太郎 » 12年前

管理人様、ご回答ありがとうございます。ご説明いただいたおかげでよくわかりました。
また、もう少し勉強を重ねてから進んでいきたいとおもいました。
今回はこの質問に答えていただきありがとうございました。

閉鎖

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