DOBON.NETプログラミング道掲示板
HOME
HELP
新規作成
新着記事
ツリー表示
スレッド表示
トピック表示
発言ランク
ファイル一覧
検索
過去ログ
No35556 の記事
■35556
/ )
2つのradの数値から1つの角度を求めるコードを改善できますか?(C++)
□投稿者/ キリシロ
一般人(1回)-(2023/12/01(Fri) 19:19:45)
環境/言語:[環境(エディション:Windows 11 Home バージョン:21H2)、使用言語(C++)、使用ソフト(Visual Studio 2022)]
分類:[.NET]
<目的>
すでに、コードは完成したが角度を求める式を改善できるのではないかと思う。
<このコードの目的>
操作するためのキー入力(縦方向と横方向)を取得した際に、この二つの値(rad)を送ると操作対象の進行方向を0〜360度の間で求める関数を作成したい。
<このコードの考え>
rtanは、下が-1からはじまり、上の1までの縦軸の値と考える
1
↑
rtan
↑
-1
rcosは、左が-1からはじまり、右の1までの横軸の値と考える
-1 → rcos → 1
そうすることでこの二つの変数は十字の関係になり、角度が求められる。
................1
..............↑
-1 → angle → 1
..............↑
..............-1
................90
................↑
180 → angle → 0
................↑
..............270
<送られてくる変数の範囲>
-1.0 <= rtan,rcos <= 1.0
<コード>
double Function::AfTC(double rtan, double rcos)
{
double ctan = atan(rtan) * (double)180 / PI;
double ccos = acos(rcos) * (double)180 / PI;
double angle = (ccos == (double)0 ? (ctan < (double)0 ? (double)360 + ctan : ctan) : (ccos - ctan) * ((double)180 / ccos));
return angle;
}
<入力例>
1:rtan = 1.0, rcos = 0.0
2:rtan = 0.0, rcos = -1.0
3:rtan = -1.0, rcos = 0.0
4:rtan = 0.0, rcos = 1.0
5:rtan = 1.0, rcos = -1.0
6:rtan = 1.0, rcos = 1.0
7:rtan = -1.0, rcos = 1.0
<出力例>
1:angle = 90
2:angle = 180
3:angle = 270
4:angle = 0
5:angle = 135
6:angle = 45
7:angle = 315
<追記>
一通り注意事項を読んで投稿しましたが、足りていない部分がありましたらご指摘のほどよろしくお願いいたします。
違反を報告
Javascriptを有効にしてください
この投稿が掲示板のルールに違反しており、何らかの対処が必要であると思われる場合は、以下のフォームを利用して管理人に報告することができます。
マルチポストの報告は、
返信フォーム
の上にある「マルチポストの報告」リンクをご利用ください。
この機能の悪用は絶対にしないでください。
悪用されたと管理人が判断した場合は、予告なしで厳しい対処がなされる可能性があります。
確認等の目的で、入力されたメールアドレス宛に返信メールが送信される可能性があります。メールの受信ができないメールアドレスは入力しないでください。
下のフォームが使用できない場合は、
メールフォーム
を使って管理人にご報告ください。
お名前(必須)
メールアドレス(必須)
本文(必須)
(違反理由など)
返信
削除キー/
編集
削除
Mode/
通常管理
表示許可
Pass/
HOME
HELP
新規作成
新着記事
ツリー表示
スレッド表示
トピック表示
発言ランク
ファイル一覧
検索
過去ログ
-
Child Tree
-