HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0509
ひらまるプログラミング中の角度6解決


ひらまる

リンク

2011/5/9(Mon) 23:56:54|NO.39089

1周の値と回転方向の話なのですが、

ゲームで扱う角度といえば、基本的にはラジアン( 1周 = 2π )ですよね。
しかしプログラミング中は度数( 一周 = 360°)で書いて、影響が及ぶ場面でdeg2radなどを使う方も多いと思います。
つまり、角度の影響が及ぶ場所でラジアンに変換するのならば、
プログラムソース中の角度では、1周をどんな値にするのもプログラマの自由と言えるかもしれません。

学校の数学で扱う角度は、時計でいうと3時の場所が0°で、半時計回りに増えていきますよね。
しかし、一般的になじみがあるのは、数学の角度よりも時計盤の方ではないでしょうか。
240°といわれても、どんな角度かぱっと思いつかなくても、
7時の方向といわれれば、一瞬でイメージできるのではないでしょうか。

そこで疑問なのですが、
プログラミング中に扱いやすい角度にするには、
1周の値をいくつに設定して、
時計回りと半時計回り、どちらの方向を正とすると、より扱いやすくなるのでしょう?
もしくはベクトルを使うという選択肢もあるかもしれません。
みなさんの意見をお聞かせいただけないでしょうか。



この記事に返信する


f3d

リンク

2011/5/10(Tue) 07:54:40|NO.39090

DirectXは反時計回りとかそんなんだった気がする



晩御飯

リンク

2011/5/10(Tue) 09:18:12|NO.39091

OpenGLが反時計回りでDirectXはその逆



GENKI

リンク

2011/5/10(Tue) 20:05:41|NO.39096

> OpenGLが反時計回りでDirectXはその逆

DirectXは左手系、OpenGLは右手系。
右手系と左手系どっち使うかという問題なんで、2Dなら好きなほうでいいと思います。ただし統一すること。
資料を参考にする場合はそれにあわせたほうがいいでしょう。

数学だとたいがい右手系で習ったはずなので右手系がわかりやすいかもしれませんね。



M

リンク

2011/5/10(Tue) 22:42:38|NO.39103

最近、360分周よりも、256分周のほうが扱いやすいことに気が付きました。
「一周の16分の1」を求めようとすると、360分周では端数(22.5)が出るのに対し、256分周では整数(16)で収まるので。

右回り、左回りは気になりませんが、天地(12時か6時)のどちらかが起点になっているほうが、感覚的に解りやすいと感じています。

プログラムを書くときは、ラジアン(RAD)よりも度(DEG)のほうを使っています。さすがに、一周2π、半周πの世界はきついです。

また、2Dでも3Dでもベクトルを使っています。(「X方向に何ドット、Y方向に何ドット移動」よりも、「○度の方角にnの速度で移動」の表現を使っている)。どの方角に移動させても、移動量が一定になるので。



wass

リンク

2011/5/11(Wed) 07:37:58|NO.39107

deg2radをrとかにラップして使ってる 可読性0 '`,、('∀`) '`,、



ひらまる

リンク

2011/5/12(Thu) 11:32:04|NO.39163

なるほど……
セオリーのようなものはなくて、
「自分はこれでやる!」 というのを統一して、使いやすければよし。
といった感じでしょうか。

スレを立てたときには恥ずかしくて言えませんでしたが、
個人的には2Dだと、
真上を0°とし、時計回りを正の数、半時計回りを負の数として、
-180〜180の値であらわすのが扱いやすいです。
利点としては、
符号を変えるだけで左右反転ができること?
絶対値の最大が180なので、直感的に分り易い数が多いこと?
などでしょうか。

みなさんの方法を参考にしつつ、自分独自の方法を確立したいと思います。
様々なご意見、本当にありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.